Projet système PC : 2019 - LIMOUSIN Marylie, FAYANT Dylan

De Ensiwiki
Révision de 25 juin 2019 à 12:26 par Limousma (discussion | contributions) (Difficultés rencontrées)

Aller à : navigation, rechercher

Présentation

L'objectif du projet système est le développement du noyau d'un OS compatible avec une architecture INTEL. Le projet se découpe en plusieurs phases qui à terme permettront d'avoir un système gérant les entrées sorties, un shell ainsi que les processus.

Equipe

Planning

PlanningOS.png

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

0 %

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

0 %

Journal de bord

Semaine 1

05-06-19

  • Prise en main des sources et de l'environnement
  • Gestion de l'affichage
  • Ajout d'une structure de processus et des états possibles
  • Début de fonction pour le changement de contexte

06-06-19

  • Création d'un processus, lancement de la fonction associée
  • Changement de contexte d'un processus vers un autre
  • Début d'ordonnancement et de gestion du timer

07-06-19

  • Ordonnancement
  • Timer
  • Endormissement et réveil d'un processus
  • Début de la terminaison d'un processus

Semaine 2

11-06-19

  • Arguments des fonctions
  • Gestion des priorités entre processus à l'aide d'une queue
  • Début de la filiation entre processus
  • Poursuite de la terminaison d'un processus

12-06-19

  • Fin de la filiation entre processus
  • Poursuite de la terminaison d'un processus (exit, kill, waitpid)

13-06-19

  • Fin de la terminaison d'un processus (exit, kill, waitpid)
  • Tests
  • Début des files de messages

14-06-19

  • Tests
  • Poursuite des files de messages

Semaine 3

17-06-19

  • Tests
  • Poursuite des files de messages

18-06-19

  • Tests
  • Fin des files de messages
  • Lecture de documentation pour la phase 5

19-06-19

  • Tests
  • Debug des files de messages

20-06-19

  • Tests
  • Debug des files de messages
  • Lecture de documentation pour la phase 5

21-06-19

  • Passage en mode user
  • Traitant 49

Semaine 4

24-06-19

  • Passage de mode user à mode kernel
  • Passage de mode kernel à mode user
  • Debug

25-06-19

  • Tests
  • Debug
  • Préparation soutenance

Démonstration

Choix techniques

Processus

  • Pour la gestion de la file des processus, nous avons utilisé la queue, très utile pour gérer la priorité entre processus. Il s'agit d'une file circulaire triée par priorité.
  • La gestion de la filiation est faite grâce à un élément de la structure Processus : le ppid. Il s'agit du pid du processus père. De ce fait, nous pouvons retrouver facilement le père et les fils d'un processus.

File de messages

  • Pour la gestion de la file des messages, nous avons utilisé un tableau statique de pointeur vers des structures de type FileMessages.
  • Chaque structure FileMessages est constituté entre autres d'un tableau dynamique et de deux queues : un tableau de messages, une queue de Processus en attente d'écriture, une queue de Processus en attente de lecture.