Pré-requis:
Architecture des ordinateurs, algorithmique et structures de données, assembleur Intel 80×86 (32 bits ou 64 bits), initiation au système d’exploitation linux, langage C.
Familles de Compétences
Type de compétence:
TEC : Technique
MET : Méthodologique
MOD : Modélisation
OPE : Opérationnel
Niveau de compétence:
Base | Intermédiaire | Avancé |
|
I. INTRODUCTION AUX SYSTEMES D’EXPLOITATION
1. Fonctions d’un système d’exploitation
2. Principaux types de systèmes d’exploitation
3. Architecture d’un système d’exploitation
4. Virtualisation et cloud
II. MECANISMES DE BASE
1. Rappels et définitions
2. Les interruptions
2.1 Définitions
2.2 Niveaux d’interruptions et priorité
2.3 Masquage et inhibition des interruptions
2.4 Schéma général d’un programme de traitement d’interruption
2.5 Déroutements
2.6 Appels au superviseur
2.7 Exemples de systèmes d’interruptions
L’IBM 360/370
L’Intel 80×86
III. PROCESSUS ET ORDONNANCEMENT
1. Les processus
1.1 Introduction
1.2 Processus séquentiels
1.2.1 Définition d’un processus séquentiel
1.2.2 Principaux états d’un processus
1.2.3 Transitions d’un processus d’un état à un autre
1.2.4 Bloc de contrôle d’un processus (PCB)
1.2.5 Opérations sur les processus
1.3 Processus Unix/Linux
1.3.1 Création de processus
1.3.2 Terminaison d’un processus
1.3.3 Chargement d’un nouveau programme
1.3.4 Structure interne d’un processus Unix/Linux
1.3.5 Principaux états d’un processus des systèmes Unix/Linux
1.3.6 Arborescence des processus Unix/Linux
1.4 Exemples
2. L’ordonnancement des processus
2.1 Les ordonnanceurs
2.1.1 Ordonnanceur des travaux
2.1.2 Ordonnanceur des processus
2.1.3 Critères de performance des algorithmes d’ordonnancement
2.2 Différentes stratégies d’ordonnancement
2.2.1 Algorithmes sans réquisition (non-préemptifs)
2.2.1.1 Premier arrivé premier servi (FCFS ou FIFO)
2.2.1.2 Le plus court d’abord ( SJF: Shortest Job First)
2.2.2 Algorithmes avec réquisition (préemptifs)
2.2.2.1 Le Tourniquet (Round-Robin)
2.2.2.2 Algorithmes d’ordonnancement avec priorité
2.2.2.3 Ordonnancement à files multiniveaux
2.2.2.4 Les files Multiniveaux avec recyclage
IV. EXCLUSION MUTUELLE ET SYNCHRONISATION DES PROCESSUS
1. L’exclusion mutuelle
1.1 Relations entre processus
1.1.1 Définitions
1.1.2 Classes de processus parallèles
1.1.2.1 Les processus indépendants
1.1.2.2 Les processus coopérants ou concurrents.
1.2. Définition et réalisation de l’exclusion Mutuelle
1.2.1 Définitions
1.2.1.1 Ressources d’un processus
1.2.1.2 Ressources critique
1.2.1.3 Ressource virtuelle
1.2.1.4 Section critique
1.2.1.5 Schéma général de l’utilisation d’une ressource critique
1.2.2 Réalisation de l’exclusion mutuelle
1.2.2.1 Hypothèses de travail (Dijkstra)
1.2.2.2 Solutions matérielles
1.2.2.2.1 Machine monoprocesseur
1) Les interruptions
2) Les instructions spéciales
1.2.2.2.2 Machine multiprocesseur
1.2.2.3 Les sémaphores de Dijkstra(1965)
1.2.2.3.1 Définition
1.2.2.3.2 Propriétés des sémaphores
1.2.2.3.3 Définition et initialisation
1.2.2.3.4 Réalisation de l’exclusion mutuelle avec les sémaphores
1.2.2.3.5 Implantation des primitives P et V
1.2.2.3.6 Insuffisances du mécanisme de synchronisation par
sémaphores
2. La synchronisation avec les sémaphores
2.1 Introduction
2.2 Définition
2.3 Comment exprimer les contraintes de synchronisation ?
2.4 Spécification de la synchronisation
2.5 Les problèmes types
2.6 Exemples
2.6.1 Allocation d’une imprimante
2.6.2 Rendez-vous
2.6.2.1 Rendez-vous de deux processus
2.6.2.2 Rendez-vous de trois processus
2.6.2.3 Rendez-vous de n processus
2.6.3 Le modèle des lecteurs/rédacteurs
2.6.3.1 Ordre d’accès au fichier est quelconque
2.6.3.2 Ordre d’accès au fichier est FIFO
2.6.4 Communication par variables communes
2.6.4.1 Définitions
2.6.4.2 Propriétés de la communication
2.6.4.3 Schéma général du producteur-consommateur
2.6.4.4 Producteur-consommateur avec un tampon à un seul élément
2.6.4.5 Producteur-consommateur avec un tampon à n éléments
2.6.4.6 Plusieurs producteurs et plusieurs consommateurs
2.6.4.7 Producteur-consommateur avec un tampon à éléments alloués
dynamiquement
2.7 La communication interprocessus : IPC Unix System V
2.7.1 Introduction
2.7.2 Identification d’une IPC
2.7.3 Les segments de mémoire partagée
2.7.3.1 Utilisation d’un segment de mémoire partagée
2.7.3.2 Fonctions de manipulation des segments de mémoire partagée
2.7.3.3 Exemple : Création et d’utilisation d’un segment de mémoire
partagée
2.7.4 Les Sémaphores Unix System V
2.7.4.1 Utilisation des sémaphores Unix system V
2.7.4.2 Création d’un ensemble de sémaphores
2.7.4.3 Initialisation d’un ensemble de sémaphores
2.7.4.4 Opérations sur un ensemble de sémaphores
2.7.4.5 Destruction d’un sémaphore
2.7.4.6 Exemple
2.7.5 Gestion des IPC avec des commandes shell
3. Outils de synchronisation de haut niveau : Les moniteurs
3.1 Définition
3.2 Comment assurer l’exclusion mutuelle dans le moniteur ?
3.3 Structure syntaxique d’un moniteur
3.4 Implémentation des moniteurs par sémaphores
3.5 Exemples
3.5.1 Allocateur de ressources
3.5.2 Rendez-vous de n processus
3.5.3 Lecteurs-rédacteurs
3.5.4 Producteurs-consommateurs
V. L’INTERBLOCAGE
1. Introduction
1.1 Problème de l’interblocage
1.2 Modèle de systèmes
1.3 Définition
2. Caractérisation de l’interblocage
2.1 Conditions nécessaires
2.2 Graphe d’allocation des ressources
2.2.1 Définitions
2.2.2 Représentation schématique des processus et ressources
2.2.3 Ressources avec un seul exemplaire par classe
2.2.4 Ressources avec plusieurs exemplaires par classe
3. Méthodes de traitement de l’interblocage
3.1 Ignorer le problème de l’interblocage
3.2 Méthodes de prévention statique
3.3 L’évitement : Méthode de prévention dynamique
3.3.1 Introduction
3.3.2 Notion d’état sain(safe state)
3.3.3 Algorithmes d’évitement (ou prévention dynamique)
3.4.1.1 Ressources en plusieurs exemplaires
3.4.1.2 Ressources en un seul exemplaire
3.4 Méthodes de détection et guérison
3.4.1 Détection de l’interblocage
3.4.1.1 Ressources en plusieurs exemplaires
3.4.1.2 Ressources en un seul exemplaire
3.4.2 Guérison de l’interblocage
VI. LES EDITEURS DE LIENS
1. Les différentes étapes de l’exécution d’un programme
2. Les modules objets
2.1 Modules objets Translatables
2.2 Modules objets exécutables
2.3 Modules objets partageables (ou bibliothèques partagées)
3. Fonctionnement de l’éditeur de liens statique
3.1 Passe 1
3.2 Passe 2
3.3 Exemple
4. Formats des modules objet
4.1 Format ELF
5. Edition de liens dynamique
5.1 EDL dynamique du format ELF sous linux
6. Compilation, édition de liens et création de bibliothèques sous Unix/Linux
R. E. Bryant, D. R. O’Hallaron, « Computer System : A programmer’s perspective », Prentice hall, 2015
H. M. Deitel, P. J. Deitel, D. R. Choffness, « Operating systems », Third edition, Addison-Wesley, 2004
S. Krakowiak, « Principes des systèmes d’exploitation des ordinateurs », Dunod , 1985
A. Silberschatz, P. B. Galvin, G. GAGNE, « Principes des systèmes d’exploitation », 7e édition, Addison-Wesley,2018
W. Stalling, « Operating Systems – Internals and Design Principles », 6th edition, Prentice Hall, 2018
A. S. Tanenbaum, A. S. Woodhull, « Operating Systems Design and Implementation », Third edition, Prentice Hall, 2014