Projet système PC : 2019 - BALLEYDIER Loic, PIERRET Arnaud : Différence entre versions

De Ensiwiki
Aller à : navigation, rechercher
(Journal de bord)
(Journal de bord)
Ligne 90 : Ligne 90 :
 
* Compréhension et prise en main de la phase 5
 
* Compréhension et prise en main de la phase 5
  
'''18/06/2019 - Phase 5 '''
+
'''18/06/2019 - Phase 5: Début '''
 
* Réflexion sur la phase 5
 
* Réflexion sur la phase 5
 
* Tentative de création de processus en mode kernel avec programme de boot
 
* Tentative de création de processus en mode kernel avec programme de boot
 +
* Bug fix, réussite du test 17
 +
 +
'''18/06/2019 - Phase 5: Suite '''
 +
* Début de l'implémentation du passage du mode kernel au mode user.
 +
* Bug fix, réussite des tests 11 et 20.
  
 
==Difficultés rencontrées==
 
==Difficultés rencontrées==

Version du 20 juin 2019 à 06:36

Project schedule.png
Titre du projet WIP
Cadre Projet système

Équipe Loic Balleydier, Arnaud PIERRET
Encadrants Yves Denneulin , Gregory Mounie, Patrick Reignier


Présentation

Equipe

Planning

Planning prévisionnel

Planning effectif

Phases de développement

Phase 1 : prise en main de l'environnement

100 %

Phase 2 : Création et lancement de processus de niveau noyau

100 %

Phase 3 : Ordonnancement, création dynamique et terminaison de processus de niveau noyau

100 %

Phase 4 : Gestion des communications et synchronisation de processus de niveau noyau

100 %

Phase 5 : Séparation des espaces mémoire noyau et utilisateur : gestion de processus utilisateur

5 %

Phase 6 : Gestion du clavier et implémentation d'un pilote de console

0 %

Phase 7 : Implémentation d'un interprète de commandes

0 %

Journal de bord

05/06/2019 - Mise en place de l'environnement

  • Mise en place de l'environnement de développement
  • Reprise du code de Logiciel de Base afin de pouvoir écrire dans la console
  • Lecture de la Phase 2 et début de mise en place de la structure de donnée pour les processus
  • Tentative de création et communication entre deux processus (WIP)

06/06/2019 - Mise en place de la communication entre processus

  • Création et communication entre 2 processus via l'appel du context switch manuellement
  • Prise en main de la queue (pour exploitation ultérieure)
  • Implémentation de l'interruption lié au signal d'horloge
  • Appel automatique du context switch via le signal d'horloge

07/06/2019 - Début de l'ordonnancement

  • Traitement du signal d'horloge en fonction d'une fréquence différente à celle de l'horloge (SCHED_FREQ)
  • Implémentation des fonctions permettant de récupérer le pid et la priorité ainsi que changer cette dernière
  • Mise en place d'une file (FIFO) gérant la priorité pour les processus

11/06/2019 - Début de gestion de la filiation

  • Création d'une liste chaînée pour stocker les processus fils d'un parent
  • Mise en place de la fonction exit() pour pouvoir quitter un processus
  • Correction de l'utilisation des adresses de la pile pour pouvoir utiliser les arguments de fonction
  • Tentative de l'implémentation de la fonction waitpid (WIP)

12/06/2019 - Fin de gestion de la filiation

  • Waitpid est terminé
  • Terminaison des processus par kill
  • Support de l'instruction return pour récupérer la valeur
  • Support de l'endormissement des processus
  • Modification de la structure d'ordonnancement
  • Amélioration de la gestion de la mémoire pour les processus terminés

13/06/2019 - Journée de test

  • Tentative de lancement des tests côté kernel jusqu'à 10h
  • Bug fix le reste de la journée

14/06/2019 - Bugfixes et files de messages

  • Fin des bugs fix pour faire passer les 8 premiers tests de test.c
  • Début de mise en place des files de message
  • Réussite des tests 9,10,12,14

17/06/2019 - Fin de la phase 4

  • Fin de la mise en place des files de message (Fin de la phase 4)
  • Changement de structure pour les files de messages afin de respecter mot-à-mots les specifications
  • Compréhension et prise en main de la phase 5

18/06/2019 - Phase 5: Début

  • Réflexion sur la phase 5
  • Tentative de création de processus en mode kernel avec programme de boot
  • Bug fix, réussite du test 17

18/06/2019 - Phase 5: Suite

  • Début de l'implémentation du passage du mode kernel au mode user.
  • Bug fix, réussite des tests 11 et 20.

Difficultés rencontrées

Ressources externes

Pour gérer la liste des fils, nous avons utilisé une liste chainée simple crée par Troy D. Hanson, en licence BSD, opensource. Nous l'avons choisi grâce au conseil d'un groupe de l'année dernière