COVID-19
COVID-19

Systèmes d’exploitation 1

ESI > Infrastructure > Systèmes d’exploitation 1

Description du programme de la matière:
L’objectif de ce cours est de permettre aux étudiants de comprendre les concepts de base des systèmes d’exploitation centralisés, leur structure et leur fonctionnement et de maîtriser leur utilisation grâce aux travaux pratiques.

ID Cours
SYS1
Niveau
1ère année CS
Semestre
Semestre 1
Crédit
5
Volumes Horaires Cours
30.00
Coef
5
Volumes Horaires TD
30.00
Domaine
Infrastructure

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

  • CF7 : Concevoir, mettre en œuvre et administrer des infrastructures complexes et réparties

Type de compétence: 

TEC : Technique

MET : Méthodologique

MOD : Modélisation

OPE : Opérationnel

Niveau de compétence:

Base Intermédiaire Avancé
Famille de Compétence Compétence Elément de Compétence Type
CF7 C7.7: Exploiter un système d’exploitation centralisé C77.1: Analyser les fonctions d’un systèmes d’exploitation TEC
C77.2: Exploiter les fonctions d’un système d’exploitation multi-tâches par la programmation TEC
C7.3: Analyser l’architecture d’un ordinateur et concevoir des cirduits de base C73.6: Analyser les mécanismes de base permettant à un ordinateur de communiquer (entrées/sortes, interruptions) TEC

Contenu

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

Travail personnel

Bibliographie

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

We are using cookies to give you the best experience. You can find out more about which cookies we are using or switch them off in privacy settings.
AcceptPrivacy Settings

GDPR