Projet système PC : 2019 - DHAISNE Maxime, LALLEMENT Dimitri : Différence entre versions
De Ensiwiki
(→Journal de bord) |
(→Journal de bord) |
||
Ligne 92 : | Ligne 92 : | ||
* Fin des files de messages | * Fin des files de messages | ||
* Tests et correctifs associés (Tests -> 6, 8, 10) | * Tests et correctifs associés (Tests -> 6, 8, 10) | ||
− | |||
− | |||
− | |||
− | |||
==Difficultés rencontrées== | ==Difficultés rencontrées== |
Version du 21 juin 2019 à 07:14
![]() | |
---|---|
Titre du projet | RoscosmOS |
Cadre | Projet système
|
Équipe | Maxime DHAISNE, Dimitri LALLEMENT |
Encadrants | Yves Denneulin , Gregory Mounie, Patrick Reignier |
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 Difficultés rencontrées
Présentation
Equipe
- Maxime DHAISNE (filière apprentissage)
- Dimitri Lallement (filière apprentissage)
Planning
Planning prévisionnel
Planning effectif
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
05/06/2019 - Mise en place de l'environnement (Phase 1)
- Création du script de debugging
- Récupération et correction du TP de LDB
- Mise en place de l'environnement de développement
- Début de la gestion des processus
06/06/2019 - Gestion des processus (Phase 2)
- Création de la table des processus et des fonctions associées
- Création de la structure des processus
- Tentative de passage d'un processus à un autre
07/06/2019 - Gestion des processus (Phase 2 - suite)
- Passage d'un processus à un autre (context switch)
- Récupération des méthodes de timer du TP de LDB
- Début ordonnancement
11/06/2019 - Ordonnancement (Phase 3)
- Fin de l'implémentation du timer
- Gestion du passage d'un paramètre dans le processus
- Mise en place de tests unitaires pour la table des processus
- Avancement de l'ordonnanceur
12/06/2019 - Ordonnancement & allocation dynamique(Phase 3)
- Fin de l’ordonnancement
- Implémentation des fonctions getPid, getPrio, chprio, kill
- Début allocation dynamique
- Début filiation
13/06/2019 - Filiation & cyle de vie des processus(Phase 3)
- Implémentation du exit et ajout du code assembleur
- Ajout d'une fonction donnant des informations sur la queue
- Avancement de la filiation
14/06/2019 - Filiation & endormissement(Phase 3 & 4)
- Gestion de l'endormissement
- Fin de la gestion du cycle de vie des processus
- Ajout d'une nouvelle file pour les processus a supprimer
- Avancement et débogage de la filiation
17/06/2019 - Filiation & endormissement(Phase 3 & 4)
- Avancement et refactorisation de la filiation
- Refactorisation complète de la gestion de l'ordonnanceur et des queues des processus afin de gérer un ordre FIFO
- Fin de l'endormissement des processus wait_clock
- Intégration des tests de user dans le kernel
18/06/2019 - Filiation & files de messages (Phase 3 & 4)
- Avancement de la fonction waitpid
- Correction de bug suite à la refactorisation de la veille
- Début des files de messages
18/06/2019 - Files de messages & tests (Phase 4)
- Fin de la fonction waitpid
- Avancement des files de messages
- Correction de bugs suite au lancement des premiers tests (exit...)
- Tests -> 1 à 5
19/06/2019 - Files de messages & tests (Phase 4)
- Fin des files de messages
- Tests et correctifs associés (Tests -> 6, 8, 10)
Difficultés rencontrées
- Lacunes dans l'utilisation du débogueur (gdb)
- Peu d'expériences avec le language C, ce qui nous ralentit pendant le développement
- Difficultés à déboguer la queue, nous avons donc choisi de faire une fonction affichant les données de la queue
- Grosse perte de temps suite à la refactorisation de notre ordonnanceur suite à la prise en compte de la gestion FIFO de la file des processus.