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

De Ensiwiki
Aller à : navigation, rechercher
(Phase 6 : Gestion du clavier et implémentation d'un pilote de console)
(Phase 7 : Implémentation d'un interprète de commandes)
Ligne 40 : Ligne 40 :
  
 
=== Phase 7 : Implémentation d'un interprète de commandes ===
 
=== Phase 7 : Implémentation d'un interprète de commandes ===
{{Avancement | 0}}
+
{{Avancement | 20}}
  
 
==Journal de bord==
 
==Journal de bord==

Version du 25 juin 2019 à 05:55

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

100 %

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

100 %

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

20 %

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

19/06/2019 - Phase 5: Suite

  • Début de l'implémentation du passage du mode kernel au mode user.
  • Bug fix, réussite du test 17

20/06/2019 - Phase 5: Suite 2

  • Bug fix, réussite des tests 11 et 20.
  • Mise en place du passage Ring0 <-> Ring3
  • Ecriture des appels systèmes

21/06/2019 - Fin de la phase 5

  • Debug des tests côté user (tous sauf le 19)
  • Fin de la phase 5
  • Début de l’implémentation du clavier

24/06/2019 - Phase 6 et 7

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