Projet système PC : 2019 - BESOMBES Tanguy, BUCHE Nathan, JABAL Rama, JEAN Maxime, TAIX Victor

De Ensiwiki
Aller à : navigation, rechercher


Mycomputer.png  Deuxième Année  CDROM.png  Informatique 


TempOS

Développeurs Tanguy Besombes
Nathan Buche
Rama Jabal
Maxime Jean
Victor Taïx


Journal de bord

Semaine 1 - 06/02/19 et 08/02/19

  • Prise en main du sujet et de la documentation.
  • Récupération du dépôt git.
  • Ajout des primitives d'affichage écran. -> fin de la phase 1.
  • Mise en place de la phase 2.

Semaine 2 - 13/02/19 et 15/02/19

  • Mise en place du timer.
  • Création d'un processus.

Semaine 3 - 20/02/19 et 22/02/19

  • Continuation du timer.
  • Mise en place de la phase 3 en parallèle.
  • Mise en place du scheduling avec prioritées (FIFO).
  • Gestion des files de priorités.

Semaine 4 - 06/03/19 et 08/03/19

  • Fin du debug du timer -> fin de la phase 2.
  • Debug création processus et début terminaison

Semaine 5 - 13/03/19 et 15/03/19

  • Debug terminaison, gestion des fils. -> fin de la phase 3.
  • Début phase 4.

Semaine 6 - 20/03/19 et 22/03/19

Avancement phase 4, mise en place de la file Debut lecture doc phase 5

Semaine 7 - 27/03/19 et 29/03/19

Debut de tests de la phase 4, fin de la mise en place des fils

Semaine 8 - 03/04/19 et 05/04/19

Fin des tests de la phase 4.

Semaine 9 - 10/04/19 et 12/04/19

Debut phase 5, 6.

Semaine 10 - 17/04/19 et 19/04/19

Avance sur la phase 5 et 6.

Semaine 11

Début de la phase 7. Continuation des phases 5 et 6

Roadmap imposée

Phase 1 : Prise en main de l'environnement

100 %

La phase 1 consistait majoritairement à reprendre des choses vues en PCSEF, nous l'avons donc faite assez rapidement.

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

95 %

Sur cette phase, nous avons implémenté la notion de processus et de timer, aidés en partie de ce que nous avions fait en PCSEF.

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

80 %

Pour la phase 3, nous avons implémentés le cycle de vie des processus : leur créations, leur ordonnancements et leurs terminaisons.

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

80 %

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

50 %

Lors de cette phase, nous avons mis en place un allocateur de mémoire physique, nous créeons une nouvelle structure de pagination lors de la création d'un processus, et nous changeons cette dernière lors d'un changement de processus. Il reste des erreurs, notamment le fait que, lorsqu'on met à jour le registre CR3 pour changer la structure de pagination,l'OS redémarre..

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

75 %

Nous avons implémenter pour cette phase les fonctions correspondantes au gestion des événements liés au clavier : cons_read, cons_write et cons_echo. Les interruptions sont gérées par un traitant traitant_IT_33, inspiré du traitant_IT_32, qui fait appel à kbd_interruption.

Nous avons implémenter un buffer circulaire qui permet de récupérer les caractères et les traiter. Les caractères s'affichent sur l'écran que si on est en mode echo. On peut activer/désactiver l'echo avec la fonction cons_echo.

Cette partie n'a pas pu être testé en totalité.

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

40 %

Début de l'implantation du processus shell. Impossibilité de tester mais sensé reconnaître la commande "ps". Il faut également prendre en compte les interruptions dues aux appels systèmes (int 49). Nous n'avons pas finaliser cette prise en compte.

Difficultés rencontrées

La plus grande difficulté de ce projet était de se répartir les tâches et de bien s'organiser afin d'optimiser le temps qu'on passait à coder. Nous n'avons pas bien réussi à gérer cette difficulté et il nous arrivait de travailler à plusieurs sur la même chose, ce qui nous a fait perdre du temps. Ce manque d'organisation reste le gros point noir de notre projet.

Liens utiles

Retour à la page résultats du projet système