Projet système PC : 2019 - JULIEN Tristan, LANUSSE Quentin

De Ensiwiki
Révision de 13 juin 2019 à 15:48 par Lanusseq (discussion | contributions) (13 Juin 2019)

Aller à : navigation, rechercher
BambinOS logo.png
Titre du projet BambinOS
Cadre Projet système

Équipe Quentin LANUSSE, Tristan JULIEN
Encadrants Gregory Mounie, Patrick Reignier, Yves Denneulin

Présentation

L'objectif du projet système est la réalisation d'un noyau de système d'exploitation sur une architecture Intel x86 et, pour la première fois en 2019, le risc-v 64 bits. Les concepts principaux à mettre en oeuvre sont :

  • la création et l'exécution des processus ;
  • leur synchronisation ;
  • leur ordonnancement ;
  • la gestion des entrées/sorties (clavier, écran) ;
  • l'implémentation d'un interprète de commandes.

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

25 %

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

0 %

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 Juin 2019

  • Clonage du projet
  • Prise en main de l'environnement
  • Insertion du code de gestion d'affichage fait en Logiciel de Base dans le projet
  • Début de création des processus

06 Juin 2019

  • Modification des processus
  • Essayer de lancer une fonction
  • Blocages sur la gestion des piles
  • Mise en place du context_switch
  • Découverte de l'environnement de débuggage

07 Juin 2019

  • Fonctionnement du context_switch avec une table des processus statique
  • Début d'utilisation de la queue des processus
  • Création du logo de BambinOS

11 Juin 2019

  • Modification et finalisation (pour la phase 2) de l'utilisation des processus avec une queue (queue de processus activables + pointeur vers le processus actif)
  • Gestion du timer
  • Gestion des interruptions pour changer de processus

→ Fin de la phase 2

12 Juin 2019

  • Gestion automatique des PIDs
  • Gestion de l'endormissement d'un processus pour une durée déterminée : wait_clock (Phase 4)

13 Juin 2019

  • Fonctions de terminaison des processus : exit, kill
  • Primitives de gestion des processus : getprio, chprio, getpid
  • Gestion de la filiation entre processus, et implémentation de waitpid

→ fin de la phase 3

Démonstration

Difficultés rencontrées