Projet système PC : 2019 - BAIN Nathan, EL ABOUTI Kamel, ORRU Valentin, SCHALK Etienne, SERVETTAZ Morgan

De Ensiwiki
Aller à : navigation, rechercher
BaseOS
Screen baseOS.png
BaseOS

Développeurs Nathan BAIN
Kamel EL ABOUTI
Valentin ORRU
Morgan SERVETTAZ
Etienne SCHALK

Roadmap

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 + gestion de la mémoire virtuelle

100 %

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

100 %

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

100 %

Commandes de base

Général :

  • ps : Affiche la liste des processus actifs
  • echo [ on | off ] : Affiche ou non l'écho du clavier de l'utilisateur à l'écran
  • chprio [ pid ] [ nouvelle_priorité ] : Change le priorité d'un processus
  • start [ nom_programme ] [ priorité ] : Lance un programme
  • getprio [ pid ] : Obtention de la priorité d'un processus
  • clocksettings : Affiche les paramètres de l'horloge
  • currentclock : Affiche le nombre d'interruptions horloge depuis le démarrage du noyau
  • getpid : Obtention du pid du processus actif
  • kill [ pid ] : Tue un processus
  • waitClock [ nombre_interruptions ] : Attend l'horloge jusqu'au nombre d'interruptions spécifié
  • fs : Affiche toutes les files de messages ainsi que les processus auxquels ils sont liés
  • baseOS : Affiche l'écran d'accueil

Files de messages :

  • pcount [ fid ] : Obtention de l'état courant d'une file
  • pcreate [ count ] : Création d'une file de messages
  • pdelete [ fid ] : Suppression d'une file de messages
  • psend [ fid ] [ message ] : Envoie un message
  • preceive [ fid ] : Attend un message
  • preset [ fid ] : Reset la file de messages

Journal de bord

Semaine 1

Date des séances : 05/02/2019 & 08/02/2019

  • Prise en main de l'environnement
  • Découverte du sujet
  • Récupération du dépôt Git fourni
  • Implémentation des fonctions de gestion de l'écran nécessaires pour printf

Semaine 2

Date des séances : 13/02/2019 & 15/02/2019

  • Ajout de l'horloge
  • Adaptation de la base des processus du semestre 1
  • Compréhension de la structure de données de liste fournie
  • Création des processus
  • Gestion de l'ordonnancement

Semaine 3

Date des séances : 20/02/2019 & 22/02/2019

  • Gestion de l'ordonnancement
  • Commencement de la terminaison des processus

Semaine 4 : Vacances d'hiver

Semaine 5

Date des séances : 06/03/2019 & 08/03/2019

  • Gestion des processus
  • Fin de l'ordonnancement 06/03
  • Terminaison des processus en cours (waitpid, exit, kill, end_processus)
  • Commencement des files de messages (preceive, pcreate, pdelete)

Semaine 6

Date des séances : 13/03/2019 & 15/03/2019

  • Gestion des interruptions clavier et affichage basique à l'écran

Semaine 7

Date des séances : 20/03/2019 & 22/03/2019

  • Correction des problèmes de compilation des files de messages
  • Création d'un malloc.h
  • Début des tests

Semaine 8

Date des séances : 27/03/2019 & 29/03/2019

Semaine 9

Date des séances : 03/04/2019 & 05/04/2019

Semaine 10

Date des séances : 10/04/2019 & 12/04/2019

Semaine 11

Date des séances : 17/04/2019 & 19/04/2019

  • Travail sur le pilote de console (phase 6)
  • Perfectionnement du shell (phase 7)
  • Avancement mémoire virtuelle (phase 5)

Bilan au 19 avril

A ce jour, il reste à faire :

  • Finir la fonction start de lancement de processus afin de l'adapter à la mémoire virtuelle
  • Lancer un processus en mode user
  • Permettre des appels systèmes depuis le mode user
  • Gestion des pages de mémoire partagée
  • Fonction de libération des pages allouées pour la terminaison des processus
  • Adapter le shell à la mémoire virtuelle et faire le lien avec les primitives système


Bilan au 24 mai

Toutes les fonctionnalités ont correctement été implémentées ;)