Projet système PC : 2018 - LAURENT Nils, ANGELY Alexis

De Ensiwiki
Aller à : navigation, rechercher
Project schedule.png
Titre du projet DionysOS
Cadre Projet système

Équipe Alexis Angély Nils Laurent
Encadrants Julie Dumas , Gregory Mounie, Patrick Reignier


Présentation

Le projet système a pour but la réalisation d'un système d'exploitation sur une architecture Intel.

Répartition des tâches

Nous avons adopté plusieurs méthodologies selon les situations :

  • Quand il manque des tests, une personne en rédige et l'autre développe des fonctionnalités
    • On alterne la personne qui écrit les tests (ou qui améliore le mécanisme de test)
  • Quand possible, développement en parallèle sur des fonctionnalités
  • Quand on bloque sur une fonctionnalité critique, on debug à deux

Planning effectif

PSE18 Angely Laurent Gantt effectif.png

Journal de bord

Semaine 1

07 juin 2018

Prise en main de l'environnement de développement, développement des processus

Mise en place de l'affichage, réflexion sur la mise en œuvre de tests

08 juin 2018

Tests de printf.

Développement des processus et des interruptions.

Semaine 2

11 juin 2018

Interruption et horloge intégrées. Ajout d'un fichier tests.sh pour lancer tous les tests dans le fichier tests.

Context_switch utilisé par l'ordonnanceur.

12 juin 2018

Développements de l'ordonnanceur, amélioration du mécanisme de tests.

13 juin 2018

Développement de l'état sleep des processus, modification du système de test.

14 juin 2018

Débug et fix de la gestion de l'endormissement, modification du système de test.

15 juin 2018

Développement de la filiation des processus, ajout de tests d'endormissement de processus.

Semaine 3

18 juin 2018

Développement de la relation père-fils entre processus, suppression des processus.

19 juin 2018

Gestion des fins d'un processus.

Réflexion sur les files de messages.

20 juin 2018

Développement des files de messages.

Correction de tests concernant l'arrêt de processus.

21 juin 2018

Développement des files de messages et tests sur les files de messages.

22 juin 2018

Développement des files de messages

Semaine 4

25 juin 2018

Debug des files de messages.

26 juin 2018

Suppression des fichiers et des fonctions inutilisées.

Renommage et clarification des noms de fonctions et du nom des fichiers sources.

Réalisation des différentes phases

Phase 1

100 %

Phase 2

100 %

Phase 3

100 %

Phase 4

100 %

Phase 5

1 %

Phase 6

0 %

Phase 7

0 %

Choix techniques

Deux listes sont utilisées pour garder en mémoire les processus qui peuvent être utilisés et les non utilisables. Ces listes utilisent le fichier queue.h fournit car cela permet d'insérer les processus en fonction de leur priorité et de leur date d’insertion, donc le processus en tête de liste est toujours celui qui doit s’exécuter.

Utilisation de la bibliothèque utlist pour les listes des messages et la liste des fils d'un processus. Cette bibliothèque a été utilisé car elle est réputée et fiable, car développer une structure de données nous aurez fait perdre du temps et des problèmes potentiels supplémentaires. De plus, comparer à la liste fournit, utlist permet de supprimer un élément d'une liste spécifique.

Difficultés rencontrées

Perte de temps sur la phase 3 à développer des tableaux dynamiques que l'on a changé pour des listes avec la bibliothèque utlist. Plusieurs problèmes sont apparus à cause du développement de ces tableaux dynamiques, on a donc choisi de prendre une bibliothèque extérieure pour se concentrer sur le développement de la phase 3.

Difficultés lors de la phase 4, problème de compréhension des fonctions psend et preceive ce qui nous à fait perdre beaucoup de temps.