ENP - Cours SE - 1er Année - Partie 1
ENP - Cours SE - 1er Année - Partie 1
ENP - Cours SE - 1er Année - Partie 1
Système d’exploitation
Sid-Ahmed Berrani
2
En particulier
Les mécanismes et les politiques pour :
• la gestion des processus ;
• les threads et la gestion de la concurrence ;
• la gestion des ressources : ordonnancement, gestion de la
mémoire ;
• les services de communication et les E/S ;
• aperçu sur les systèmes de gestion pour les data-centres et les
environnements clouds (optionnel).
3
Théorie + Pratique
Plusieurs travaux pra.ques :
• Threads, concurrence et la synchronisa.on.
• Communica.on inter processus, ordonnancement.
• Évalua.on expérimentale.
4
Références
• Opera&ng system concepts (Silberschatz, Galvin, Gagne).
• Modern opera&ng systems (Tananbeum&Bos).
• Opera&ng Systems (R. Arpaci-Dusseau & A. Arpaci-Dusseau).
5
Système d’exploitation
Introduction
• Définition:
Un logiciel permettant d’utiliser (exploiter) un système
informatique.
En anglais : operating system → opérateur
6
Système d’exploita1on
Introduc1on
7
Système d’exploita1on
Rôle
S’ar%cule autour des 5 A :
1. Aide
2. Abstrac%on
3. Augmenta%on
4. Arbitrage
5. Autorisa%on
8
Système d’exploitation
Rôle
1. Aide
• APIs de périphériques sont souvent complexes :
• Accès à toutes les fonctionnalités (même celles qui sont peu utilisées)
• Gérer toutes les situations (même exceptionnelles)
→ Portabilité du code
10
Système d’exploita1on
Rôle
3. Augmentation
• Des ressources non-disponibles peuvent être simulées :
• Multi-tâche
• Mémoire virtuelle
→ portabilité accrue
11
Système d’exploitation
Rôle
4. Arbitrage
• Contexte multi-tâche
• Nécessité de répartir l’accès aux ressources
• Conséquence de l’abstraction
→ fiabilité du système
12
Système d’exploitation
Rôle
5. Autorisa,on
• Contexte mul+-u+lisateur
• vie privée, intégrité du système
• Contexte mono-u+lisateur non expert
• confiance limitée dans certaines applica+ons
→ Sécurité du système
13
Système d’exploitation
Du point de vue du programmeur
14
Système d’exploitation
Un peu d’histoire
L’ancêtre des systèmes d’exploitation : UNIX.
• Développé par Ken Thomson & Dennis Ritchie (Bell Labs) à partir de
1969
• Initialement nommé Unics (en référence à Multics)
• Remplace le système d’exploitation du PDP-7, puis du PDP-11
• Ré-écrit en C en 1971 : portabilité, évolutivité
15
Système d’exploitation
Un peu d’histoire
Évolu&ons d’UNIX :
• Unix system V (AT&T) → Linux (1992), Android (2007)
• BSD → OpenBSD, FreeBSD, Mac OS X (1999)
• POSIX (norme IEEE, Unix Portable, 1998)
• → l’héritage d’UNIX est encore très présent
16
Système d’exploitation
Les innovations d’UNIX
Deux innovations majeures
1. Unification des entrées/sorties
• Abstraction : notion de fichiers.
• Autorisation : système unique de permissions.
2. Notion de processus
• Arbitrage : unité d’accès aux ressources.
• Augmentation : temps partagé.
Exemples :
• VMWare
• VirtualBox
• Parallels
• Xen
18
Système d’exploita1on
Du point de vue du programmeur
Exemples :
• Java (Scala, Clojure, Groovy…) • Java = Compile once, run everywhere
• Javascript • C/UNIX = Write once, compile everywhere
• Perl, Python, Ruby, Lua … • Langages interprétés = Write once, run everywhere
19
1. Noyaux et appels systèmes
Notions de base
Modes d’exécu,on
• Le processeur possède plusieurs modes d’exécu,on :
Au minimum un mode superviseur et un mode u(lisateur.
20
1. Noyaux et appels systèmes
Notions de base
Modes d’exécu,on
• Mode superviseur (également appelé mode noyau) :
Toutes les instruc;ons sont autorisées.
• Mode u;lisateur :
Certaines instruc;ons sont interdites ou limitées.
(par exemple: plage d’adresses mémoire autorisées)
22
1. Noyaux et appels systèmes
Notions de base
Lorsqu’une interruption se produit :
• Selon son type, le processeur choisit le bon gestionnaire d’interruption.
• Il passe en mode « superviseur ».
• Il sauvegarde le contexte (état des registres) du programme courant.
• Il exécute le gestionnaire d’interruption.
• Il restaure le contexte sauvegardé et reprend le programme courant
(dans le bon mode d’exécution).
23
1. Noyaux et appels systèmes
No1ons de base
Les interruptions : des exemples…
24
1. Noyaux et appels systèmes
Notions de base
Les interruptions fonctionnent sur le même principe que celui de la
programmation événementielle :
• Paradigme utilisé entre autres pour la programmation des interfaces
graphiques.
• On ne décrit pas l’ordre dans lequel les différentes procédures doivent être
exécutées.
• Chaque procédure est attachée à un événement particulier
• Clic sur un bouton, fermeture d’une fenêtre, etc.
25
1. Noyaux et appels systèmes
No1ons de base
Les interrup+ons matérielles
• Les périphériques u.lisent des interrup+ons matérielles pour
no.fier le processeur d’un événement
• Directement sollicité (e.g. demande de lecture ou d’écriture sur un
disque dur)
• ou non (e.g. données disponibles depuis le réseau, le clavier, la
souris…).
→ Le noyau du système d’exploita.on a donc la main au début et à la
fin de chaque opéra.on d’entrées/sor.es.
26
1. Noyaux et appels systèmes
Principes
• Le noyau (en anglais kernel) du système d’exploitation est un
ensemble de gestionnaire d’interruptions, chargés en mémoire au
démarrage du système.
27
1. Noyaux et appels systèmes
Déroulement d’un appel système
• Le programme applica/f décrit le service souhaité en renseignant
des registres dédiés.
• Il déclenche une interrup/on d’un type par/culier, ce qui passe la
main au noyau.
• Ce dernier exécute (en mode superviseur) la fonc/on requise (ou
refuse, le cas échéant), et inscrit le résultat dans un registre dédié.
• Il rend la main au programme de l’applica/on, en mode u'lisateur.
28
1. Noyaux et appels systèmes
Démarrage du système
• Au démarrage, les ges0onnaires d’interrup0on qui cons0tuent le
noyau sont chargés en mémoire aux emplacements définis.
29
1. Noyaux et appels systèmes
Bibliothèque système
• Le mécanisme d’appel système est généralement encapsulé par une
bibliothèque.
• Les appels systèmes se présentent donc comme des fonctions /
procédures classiques.
31
1. Noyaux et appels systèmes
Temps partagé
Le principe du temps partagé consiste à mettre à profit les temps de latences liés
notamment aux entrées/sorties pour exécuter plusieurs programmes en parallèle.
32
1. Noyaux et appels systèmes
Ordonnanceur
• L’ordonnanceur (en anglais scheduler) est la par1e du système
d’exploita1on qui est chargée de l’arbitrage du processeur.
• Il est invoqué à la fin de chaque ges1onnaire d’interrup1on, afin de
déterminer à quel programme il faut ensuite passer la main.
• Son implémenta1on doit permeFre un compromis entre le surcoût
et un certain nombre de critères qui dépendent du type de système
d’exploita1on et des souhaits de l’administrateur système.
33
1. Noyaux et appels systèmes
Ordonnanceur
• Équité :
Propriété d’un ordonnanceur garan3ssant à tous les processus
les même chances d’obtenir le processeur.
34
1. Noyaux et appels systèmes
Ordonnanceur
• Préemtion :
Un périphérique dédié, l’horloge, émet une interruption à intervalle
régulier.
Avantage : garantit un arbitrage régulier par préemption.
Inconvénient : surcoût en temps de calcul.
35
2. Les Processus
Introduction
• Défini&on: Un processus est une instance d’un programme
qui s’exécute.
36
2. Les Processus
Introduc0on
• Il a un état d’exécu.on :
• compteur de programme, la pointeur sur la pile…
• Il dispose de zones et de ressources allouées temporairement :
• données, état des registres CPU, occupa.on mémoire…
• Il peut avoir besoin de ressources matérielles spécifiques :
• e.g. périphériques d’entrée/sor.es…
37
2. Les Processus
Introduction
• Le système d’exploitation gère les
ressources matérielles pour le
comptes des applications.
• Une application : un programme qui
est stockés sur disque ou su, dans le
cloud… C’est une entité statique.
• Un processus : l’état d’un programme
en cours d’exécution, chargé en
mémoire… C’est une entité active.
38
2. Les Processus
Introduc0on
• Un programme peut être lancé plusieurs fois => plusieurs
processus sont créés.
39