Objectifs
Acquérir des connaissances et compétences fondamentales liées aux principes de fonctionnement des systèmes d'exploitation (voir détails ci-dessous). Ces principes sont illustrés en particulier sur les exemples de Unix, Linux et Windows. Lors de séances de TD sur machines, les compétences et connaissances acquises (ou en cours d'acquisition) sont mises en oeuvre à travers la programmation en C de logiciels s'exécutant sous Linux.
Pré-requis
Une première expérience de la programmation en C/C++ et la connaissance de l'utilisation d'Unix/Linux sont pré-requises. Ces pré-requis sont censés avoir été acquis dans les années précédentes. Afin de s'éviter de perdre trop de temps lors des TP, l'étudiant est invité à suivre les liens suivants :
- Ptit GUDU, une introduction à unix fait par un étudiant de l'école.
- Advanced Bash Scripting Guide
Organisation et sujets des cours et travaux dirigés
Cours 1 : Introduction et makefile
Cours 2 : Processus
TDm 1 (3h) : Appels système pour la manipulation de fichiers
TDm 2 (2h) : Création, affichage et synchronisation élémentaire de processus
Cours 3 : Communication inter-processus par signaux et tubes & Processus légers
TDm 3 (2h) : Communication inter-processus par signaux et tubes
TD 1 (2h) : Création de processus & communication inter-processus par tubes et signaux
Cours 4 : Modèles de synchronisation : sémaphores, producteur/consommateur, dîner de philosophes
TD 2 (2h) : Synchronisation de processus
TDm 4 (2h) : Création et synchronisation de processus légers
TDm5 (2h) : Producteur / consomateur
Cours 5 : Gestion de la mémoire
Cours 6 : Mémoire virtuelle
TDm 6 (3h) : Gestion de la mémoire : impact sur les temps d'exécution & outils d'aide au développement
Examen final.
Environnement de travail : machine virtuelle Linux téléchargeable
Même si votre ordinateur pesrsonnel est sous Windows, il est possible d'exécuter un système d'exploitation Linux pour reproduire l'environnement de travail des TDm. En effet, sous le système d'exploitation Windows, vous pouvez exécuter une machine virtuelle sous Linux. Pour cela, vous pouvez par exemple utiliser la machine virtuelle donnée ici sur laquelle Linux a déjà été installé pour vous.
Pour utiliser cette machine virtuelle, vous devez installer le lecteur de machine virtuelle VMware, téléchargeable ici.
Afin de décompresser cette machine virtuelle, n'importe quel gestionnaire d'archives (comme 7-zip téléchargeable ici) peut être utilisé.
Une fois que cette machine virtuelle est lancée, vous pouvez vous connecter avec le compte "user" dont le mot de passe est "azerty".
Bibliographie

- Systèmes d'Exploitation - Bart Lamiroy, Laurent Najman et Hugues Talbot. Collection Syntex, Pearson Education
- Voir également le site dédié au livre: http://bart.lamiroy.free.fr
- Système d'Exploitation - Juan Manuel Torres, Hanifa Boucheneb et Michel Gagnon
- Systèmes d'exploitation (systèmes centralisés, systèmes distribués) - A. Tanenbaum (Interedition)
- Polycopié du cours " Systèmes d'exploitation et réseaux ". - Bart Lamiroy, Mines de Nancy. Poly en pdf
On lira également avec profit
- La programmation sous UNIX - JM.RIFFLET (Ediscience International)