Projet de conception de systèmes d'exploitation - fondements

Bienvenue sur la page du Projet de conception de systèmes d'exploitation !


‼️ Convocation à l'examen de TP ‼️

L'examen de TP aura lieu le vendredi 9 décembre (convocation à 8h15). On rappelle que vous n'aurez droit à aucun document pendant l'épreuve. Vous travaillerez sur un compte informatique vide sur une machine déconnectée du réseau. Les documentations du projet seront fournies avec le sujet.

Pour savoir dans quelle salle vous présenter, consulter ce document. En cas d'erreur ou si votre nom n'apparait pas dans la liste, contactez de toute urgence l'enseignant responsable du cours.

Introduction

Le but de ce cours est de comprendre les mécanismes mis en oeuvre dans la construction des systèmes d'exploitation. Il est destiné aux élèves suivant une filière à dominante informatique (ISI), par opposition au cours de Systèmes d'exploitation et programmation concurrente que suivent tous les Ensimag : le cours de SEPC se focalise sur l'utilisation des mécanismes systèmes alors qu'on apprend en Projet de conception de systèmes d'exploitation à construire ces mécanismes sur une machine nue.

Le projet de conception de systèmes d'exploitation est comme son nom l'indique une matière essentiellement pratique, basée sur un mini-projet de construction d'un (petit) noyau de système d'exploitation. Les pré-requis de ce cours sont des notions de base d'architecture des ordinateurs et de programmation bas-niveau, ainsi bien sûr principalement d'algorithmique et programmation. On utilisera principalement le langage C dans le développement du projet, avec quelques (très petites) parties en assembleur qui seront fournies. La partie Fondements du Projet de conception de systèmes d'exploitation fait partie du tronc commun de la filière ISI : cette partie pourra être développée au deuxième semestre par les élèves choisissant l'option d'Approfondissement.

Les premières séances sont très détaillées pour vous guider dans le démarrage du projet, mais les sujets des dernières séances sont volontairement plus succints afin de vous permettre de concevoir à votre guise votre noyau : c'est cette autonomie et aisance avec la programmation système que l'on évaluera lors de l'examen final.

Organisation

Les séances de Projet de conception de systèmes d'exploitation ont lieu en alternance avec les TD/TP de SEPC, consultez ADE pour avoir le planning exact.

Le projet se fait en monôme, mais vous pouvez bien sûr vous entraider pendant les séances. On rappelle qu'échanger du code ne constitue pas de l'entraide mais du plagiat.

La note de l'enseignement est basée sur un examen de TP qui aura lieu à la fin du semestre et pendant lequel on vous demandera de développer en temps limité des prototypes semblables à ceux réalisés pendant les séances encadrées.

Au cas où la situation sanitaire rende un examen en présentiel impossible à organiser, l'évaluation sera basée sur le projet : les enseignants noteront alors les sources que vous aurez développées pendant le semestre.

L'examen sera sans aucun document (même pas les sources de votre mini-projet). Il aura lieu en salle PC sur des comptes vides et le réseau sera coupé (vous n'aurez donc pas accès à votre compte habituel et aux données qu'il contient). On fournira les documentations nécessaires avec le sujet, notamment des versions PDF de ces pages.

Attention : la note du Projet de conception de systèmes d'exploitation ne se rattrape pas en session 2, la note obtenue à l'examen de TP est définitive.

Le temps de travail attendu pour ce cours est de :

Enseignants par groupe :

Sujets et documents

Le projet s'étale sur 6 séances encadrées portant chacune sur un aspect différent du système. Ce que vous n'avez pas eu le temps de faire à l'issue d'une séance encadrée doit être fini en temps libre avant la séance suivante.

Diapositives d'introduction.

Travailler sur sa machine personnelle

Si vous souhaitez installer l'environnement de travail sur votre machine personnelle, vous trouverez des instructions sur cette page. Attention : les enseignants ne fourniront pas d'aide pour configurer votre machine pendant les séances encadrées (ne perdez pas de temps et utilisez plutôt les PC de la salle), vous pouvez contacter les Bug Busters en cas de besoin.

Séance 1 : gestion de l'écran

Lisez la documentation pour prendre en main l'environnement de travail.

Téléchargez les sources de base.

Lisez la documentation sur la gestion de l'écran.

Documentations supplémentaires :

Séance 2 : gestion du temps

Diapositives d'introduction.

Lisez la documentation sur la gestion du temps.

Documentation supplémentaire : programmer en assembleur sur x86.

Séances 3 à 6 : gestion des processus

Diapositives d'introduction.

Lisez la documentation sur la gestion des processus.

Bibliographie (pour aller plus loin)