Descriptif
Objectifs pédagogiques
- d'expliquer le rôle des fonctionnalités fournies par un système d'exploitation : facilitation et partage sécurisé de l'accès aux ressources ;
- d'utiliser voire implanter les principales abstractions fournies par un système d'exploitation : threads, synchronisation, passage de message, processus, politique d'ordonnancement, protection mémoire, contrôle d'accès, appels systèmes, systèmes de fichier, virtualisation ;
- de développer des logiciels bas-niveau en C, tels que pilotes de périphériques dans un OS, shells, ou plus généralement programmation sur machine nue.
Diplôme(s) concerné(s)
Parcours de rattachement
Format des notes
Numérique sur 20Littérale/grade européenProgramme détaillé
(CC = Contrôle de Connaissances - CM = Cours Magistral - PC = Petite Classe - TD = Travaux Dirigés sur ordinateur)
1CM :
- Rôle et fonctionnement général du système d'exploitation
- Exemples de services rendus par le système d'exploitation.
1TD :
- Implantation d'un système de fichiers
2CM :
- Architecture matérielle (processeur et mémoire, language machine, assembleur)
- Organisation de la mémoire d'un processus (pile, tas; correspondance avec les concepts du C)
2TD :
- Implantation d'un allocateur mémoire
3CM :
- Implantation des threads
- Atomicité et synchronisation : utilisation et implantation
- Communication par passage de messages
3TD :
- Implantation de threads coopératifs
4CM :
- Notion d'interruption
- Ordonnancement et politiques d'ordonnancement
4TD :
- Implantation d'une politique d'ordonnancement
5CM :
- Protection et organisation de la mémoire (pagination)
- Sécurité des systèmes : séparation des privilèges, principe du moindre privilège
5TD :
- Protection mémoire et redémarrage de tâches qui plantent
6CM :
- Sécurité des systèmes : contrôle d'accès
- Virtualisation
- Systèmes distribué et cloud computing
6TD :
- Sandboxing et architecture sécurisée
7CC :
- Examen (sur papier)
7TD :
- Développement d'une application cloud en mode FaaS