Simulation d`un système d`exploitation

publicité
SEDAMOP©
GENIE LOGICIEL : PROJETS
Simulation d’un système d’exploitation
Catégorie : Sciences informatiques
Numéro de projet : 32
Identifiant : OS
Contexte et objectif
Le but de ce projet est d'émuler le comportement d'un mini-système d'exploitation, de ses périphériques et de
ses applications. Dans un premier temps, il s'agit de simuler le comportement de périphérique, puis
d'implémenter les pilotes (driver).Les pilotes de périphériques (tous définis par un numéro unique) permettent
au noyau via des primitives de lecture read), d'écriture write) et de commandes ioctl) d'interagir avec les
périphériques qu'ils commandent. Il y a un pilote adapté à chaque périphérique.
Certains périphériques comme le clavier, souris, micro, etc. n'autorisent que la lecture (le système ne peut que
lire les signaux envoyés par ces périphériques). D'autres périphériques comme l'écran, l'imprimante, le hautparleur n'autorisent que l'écriture (le système ne peut qu'envoyer des signaux vers ces périphériques). Enfin
d'autres périphériques comme le disque dur permettent à la fois la lecture et l'écriture (le système peut lire ou
écrire ce qui est stocké à un emplacement du disque). La commande (ioctl) permettra dans ce dernier cas par
exemple de positionner l'emplacement du disque où lire et écrire.
Pour des raisons de simplicité, on n'implémentera pas de systèmes de fichiers, on définira simplement des slots
de stockage de taille fixe identifiés par des numéros sur le disque dur.
Une application (= un programme) sera écrite dans notre système sous forme d'un langage interprété utilisant
les primitives du noyau. Il comportera de plus, un ensemble d'instructions permettant la réalisation de tests et de
boucles (ou de sauts).Lors du lancement d'une application, un processus sera crée comportant les instructions
données par le langage et exécuté de manière concurrentielle par le système (qui peut gérer plusieurs processus
simultanés).
Le système est multitâche, c'est à dire qu'il donne l'illusion de traiter plusieurs processus "en même temps".C'est
à dire que le CPU exécute un certain nombre d'instructions d'un processus, puis fige cet état pour ce processus
et passe à l'exécution des processus suivant, enfin, il revient sur le processus exécuter un certain nombre
d'instruction à l'endroit où il s'était arrêté, etc.
Exigences
Simuler les différents périphériques, dont au minimum : un clavier, un écran, plusieurs disques durs (chacun
ayant un numéro de périphérique différent). Implémenter les pilotes correspondants. Implémenter les
différentes primitives du noyau et une petite bibliothèque de fonctions.
Implémenter les processus et leur exécution à partir des instructions interprétés
Implémenter la gestion concurrente des processus. Ecrivez quelques applications que vous lancerez par
forkexec (slot dans lequel se trouve le programme). Proposez un optimiseur automatique d’ordonnancement de
processus.
Téléchargement