Projet système PC : 2019 - LIMOUSIN Marylie, FAYANT Dylan
De Ensiwiki
Sommaire
- 1 Présentation
- 2 Equipe
- 3 Planning
- 4 Phases de développement
- 4.1 Phase 1 : prise en main de l'environnement
- 4.2 Phase 2 : Création et lancement de processus de niveau noyau
- 4.3 Phase 3 : Ordonnancement, création dynamique et terminaison de processus de niveau noyau
- 4.4 Phase 4 : Gestion des communications et synchronisation de processus de niveau noyau
- 4.5 Phase 5 : Séparation des espaces mémoire noyau et utilisateur : gestion de processus utilisateur
- 4.6 Phase 6 : Gestion du clavier et implémentation d'un pilote de console
- 4.7 Phase 7 : Implémentation d'un interprète de commandes
- 5 Journal de bord
- 6 Démonstration
- 7 Choix techniques
- 8 Difficultés rencontrées
Présentation
L'objectif du projet système est le développement du noyau d'un OS compatible avec une architecture INTEL. Le projet se découpe en plusieurs phases qui à terme permettront d'avoir un système gérant les entrées sorties, un shell ainsi que les processus.
Equipe
- Marylie Limousin (filière apprentissage)
- Dylan Fayant (filière apprentissage)
Planning
Phases de développement
Phase 1 : prise en main de l'environnement
Phase 2 : Création et lancement de processus de niveau noyau
Phase 3 : Ordonnancement, création dynamique et terminaison de processus de niveau noyau
Phase 4 : Gestion des communications et synchronisation de processus de niveau noyau
Phase 5 : Séparation des espaces mémoire noyau et utilisateur : gestion de processus utilisateur
Phase 6 : Gestion du clavier et implémentation d'un pilote de console
Phase 7 : Implémentation d'un interprète de commandes
Journal de bord
Semaine 1
05-06-19
- Prise en main des sources et de l'environnement
- Gestion de l'affichage
- Ajout d'une structure de processus et des états possibles
- Début de fonction pour le changement de contexte
06-06-19
- Création d'un processus, lancement de la fonction associée
- Changement de contexte d'un processus vers un autre
- Début d'ordonnancement et de gestion du timer
07-06-19
- Ordonnancement
- Timer
- Endormissement et réveil d'un processus
- Début de la terminaison d'un processus
Semaine 2
11-06-19
- Arguments des fonctions
- Gestion des priorités entre processus à l'aide d'une queue
- Début de la filiation entre processus
- Poursuite de la terminaison d'un processus
12-06-19
- Fin de la filiation entre processus
- Poursuite de la terminaison d'un processus (exit, kill, waitpid)
13-06-19
- Fin de la terminaison d'un processus (exit, kill, waitpid)
- Tests
- Début des files de messages
14-06-19
- Tests
- Poursuite des files de messages
Semaine 3
17-06-19
- Tests
- Poursuite des files de messages
Démonstration
Choix techniques
Processus
- Pour la gestion de la file des processus, nous avons utilisé la queue, très utile pour gérer la priorité entre processus. Il s'agit d'une file circulaire triée par priorité.
- La gestion de la filiation est faite grâce à un élément de la structure Processus : le ppid. Il s'agit du pid du processus père. De ce fait, nous pouvons retrouver facilement le père et les fils d'un processus.