Système d'exploitation
Le cours de systèmes d'exploitation commence par le rôle d'un système et les architectures de noyaux. Il détaille ensuite les processus et leur ordonnancement, la gestion mémoire (pagination, mémoire virtuelle), la concurrence et la synchronisation, la gestion du temps, et se termine par la virtualisation. Le projet, mené à cinq, consiste à écrire une bibliothèque de threads en espace utilisateur, d'abord séquentielle puis parallèle pour exploiter les processeurs multicœurs.
Notes de cours
Cours6 pages
- Introduction et concepts générauxRôle d'un système d'exploitation, processus, gestion mémoire, protection, ordonnancement et architectures de noyaux (monolithique, en couches, modulaire, micronoyau).
- Processus et exécutionProcessus, bloc de contrôle, modes d'exécution, exceptions, interruptions et appels système, threads, attentes active et passive, ordonnancement et préemption.
- Gestion mémoireÉdition de liens, mémoire virtuelle, pagination et segmentation, tables de pages hiérarchiques et hachées, pagination à la demande, copy-on-write, swap, MMU et TLB.
- Concurrence et synchronisationConcurrence physique et logique dans un système d'exploitation, verrous à attente active ou passive, instructions atomiques et désactivation des interruptions.
- Gestion du tempsGestion du temps par le système d'exploitation : ticks d'horloge, compteurs de cycles, horloge temps réel (RTC) et temporisations.
- VirtualisationPrincipes de la virtualisation : virtualisation totale, virtualisation assistée par le matériel et paravirtualisation avec hyperviseur.
Ressources
Projet3 documents