Logo ESI
Bannière
ESI talents

Bienvenue



Retour - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Syllabus SYS1
Télécharger



Crédits : 5

SYS1
Systèmes d'exploitation 1
Operating Systems 1

Coef : 5
VH Cours : 30.00
VH TD : 30.00
Pré-requis :
Architecture des ordinateurs, algorithmique et structures de données, assembleur Intel 80x86 (32 bits ou 64 bits), initiation au système d’exploitation linux, langage C.

Ingénierie des Compétences

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

Description du programme de la matière

Objectifs:

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.

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 80x86

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 », 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 », Addison-Wesley, 2018.
W. Stalling, « Operating Systems - Internals and Design Principles », Pearson Education Limited, 2018.
A. S. Tanenbaum, A. S. Woodhull, « Operating Systems Design and Implementation », Pearson Education Limited, 2014.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -