Professional Documents
Culture Documents
Formation Continue
Anne 2010
Systmes d'exploitation
Systmes d'exploitation
Introduction
Gestion de la mmoire
Systmes d'exploitation
Systmes d'exploitation
Introduction
Sommaire
1 Introduction
Dnition
Historique
Types de systmes d'exploitation
Architecture matrielle
2 Conception des sytmes d'exploitation
3 Gestion des processus
1 Gestion de la mmoire
Systmes d'exploitation
Cours 1
Systmes d'exploitation
Introduction
Dnition
Sommaire
1
Introduction
Dnition
Historique
Types de systmes d'exploitation
Architecture matrielle
Gestion de la mmoire
Systmes d'exploitation
Cours 1
Systmes d'exploitation
Introduction
Dnition
Systmes d'exploitation
Cours 1
Systmes d'exploitation
Introduction
Dnition
Systmes d'exploitation
Cours 1
Systmes d'exploitation
Introduction
Dnition
Systmes d'exploitation
Cours 1
Systmes d'exploitation
Introduction
Dnition
inni
Systmes d'exploitation
Cours 1
Systmes d'exploitation
Introduction
Dnition
inni
Systmes d'exploitation
Cours 1
Systmes d'exploitation
Introduction
Dnition
inni
Systmes d'exploitation
Cours 1
Systmes d'exploitation
Introduction
Dnition
meilleure matrise
amliorer l'ecacit
ne pas rinventer la
roue
Challenge intellectuel... et c'est intressant, tout simplement
Systmes d'exploitation
Cours 1
Systmes d'exploitation
Introduction
Dnition
Pourquoi un SE ?
Les ressources matrielles sont complexes dtails techniques
embtants
Systmes d'exploitation
Cours 1
Systmes d'exploitation
Introduction
Dnition
Un rle de gestionnaire
tampons d'impression
Systmes d'exploitation
Cours 1
Systmes d'exploitation
Introduction
Dnition
Un rle de gestionnaire
Systmes d'exploitation
Cours 1
Systmes d'exploitation
Introduction
Dnition
Fonctionnalits d'un SE
Buts d'un systme d'exploitation :
dcharger le programmeur d'une tache norme et fastidieuse
Systmes d'exploitation
Cours 1
10
Systmes d'exploitation
Introduction
Dnition
Systmes d'exploitation
Cours 1
11
Systmes d'exploitation
Introduction
Historique
Sommaire
1
Introduction
Dnition
Historique
Types de systmes d'exploitation
Architecture matrielle
Gestion de la mmoire
Systmes d'exploitation
Cours 1
12
Systmes d'exploitation
Introduction
Historique
Premire gnration
19401955 : Relais et tubes vide, programms par tableaux
d'interrupteurs
Trs lent, cycle mesur en secondes
Systmes d'exploitation
Cours 1
13
Systmes d'exploitation
Introduction
Historique
Systmes d'exploitation
Cours 1
14
Systmes d'exploitation
Introduction
Historique
Systmes d'exploitation
Cours 1
15
Systmes d'exploitation
Introduction
Historique
Systmes d'exploitation
Cours 1
16
Systmes d'exploitation
Introduction
Historique
Systmes d'exploitation
Cours 1
17
Systmes d'exploitation
Introduction
Historique
Systmes d'exploitation
Cours 1
18
Systmes d'exploitation
Introduction
Types de systmes d'exploitation
Sommaire
1
Introduction
Dnition
Historique
Types de systmes d'exploitation
Architecture matrielle
Gestion de la mmoire
Systmes d'exploitation
Cours 1
19
Systmes d'exploitation
Introduction
Types de systmes d'exploitation
Systmes d'exploitation
Cours 1
20
Systmes d'exploitation
Introduction
Types de systmes d'exploitation
Systmes multiprocesseurs
Plusieurs processeurs
Gestion concurrente des ressources
Systmes d'exploitation
Cours 1
21
Systmes d'exploitation
Introduction
Types de systmes d'exploitation
Systmes personnels
Interface conviviale
Utilisation basique
Systmes embarqus
Interface conviviale
Contraintes matrielles
Systmes pour smart-cards
R. Bonidal (FC 2010)
Systmes d'exploitation
Cours 1
22
Systmes d'exploitation
Introduction
Architecture matrielle
Sommaire
1
Introduction
Dnition
Historique
Types de systmes d'exploitation
Architecture matrielle
Gestion de la mmoire
Systmes d'exploitation
Cours 1
23
Systmes d'exploitation
Introduction
Architecture matrielle
Systmes d'exploitation
Cours 1
24
Systmes d'exploitation
Introduction
Architecture matrielle
un peu d'histoire....(encore !)
Systmes d'exploitation
Cours 1
26
Systmes d'exploitation
Introduction
Architecture matrielle
Et maintenant ...
Architecture moderne
Unit de calcul et de
contrle runies
BUS pour change de
donnes
Mmoire non uniforme !
Systmes d'exploitation
Cours 1
27
Systmes d'exploitation
Introduction
Architecture matrielle
Un exemple d'instruction
Systmes d'exploitation
Cours 1
28
Systmes d'exploitation
Introduction
Architecture matrielle
Le cerveau de l'ordinateur
Excute les instructions selon un cycle
Fetch
Decode
Execute
Systmes d'exploitation
Cours 1
29
Systmes d'exploitation
Introduction
Architecture matrielle
La memoire
Temps d'accs
1 ns
2 ns
10 ns
10 ms
Registres
Caches
Mmoire principale
Disque
Gr par
Compilateur
Materiel
OS
OS
Capacit
< 1 Ko
1 Mo
1 Go
1 To
Systmes d'exploitation
Cours 1
30
Systmes d'exploitation
Introduction
Architecture matrielle
bus de processeur
bus de mmoire (synchrone)
bus d'entre/sortie (asynchrone)
Systmes d'exploitation
Cours 1
31
Systmes d'exploitation
Introduction
Architecture matrielle
Systmes d'exploitation
Cours 1
32
Systmes d'exploitation
Introduction
Architecture matrielle
Communiquer ...
...avec quoi ?
Systmes d'exploitation
Cours 1
33
Systmes d'exploitation
Introduction
Architecture matrielle
Communiquer ...
...en sondant
Le SE demande
rgulirement si il y a de
nouvelles donnes.
Systmes d'exploitation
Cours 1
34
Systmes d'exploitation
Introduction
Architecture matrielle
Communiquer ...
...en sondant
Le SE demande
rgulirement si il y a de
nouvelles donnes.
INEFFICACE !
Systmes d'exploitation
Cours 1
34
Systmes d'exploitation
Introduction
Architecture matrielle
Communiquer ...
...en sondant
Le SE demande
rgulirement si il y a de
nouvelles donnes.
INEFFICACE !
...en interrompant
Le priphrique
interrompt le CPU en
l'avertissant qu'il y a de
nouvelles donnes.
MODERNE !
Systmes d'exploitation
Cours 1
34
Systmes d'exploitation
Introduction
Architecture matrielle
write
transmet le contrle au
programme d'E/S
Le prog d'E/S prpare le priphrique
Le CPU doit attendre la n du
write
Systmes d'exploitation
Cours 1
35
Systmes d'exploitation
Introduction
Architecture matrielle
Systmes d'exploitation
Cours 1
36
Systmes d'exploitation
Introduction
Architecture matrielle
Le gestionnaire d'interruptions
Procdure d'interuption :
Sauvegarde du contexte d'excution du programme en cours.
Lire l'emplacement du programme destin grer cet
vnement (table d'association prtablie)
Excution de la routine
Restauration du contexte
Reprise du programme
Systmes d'exploitation
Cours 1
37
Systmes d'exploitation
Introduction
Architecture matrielle
Exemple d'interruption
Interruptions
Systmes d'exploitation
Cours 1
38
Systmes d'exploitation
Introduction
Architecture matrielle
Les E/S
Retourne l'tat du module d'E/S : normal ou erreur
Les exceptions
Dbordements, instructions illgales, rfrence hors espace
utilisateur
Timers
Tick horloge
Suspend un programme pour eectuer des tches annexes
Dfauts matriels
Systmes d'exploitation
Cours 1
39
Systmes d'exploitation
Introduction
Architecture matrielle
Cours 1
40
Systmes d'exploitation
Introduction
Architecture matrielle
Rfrences bibliographiques
La bible (aussi disponible en franais) :
Modern Operating Systems ,
Andrew S. Tanenbaum
Le noyau Linux ,
Multiboot :
http://www.bellamyjc.org/fr/multiboot.html
R. Bonidal (FC 2010)
Systmes d'exploitation
Cours 1
41
Systmes d'exploitation
Conception des sytmes d'exploitation
Sommaire
1 Introduction
2 Conception des sytmes d'exploitation
Rle d'un SE
Structures de SE
3 Gestion des processus
1 Gestion de la mmoire
Systmes d'exploitation
Cours 2
42
Systmes d'exploitation
Conception des sytmes d'exploitation
Rle d'un SE
Sommaire
1
Introduction
Gestion de la mmoire
Systmes d'exploitation
Cours 2
43
Systmes d'exploitation
Conception des sytmes d'exploitation
Rle d'un SE
Systmes d'exploitation
Cours 2
44
Systmes d'exploitation
Conception des sytmes d'exploitation
Rle d'un SE
Systmes d'exploitation
Cours 2
44
Systmes d'exploitation
Conception des sytmes d'exploitation
Rle d'un SE
Rle du SE
CPU
Mmoire
Fichiers
Systmes d'exploitation
Cours 2
45
Systmes d'exploitation
Conception des sytmes d'exploitation
Rle d'un SE
Systmes d'exploitation
Cours 2
46
Systmes d'exploitation
Conception des sytmes d'exploitation
Rle d'un SE
Exemples de protections
Entres/Sorties
Cours 2
47
Systmes d'exploitation
Conception des sytmes d'exploitation
Rle d'un SE
Les aspects du SE
2 aspects
Passif : orir des services aux applications.
Actif : Surveillance et contrle.
Quelques termes :
Interface de commande (Texte ou graphique) : application
standard
Appel systme(System call API) : Fonctions fournies par le SE
aux applications
Noyau : Systme qui joue le rle actif et qui implante les
appels systmes
R. Bonidal (FC 2010)
Systmes d'exploitation
Cours 2
48
Systmes d'exploitation
Conception des sytmes d'exploitation
Rle d'un SE
Organisation
Communication
Gestion de la mmoire
Aectation
Robustesse
Protection
Scurits
Systmes d'exploitation
Cours 2
49
Systmes d'exploitation
Conception des sytmes d'exploitation
Rle d'un SE
Processus et CPU
Processus
(R)Activer un processus
Suspendre un processus
Tuer un processus
Contler l'excution d'un processus De manire optimale pour le
CPU
R. Bonidal (FC 2010)
Systmes d'exploitation
Cours 2
50
Systmes d'exploitation
Conception des sytmes d'exploitation
Rle d'un SE
Systmes d'exploitation
Cours 2
51
Systmes d'exploitation
Conception des sytmes d'exploitation
Rle d'un SE
Processus et mmoire
1 processus
mmoire)
La mmoire = code + donnes du processus pendant son
excution
Rle du SE
Systmes d'exploitation
Cours 2
52
Systmes d'exploitation
Conception des sytmes d'exploitation
Rle d'un SE
Systmes d'exploitation
Cours 2
53
Systmes d'exploitation
Conception des sytmes d'exploitation
Rle d'un SE
types
droits d'accs
structure
Rle du SE
Cration
Modication
Lecture
criture
Suppression
Systmes d'exploitation
Cours 2
54
Systmes d'exploitation
Conception des sytmes d'exploitation
Rle d'un SE
Autres composants
Gestion des E/S (clavier, souris, cran, ...)
Gestion du rseau
rseau local
SE distribu
Systmes d'exploitation
Cours 2
55
Systmes d'exploitation
Conception des sytmes d'exploitation
Structures de SE
Sommaire
1
Introduction
Gestion de la mmoire
Systmes d'exploitation
Cours 2
56
Systmes d'exploitation
Conception des sytmes d'exploitation
Structures de SE
Structure d'un SE
Plusieurs possibilits de conception pour un SE
1 Sans relle structure
Systmes d'exploitation
Cours 2
57
Systmes d'exploitation
Conception des sytmes d'exploitation
Structures de SE
Structure d'un SE
Plusieurs possibilits de conception pour un SE
1 Sans relle structure
2 En couches
Systmes d'exploitation
Cours 2
57
Systmes d'exploitation
Conception des sytmes d'exploitation
Structures de SE
Structure d'un SE
Plusieurs possibilits de conception pour un SE
1 Sans relle structure
2 En couches
3 noyau
Monolithique
Microkernel
Hybride
Exokernel
Systmes d'exploitation
Cours 2
57
Systmes d'exploitation
Conception des sytmes d'exploitation
Structures de SE
Structuration hirarchique
mal dnie
Une entit peut faire appel
aux services de toutes les
couches infrieures
Restrictions limites, peu de
contrles : pas de scurit
Exemple : MS-DOS
Systmes d'exploitation
Cours 2
58
Systmes d'exploitation
Conception des sytmes d'exploitation
Structures de SE
couches
Structuration hirarchique
bien dnie
Une couche ne fait appel
qu'au services de la couche
directement infrieure
Bonne thorie gnrale,
extensible
Trs peu ecace, trop
d'intermdiaires
Exemple :
THE de Djiksrta
(1968)
Systmes d'exploitation
Cours 2
59
Systmes d'exploitation
Conception des sytmes d'exploitation
Structures de SE
noyau
Structuration 2 niveaux
gnralement :
1
2
Mode noyau
(Kernel Mode)
Mode utilisateur
(User Mode)
Systmes d'exploitation
Cours 2
60
Systmes d'exploitation
Conception des sytmes d'exploitation
Structures de SE
Interface)
Systmes d'exploitation
Cours 2
61
Systmes d'exploitation
Conception des sytmes d'exploitation
Structures de SE
Exemple de l'appel
Systmes d'exploitation
Cours 2
62
Systmes d'exploitation
Conception des sytmes d'exploitation
Structures de SE
Exemple de l'appel
Systmes d'exploitation
Cours 2
62
Systmes d'exploitation
Conception des sytmes d'exploitation
Structures de SE
Exemple de l'appel
Systmes d'exploitation
Cours 2
62
Systmes d'exploitation
Conception des sytmes d'exploitation
Structures de SE
Exemple de l'appel
Systmes d'exploitation
Cours 2
62
Systmes d'exploitation
Conception des sytmes d'exploitation
Structures de SE
Exemple de l'appel
Systmes d'exploitation
Cours 2
62
Systmes d'exploitation
Conception des sytmes d'exploitation
Structures de SE
Exemple de l'appel
Systmes d'exploitation
Cours 2
62
Systmes d'exploitation
Conception des sytmes d'exploitation
Structures de SE
Exemple de l'appel
Systmes d'exploitation
Cours 2
62
Systmes d'exploitation
Conception des sytmes d'exploitation
Structures de SE
Exemple de l'appel
Systmes d'exploitation
Cours 2
62
Systmes d'exploitation
Conception des sytmes d'exploitation
Structures de SE
Exemple de l'appel
Systmes d'exploitation
Cours 2
62
Systmes d'exploitation
Conception des sytmes d'exploitation
Structures de SE
Exemple de l'appel
Systmes d'exploitation
Cours 2
62
Systmes d'exploitation
Conception des sytmes d'exploitation
Structures de SE
Exemple de l'appel
Systmes d'exploitation
Cours 2
62
Systmes d'exploitation
Conception des sytmes d'exploitation
Structures de SE
Exemple de l'appel
Systmes d'exploitation
Cours 2
62
Systmes d'exploitation
Conception des sytmes d'exploitation
Structures de SE
noyau : Monolithique
Un seul programme
Systmes d'exploitation
Cours 2
63
Systmes d'exploitation
Conception des sytmes d'exploitation
Structures de SE
noyau : Micronoyau
Noyau rduit au presque minimum (microkernel)
Gre principalement l'ordonnancement et les transferts de
messages entre les programmes
Les drivers et les applications s'excutent en mode utilisateur
Systme client-serveur
Portable et facilement
maintenable
Ecacit plutt
mauvaise (pas
d'optimisation)
Exemples : Mach, Minix
R. Bonidal (FC 2010)
Systmes d'exploitation
Cours 2
64
Systmes d'exploitation
Conception des sytmes d'exploitation
Structures de SE
noyau : Hybride
Compromis entre le kernel monolithique et le micorkernel
Les drivers s'excutent en mode noyau
optimsation
Exemple : Windows NT
Systmes d'exploitation
Cours 2
65
Windows 2000
Systmes d'exploitation
Conception des sytmes d'exploitation
Structures de SE
noyau : Exonoyau
Exokernel est un petit noyau grant gneralement des
machines virtuelles excutes en mode utilisateur
Les ressources sont alloues aux machines virtuelles par
l'exokernel
Un SE de SE en quelque sorte
Systmes d'exploitation
Cours 2
67
Systmes d'exploitation
Conception des sytmes d'exploitation
Structures de SE
Le cas de linux
Approche descriptive
Interface d'appels systmes
Sous-systmes de gestion des processus :
gestion du buer-cache
gestion des chiers
gestion des priphriques
Systmes d'exploitation
Cours 2
68
Systmes d'exploitation
Conception des sytmes d'exploitation
Structures de SE
Le cas de linux
Approche fonctionnelle
Une partie suprieure :
Systmes d'exploitation
Cours 2
69
Systmes d'exploitation
Conception des sytmes d'exploitation
Structures de SE
Dirence interruption/exception
Une interruption est provoque par un signal provenant du
monde extrieur au processeur, et modiant le comportement
de celui-ci.
Une exception est un signal provoque par un
dysfonctionnement du programme en cours d'excution
Chaque interruption ou exception dispose d'un
sous-programme (handler) qui prend en charge l'vnement
correspondant : table de vecteurs d'interruption ou IDT :
Interrupt Descriptor Table dans le langage Linux.
Systmes d'exploitation
Cours 2
70
Systmes d'exploitation
Gestion des processus
Sommaire
1 Introduction
2 Conception des sytmes d'exploitation
3 Gestion des processus
Concepts
Changement de contexte
Ordonnancement
Le cas des Unix
Synchronisation des processus
1 Gestion de la mmoire
R. Bonidal (FC 2010)
Systmes d'exploitation
Cours 3
71
Systmes d'exploitation
Gestion des processus
Concepts
Sommaire
1
Introduction
Gestion de la mmoire
Systmes d'exploitation
Cours 3
72
Systmes d'exploitation
Gestion des processus
Concepts
Concepts
Processus et boot
Systmes d'exploitation
Cours 3
73
Systmes d'exploitation
Gestion des processus
Concepts
Concepts
virtuellement concurrente
Chaque processus a son espace d'adressage contenant
Systmes d'exploitation
Cours 3
74
Systmes d'exploitation
Gestion des processus
Concepts
Concepts
Processus et noyau
La smantique des interactions entre le kernel et les processus
utilisateurs est dnie travers l'API systme : les appels
systme
Systmes d'exploitation
Cours 3
75
Systmes d'exploitation
Gestion des processus
Concepts
Concepts
Systmes d'exploitation
Cours 3
76
Systmes d'exploitation
Gestion des processus
Concepts
Concepts
En rsum
Systmes d'exploitation
Cours 3
77
Systmes d'exploitation
Gestion des processus
Concepts
Concepts
=
6
Systmes d'exploitation
tats
Cours 3
78
Systmes d'exploitation
Gestion des processus
Concepts
Concepts
Systmes d'exploitation
Cours 3
79
Systmes d'exploitation
Gestion des processus
Changement de contexte
Sommaire
1
Introduction
Gestion de la mmoire
Systmes d'exploitation
Cours 3
80
Systmes d'exploitation
Gestion des processus
Changement de contexte
Changement de contexte
Interruption/activation de processus
changement de
Systmes d'exploitation
Cours 3
81
Systmes d'exploitation
Gestion des processus
Changement de contexte
Changement de contexte
Systmes d'exploitation
Cours 3
82
Systmes d'exploitation
Gestion des processus
Ordonnancement
Sommaire
1
Introduction
Gestion de la mmoire
Systmes d'exploitation
Cours 3
83
Systmes d'exploitation
Gestion des processus
Ordonnancement
Ordonnancement
Scheduling
Bas niveau
Haut niveau
R. Bonidal (FC 2010)
Excutions
Trs frquentes
Occasionnelles
Performances demandes
Excellentes
Bonnes
Systmes d'exploitation
Cours 3
84
Systmes d'exploitation
Gestion des processus
Ordonnancement
Ordonnancement
Files d'attente
CPU ?
Systmes d'exploitation
Cours 3
85
Systmes d'exploitation
Gestion des processus
Ordonnancement
Files d'attentes
Traitement par lots
Batch mode
Pas d'ordonnancement de bas niveau
Si demande d'E/S le CPU reste inactif durant le traitement
Systmes d'exploitation
Cours 3
86
Systmes d'exploitation
Gestion des processus
Ordonnancement
Files d'attentes
Multiprogrammation
Systmes d'exploitation
Cours 3
87
Systmes d'exploitation
Gestion des processus
Ordonnancement
Files d'attentes
Temps partag
Systmes d'exploitation
Cours 3
88
Systmes d'exploitation
Gestion des processus
Ordonnancement
Files d'attentes
Mmoire virtuelle
Systmes d'exploitation
Cours 3
89
Systmes d'exploitation
Gestion des processus
Ordonnancement
Ordonnancement
Les algorithmes
Les critres
minimiser
maximiser
Comment quantier ?
Systmes d'exploitation
Cours 3
90
Systmes d'exploitation
Gestion des processus
Ordonnancement
Ordonnancement
Les algorithmes
2 classes d'ordonnanceurs
1
2
Exemples
Premptifs
Non premptifs
Systmes d'exploitation
Cours 3
91
Systmes d'exploitation
Gestion des processus
Ordonnancement
Les algorithmes
Systmes d'exploitation
Cours 3
92
Systmes d'exploitation
Gestion des processus
Ordonnancement
Les algorithmes
Systmes d'exploitation
Cours 3
93
Systmes d'exploitation
Gestion des processus
Ordonnancement
Les algorithmes
Le demander l'utilisateur
L'estimer partir de l'historique
tn+1 = a tn + (1 a) pn
Problme
Solution
Systmes d'exploitation
Cours 3
94
Systmes d'exploitation
Gestion des processus
Ordonnancement
Les algorithmes
Premptif : RR
Systmes d'exploitation
Cours 3
95
Systmes d'exploitation
Gestion des processus
Ordonnancement
Les algorithmes
Premptif : RR
Problme
Choix du quantum
Sous Unix
Dpend de l'utilisation (serveur, ordinateur de bureau, ...)
Gnralement 100ms
Systmes d'exploitation
Cours 3
96
Systmes d'exploitation
Gestion des processus
Ordonnancement
Les algorithmes
Listes multiples
Systmes d'exploitation
Cours 3
97
Systmes d'exploitation
Gestion des processus
Ordonnancement
Les algorithmes
Listes multiples
Systmes d'exploitation
Cours 3
98
Systmes d'exploitation
Gestion des processus
Ordonnancement
Les algorithmes
Cas FCFS :
TAM =
0+(16)+(16+2)+(16+2+8)
4
TAM =
0+(2)+(2+8)+(2+8+12)
4
Cas SJF :
= 15
= 8, 5
Systmes d'exploitation
Cours 3
99
Systmes d'exploitation
Gestion des processus
Le cas des Unix
Sommaire
1
Introduction
Gestion de la mmoire
Systmes d'exploitation
Cours 3
100
Systmes d'exploitation
Gestion des processus
Le cas des Unix
Systmes d'exploitation
Cours 3
101
Systmes d'exploitation
Gestion des processus
Le cas des Unix
Systmes d'exploitation
Cours 3
102
Systmes d'exploitation
Gestion des processus
Le cas des Unix
Systmes d'exploitation
Cours 3
103
Systmes d'exploitation
Gestion des processus
Le cas des Unix
fork()
de la librairie C
Systmes d'exploitation
Cours 3
104
Systmes d'exploitation
Gestion des processus
Synchronisation des processus
Sommaire
1
Introduction
Gestion de la mmoire
Systmes d'exploitation
Cours 5
105
Systmes d'exploitation
Gestion des processus
Synchronisation des processus
Producteurs/Consommateurs
Lecteurs/Rdacteurs
Diner des Philosophes
Systmes d'exploitation
Cours 5
106
Systmes d'exploitation
Gestion des processus
Synchronisation des processus
Producteurs/Consommateurs
Systmes d'exploitation
Cours 5
107
Systmes d'exploitation
Gestion des processus
Synchronisation des processus
Lecteurs/Rdacteurs
Systmes d'exploitation
Cours 5
108
Systmes d'exploitation
Gestion des processus
Synchronisation des processus
Systmes d'exploitation
Cours 5
109
Systmes d'exploitation
Gestion des processus
Synchronisation des processus
Systmes d'exploitation
Cours 5
110
Systmes d'exploitation
Gestion des processus
Synchronisation des processus
Systmes d'exploitation
Cours 5
111
Systmes d'exploitation
Gestion des processus
Synchronisation des processus
Race condition
Situation de comptition (Race condition)
Systmes d'exploitation
Cours 5
112
Systmes d'exploitation
Gestion des processus
Synchronisation des processus
Race condition
Situation de comptition (Race condition)
Question
Systmes d'exploitation
Cours 5
112
Systmes d'exploitation
Gestion des processus
Synchronisation des processus
Race condition
Situation de comptition (Race condition)
Question
Solution
Systmes d'exploitation
Cours 5
112
Systmes d'exploitation
Gestion des processus
Synchronisation des processus
Systmes d'exploitation
Cours 5
113
Systmes d'exploitation
Gestion des processus
Synchronisation des processus
Section critique
Une suite d'instructions d'un programme accdant une
ressource partage est appele une section critique (SC)
1
2
3
4
Systmes d'exploitation
Cours 5
114
Systmes d'exploitation
Gestion des processus
Synchronisation des processus
Systmes d'exploitation
Cours 5
115
Systmes d'exploitation
Gestion des processus
Synchronisation des processus
Verrous
Lock variables
Le principe
Exemple
Systmes d'exploitation
Cours 5
116
Systmes d'exploitation
Gestion des processus
Synchronisation des processus
Verrous
Problmes
1
2
Systmes d'exploitation
Cours 5
117
Systmes d'exploitation
Gestion des processus
Synchronisation des processus
L'alternance stricte
L'alternance
Processus 0
Rpter {
Tantque
;
Processus 1
Rpter {
Tantque
(a_qui_le_tour != 0)
/* section critique */
a_qui_le_tour = 1 ;
/* section non critique */
(a_qui_le_tour != 1)
/* section critique */
a_qui_le_tour = 0 ;
/* section non critique */
Systmes d'exploitation
Cours 5
118
Systmes d'exploitation
Gestion des processus
Synchronisation des processus
Solution de Peterson
Combinaison d'alternance strict et de verrouillage
interesse[1] = TRUE
tour = 1
Attente sur le while que processus
0 appelle quitter_SC()
Processus 0 et 1 appellent
entrer_SC()
interesse[0]=interesse[1] =
TRUE
tour = 0 puis tour = 1
Donc processus 0 en SC et
processus 1 bloque sur le while
R. Bonidal (FC 2010)
Solution de Peterson
int tour ;
int interesse[2] ;
void entrer_SC(int proc) {
int autre = 1 - proc ;
interesse[proc] = TRUE ;
tour = proc ;
while (tour == proc &&
intresse[autre] ==
TRUE) ;
}
void quitter_SC(int proc) {
interesse[proc] = FALSE ;
}
Systmes d'exploitation
Cours 5
119
Systmes d'exploitation
Gestion des processus
Synchronisation des processus
Solution matrielle
TSL : Test and Set Lock
Certains processeurs disposent d'une instruction permettant
d'eectuer de manire indivisible (atomique) le test de la
valeur d'un registre et de lui assigner une nouvelle valeur
Instruction TSL
entrer_sc :
TSL REGISTRE, LockFlag
CMP REGISTRE, #0
JNE enter_region
RET
R. Bonidal (FC 2010)
quitter_sc :
MOV LockFlag, #0
RET
Systmes d'exploitation
Cours 5
120
Systmes d'exploitation
Gestion des processus
Synchronisation des processus
Inconvnients
Les processus doivent jouer le jeu et cooprer pour que les
techniques fonctionnent
Attente active
Systmes d'exploitation
Cours 5
121
Systmes d'exploitation
Gestion des processus
Synchronisation des processus
Les smaphores
Problme des Producteurs / Consommateurs
Ressource partage
Objectifs
Problme
Systmes d'exploitation
Cours 5
122
Systmes d'exploitation
Gestion des processus
Synchronisation des processus
Les smaphores
Comment viter l'attente active ?
2 fonctions
sleep()
wakeup()
Ide
Quand un processus appelle
sleep(), il s'endort
wakeup(), il rveille
le
processus endormi
Systmes d'exploitation
Cours 5
123
Systmes d'exploitation
Gestion des processus
Synchronisation des processus
Les smaphores
Problme des Producteurs / Consommateurs
void consommateur() {
int item ;
while(TRUE) {
if (cpt == 0)
sleep() ;
item =
retirer_objet(buffer) ;
--cpt ;
if (cpt == BUFFER_SIZE - 1)
wakeup(producteur) ;
consommer_objet(item) ;
}
}
Systmes d'exploitation
Cours 5
124
Systmes d'exploitation
Gestion des processus
Synchronisation des processus
Les smaphores
Problme
Conit sur la variable
cpt
Illustration
Solution
Mmoriser le
wakeup()
les smaphores
Systmes d'exploitation
Cours 5
125
Systmes d'exploitation
Gestion des processus
Synchronisation des processus
Les smaphores
Dnition
Une smaphore est une variable qui
Contrle l'accs une ressource partage
Indique le nombre d'lments de la ressource qui sont
disponibles
Maintient une liste des processus bloqus en attente de cette
ressource (s'il y en a)
Systmes d'exploitation
Cours 5
126
Systmes d'exploitation
Gestion des processus
Synchronisation des processus
Les smaphores
Implantation possible d'une smaphore
n enregistrement
Lp
<0
Systmes d'exploitation
Cours 5
127
Systmes d'exploitation
Gestion des processus
Synchronisation des processus
Les smaphores
2 oprations atomiques permettent de modier l'tat d'une
smaphore
down(S)
(ou P) dcrmente
up(S)
(ou V) incrmente
Exemple d'implantation
down(S)
S.valeur = S.valeur - 1
si S.valeur < 0
ajouter(processus_courant,
S.Lp)
sleep()
R. Bonidal (FC 2010)
up(S)
S.valeur = S.valeur + 1
si S.valeur 0
processus = retirer(S.Lp)
wakeup(processus)
Systmes d'exploitation
Cours 5
128
Systmes d'exploitation
Gestion des processus
Synchronisation des processus
full
Systmes d'exploitation
Cours 5
129
Systmes d'exploitation
Gestion des processus
Synchronisation des processus
void consommateur() {
int item ;
while(TRUE) {
down(&full) ;
down(&mutex) ;
item =
retirer_objet(buffer) ;
up(&mutex) ;
up(&empty) ;
consommer_objet(item) ;
}
}
Systmes d'exploitation
Cours 5
130
Systmes d'exploitation
Gestion de la mmoire
Sommaire
1 Introduction
2 Conception des sytmes d'exploitation
3 Gestion des processus
1 Gestion de la mmoire
Gestion des allocations mmoires
Mmoire virtuelle
Systmes d'exploitation
Cours 6
131
Systmes d'exploitation
Gestion de la mmoire
Gestion des allocations mmoires
Sommaire
1
Introduction
Gestion de la mmoire
Gestion des allocations mmoires
Mmoire virtuelle
Systmes d'exploitation
Cours 6
132
Systmes d'exploitation
Gestion de la mmoire
Gestion des allocations mmoires
Gestion de la mmoire
Objectifs
Systmes d'exploitation
Cours 6
133
Systmes d'exploitation
Gestion de la mmoire
Gestion des allocations mmoires
Gestion de la mmoire
Diversit de congurations
Monoprogrammtion
Multiprogrammtion
Partitionnement xe
Partitionnement variable
Code absolu
Code relogeable
Chargements en mmoire
Libration de la mmoire
Dplacements en mmoire
Systmes d'exploitation
Cours 6
134
Systmes d'exploitation
Gestion de la mmoire
Gestion des allocations mmoires
Monoprogrammation
Gestion de la mmoire
Systmes d'exploitation
Cours 6
135
Systmes d'exploitation
Gestion de la mmoire
Gestion des allocations mmoires
Multiprogrammation
Modlisation et valuation
Systmes d'exploitation
Cours 6
136
Systmes d'exploitation
Gestion de la mmoire
Gestion des allocations mmoires
Multiprogrammation
Modlisation
Pourcentage d'utilisation du CPU
100 %
90 %
80 %
70 %
60 %
50 %
40 %
30 %
20 %
10 %
0%
0
10
Systmes d'exploitation
Cours 6
137
Systmes d'exploitation
Gestion de la mmoire
Gestion des allocations mmoires
Multiprogrammation
Gestion de la mmoire
Systmes d'exploitation
Cours 6
138
Systmes d'exploitation
Gestion de la mmoire
Gestion des allocations mmoires
Multiprogrammation
Gestion de la mmoire
Systmes d'exploitation
Cours 6
139
Systmes d'exploitation
Gestion de la mmoire
Gestion des allocations mmoires
Multiprogrammation
Contrle de la mmoire
Systmes d'exploitation
Cours 6
140
Systmes d'exploitation
Gestion de la mmoire
Gestion des allocations mmoires
Systmes d'exploitation
Cours 6
141
Systmes d'exploitation
Gestion de la mmoire
Gestion des allocations mmoires
Systmes d'exploitation
Cours 6
142
Systmes d'exploitation
Gestion de la mmoire
Gestion des allocations mmoires
Systmes d'exploitation
Cours 6
143
Systmes d'exploitation
Gestion de la mmoire
Gestion des allocations mmoires
Systmes d'exploitation
Cours 6
144
Systmes d'exploitation
Gestion de la mmoire
Gestion des allocations mmoires
Systmes d'exploitation
Cours 6
145
Systmes d'exploitation
Gestion de la mmoire
Gestion des allocations mmoires
Multiprogrammation
code relogeable
Systmes d'exploitation
Cours 6
146
Systmes d'exploitation
Gestion de la mmoire
Gestion des allocations mmoires
Multiprogrammation
Partitions variables
Systmes d'exploitation
Cours 6
147
Systmes d'exploitation
Gestion de la mmoire
Gestion des allocations mmoires
Multiprogrammation
Allocation d'espace libre
Systmes d'exploitation
Cours 6
148
Systmes d'exploitation
Gestion de la mmoire
Gestion des allocations mmoires
Multiprogrammation
Reprsentation de l'espace
taille 2 )
Choix de n dlicat
Systmes d'exploitation
Cours 6
149
Systmes d'exploitation
Gestion de la mmoire
Gestion des allocations mmoires
Multiprogrammation
Reprsentation de l'espace
Systmes d'exploitation
Cours 6
150
Systmes d'exploitation
Gestion de la mmoire
Gestion des allocations mmoires
Multiprogrammation
Reprsentation de l'espace
Systmes d'exploitation
Cours 6
151
Systmes d'exploitation
Gestion de la mmoire
Gestion des allocations mmoires
Multiprogrammation
Reprsentation de l'espace
Listes chanes
Acclre l'allocation
Mais ralentit la libration
Systmes d'exploitation
Cours 6
152
Systmes d'exploitation
Gestion de la mmoire
Gestion des allocations mmoires
Multiprogrammation
Buddy System
Systmes d'exploitation
Cours 6
153
Systmes d'exploitation
Gestion de la mmoire
Gestion des allocations mmoires
Multiprogrammation
Buddy System
Systmes d'exploitation
Cours 6
154
Systmes d'exploitation
Gestion de la mmoire
Mmoire virtuelle
Sommaire
1
Introduction
Gestion de la mmoire
Gestion des allocations mmoires
Mmoire virtuelle
Systmes d'exploitation
Cours 6
155
Systmes d'exploitation
Gestion de la mmoire
Mmoire virtuelle
Mmoire virtuelle
Problmes :
Monoprogrammation
Multiprogrammation + interactivit
Systmes d'exploitation
Cours 6
156
Systmes d'exploitation
Gestion de la mmoire
Mmoire virtuelle
Mmoire virtuelle
Pagination
Systmes d'exploitation
Cours 6
157
Systmes d'exploitation
Gestion de la mmoire
Mmoire virtuelle
Mmoire virtuelle
Pagination
Systmes d'exploitation
Cours 6
158
Systmes d'exploitation
Gestion de la mmoire
Mmoire virtuelle
Mmoire virtuelle
Pagination
Systmes d'exploitation
Cours 6
159
Systmes d'exploitation
Gestion de la mmoire
Mmoire virtuelle
Mmoire virtuelle
Pagination
Systmes d'exploitation
Cours 6
160
Systmes d'exploitation
Gestion de la mmoire
Mmoire virtuelle
Mmoire virtuelle
Swap in / swap out
1
2
3
4
Problme :
Quelle page remplace-t-on ?
Systmes d'exploitation
Cours 6
161
Systmes d'exploitation
Gestion de la mmoire
Mmoire virtuelle
Mmoire virtuelle
Demande de page
Algorithme optimal :
chaque fois qu'une page est accde, elle est tiquete avec
un label donnant le nombre d'instructions excuter avant le
prochain accs cette page
Lors d'une demande de remplacement de page, la page avec le
label le plus lev est choisie pour tre dcharge de la
mmoire principale
Systmes d'exploitation
Cours 6
162
Systmes d'exploitation
Gestion de la mmoire
Mmoire virtuelle
Mmoire virtuelle
Demande de page
Algorithme optimal :
chaque fois qu'une page est accde, elle est tiquete avec
un label donnant le nombre d'instructions excuter avant le
prochain accs cette page
Lors d'une demande de remplacement de page, la page avec le
label le plus lev est choisie pour tre dcharge de la
mmoire principale
Impossible implanter :p !
Mais thoriquement c'est une bonne base de comparaison
Systmes d'exploitation
Cours 6
162
Systmes d'exploitation
Gestion de la mmoire
Mmoire virtuelle
Mmoire virtuelle
Demande de page
1
2
3
4
Systmes d'exploitation
Cours 6
163
Systmes d'exploitation
Gestion de la mmoire
Mmoire virtuelle
Mmoire virtuelle
Demande de page
dgnre en FIFO
Systmes d'exploitation
Cours 6
164
Systmes d'exploitation
Gestion de la mmoire
Mmoire virtuelle
Mmoire virtuelle
Demande de page
Cours 6
165