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.