Projet système PC : 2018 - LAURENT Nils, ANGELY Alexis
![]() | |
---|---|
Titre du projet | DionysOS |
Cadre | Projet système
|
Équipe | Alexis Angély Nils Laurent |
Encadrants | Julie Dumas , Gregory Mounie, Patrick Reignier |
Sommaire
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
Planning effectif
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
Phase 2
Phase 3
Phase 4
Phase 5
Phase 6
Phase 7
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.