Dans le cadre de ce cours, on aborde les systèmes d'exploitation multitâches préemptif. On examine surtout les processus, la gestion de la mémoire, la gestion des entrées/sorties, les systèmes de fichiers et la communication/synchronisation entre les processus. Le langage C est employé en laboratoire afin de mettre en application les connaissances théoriques acquises.
1. Introduction, types de systèmes d'exploitation, concepts fondamentaux, contenu du cours
2. Composants d'un système d'exploitation, classes matérielles, systèmes de fichiers
3. Processus, threads, appels système, commutation de contexte (noyau et utilisateur)
4. Primitives de synchronisation, modèle producteur/consommateur
5. Ordonnancement
6. Sécurité, protection
7. Semaine d'Examens
8. Mémoire virtuelle I
9. Mémoire virtuelle II
10. Gestion efficace du cache, cohérence et constance
11. Verrous haute performance, ordonnancement équitable, interblocages, blocages persistants
12. Gestion dynamique de la mémoire
13. Edition des Liens, Bibliothèques Dynamiques, Déploiement
14. Machines virtuelles, conteneurs, jails, sandboxing
À l'issue de ce cours, les étudiants gagneront:
1. Capacité à expliquer les charactéristiques d'un système d'exploitation
2. Capacité à utiliser, comprendre et concevoir des logiciels en C, que ce soit dans l’espace noyau ou dans l’espace utilisateur.
3. Capacité à expliquer et à utiliser la programmation multiprocessus ;
4. Capacité à analyser, expliquer et mettre en œuvre les exigences de synchronisation interprocessus ;
5. Capacité à gérer efficacement les ressources matérielles telles que la mémoire, la bande passante et le processeur.
Exposé, discussion, démonstration, étude de cas, résolution de problème, apprentissage coopératif, projet, prise de tête
Le Livre: Operating System Concepts, 10th Ed. Silberschatz, Galvin, Gagne
Les Notes: https://burakarslan.com/inf333
Le Projet: https://pintos-os.org/
| Semaine | Intitulés des Sujets |
|---|---|
| 1 | Introduction, types de systèmes d'exploitation, concepts fondamentaux, contenu du cours |
| 2 | Composants d'un système d'exploitation, classes matérielles, systèmes de fichiers |
| 3 | Processus, threads, appels système, commutation de contexte (noyau et utilisateur) |
| 4 | Primitives de synchronisation, modèle producteur/consommateur |
| 5 | Ordonnancement |
| 6 | Sécurité, protection |
| 7 | Semaine d'Examens |
| 8 | Mémoire virtuelle I |
| 9 | Mémoire virtuelle II |
| 10 | Gestion efficace du cache, cohérence et constance |
| 11 | Verrous haute performance, ordonnancement équitable, interblocages, blocages persistants |
| 12 | Gestion dynamique de la mémoire |
| 13 | Edition des Liens, Bibliothèques Dynamiques, Déploiement |
| 14 | Machines virtuelles, conteneurs, jails, sandboxing |
| Semaine | Intitulés des Sujets |
|---|---|
| 1 | Fondamentaux de Linux I |
| 2 | Fondamentaux de Linux II |
| 3 | Introduction à Pintos |
| 4 | Processus, Thread |
| 5 | Changement de contexte |
| 6 | Mutex |
| 7 | La Semaine des Partiels |
| 8 | Pintos II |
| 9 | Producteur / Consommateur |
| 10 | Sémaphore |
| 11 | Sémaphore II |
| 12 | Ordonnancement des verrous mutex |
| 13 | Mutex partagé |
| 14 | Interblocage |
| Activités | Numéro | Contribution |
|---|---|---|
| Contribution du contrôle continu à la note finale | 4 | 60 |
| Contribution de l'examen final à la note finale | 1 | 40 |
| Total | 5 | 100 |
| Activités | Numéro | Contribution |
|---|---|---|
| Devoir | 0 | 0 |
| Présentation | 0 | 0 |
| Examen partiel (temps de préparation inclu) | 1 | 15 |
| Projet | 2 | 30 |
| Travail de laboratoire | 1 | 15 |
| Autres travaux pratiques | 0 | 0 |
| Quiz | 0 | 0 |
| Devoir/projet de session | 0 | 0 |
| Portefeuille | 0 | 0 |
| Rapport | 0 | 0 |
| Journal d'apprentissage | 0 | 0 |
| Mémoire/projet de fin d'études | 0 | 0 |
| Séminaire | 0 | 0 |
| Autre | 0 | 0 |
| Make-up | 0 | 0 |
| Total | 4 | 60 |
| Activités | Nombre | Durée | Charge totale de Travail |
|---|---|---|---|
| Durée du cours | 13 | 2 | 26 |
| Préparation pour le cours | 13 | 2 | 26 |
| Devoir | 0 | 0 | 0 |
| Présentation | 0 | 0 | 0 |
| Examen partiel (temps de préparation inclu) | 0 | 0 | 0 |
| Projet | 2 | 20 | 40 |
| Laboratoire | 1 | 26 | 26 |
| Autres travaux pratiques | 0 | 0 | 0 |
| Examen final (temps de préparation inclu) | 1 | 10 | 10 |
| Quiz | 0 | 0 | 0 |
| Devoir/projet de session | 0 | 0 | 0 |
| Portefeuille | 0 | 0 | 0 |
| Rapport | 0 | 0 | 0 |
| Journal d'apprentissage | 0 | 0 | 0 |
| Mémoire/projet de fin d'études | 0 | 0 | 0 |
| Séminaire | 0 | 0 | 0 |
| Autre | 0 | 0 | 0 |
| baclé | 0 | 0 | 0 |
| Yil | 0 | 0 | 0 |
| Yil | 0 | 0 | 0 |
| Yil | 0 | 0 | 0 |
| Charge totale de Travail | 128 | ||
| Charge totale de Travail / 25 | 5.12 | ||
| Crédits ECTS | 5 | ||