Questions de cours Ordonnancement Processus Synchronisation Conclusion
Syst` emes d’Exploitation Cours 7/13 : Partiel 2016-2017
Nicolas Sabouret
Universit´e Paris-Sud Licence 3 - semestre S5
Info32b Syst`emes d’Exploitation Nicolas Sabouret 1/28
Questions de cours Ordonnancement Processus Synchronisation Conclusion
Plan
1 Questions de cours
2 Ordonnancement
3 Processus
4 Synchronisation
Questions de cours Ordonnancement Processus Synchronisation Conclusion
Plan
1 Questions de cours
2 Ordonnancement
3 Processus
4 Synchronisation
5 Conclusion
Info32b Syst`emes d’Exploitation Nicolas Sabouret 3/28
Questions de cours Ordonnancement Processus Synchronisation Conclusion
Cycle de vie
Quelles les principales ´etapes du cycle de vie d’un processus pour l’OS ?
Cr´eation du processus
Passage dans la file des processus prˆets Ex´ecution du processus
Interruption→ retour dans la file prˆets Mise en attente du processus (E/S)
Terminaison
Prˆet
Ex´ecution
En Attente
Questions de cours Ordonnancement Processus Synchronisation Conclusion
Cycle de vie
Quelles les principales ´etapes du cycle de vie d’un processus pour l’OS ?
Cr´eation du processus
Passage dans la file des processus prˆets Ex´ecution du processus
Interruption→ retour dans la file prˆets Mise en attente du processus (E/S)
Terminaison
Prˆet
Ex´ecution
En Attente
Info32b Syst`emes d’Exploitation Nicolas Sabouret 4/28
Questions de cours Ordonnancement Processus Synchronisation Conclusion
A propos du cycle de vie. . .`
Cr´eation de processus
Les processus sont cr´e´es par l’OS(qui est lui-mˆeme un processus)
L’OS munit le processus des informations n´ecessaires pour son ex´ecution → il construit un PCB
Les informations pour la m´emoire (pointeur de pile, table des pages, etc.)
Les informations de contrˆole (priorit´e, propri´et´e, droits, etc.) Les donn´ees des registres (interruption et reprise)
L’OS modifie le code (assembleur) stock´e en m´emoire
Edition de liens, stub. . .´
L’OS fournit des donn´ees au processus (l’environnement) L’OS alloue des ressources sur demande du processus en ex´ecution
Pour cela, il lance une routine... donc il interrompt le processus !
Questions de cours Ordonnancement Processus Synchronisation Conclusion
A propos du cycle de vie. . .`
Cr´eation de processus
Les processus sont cr´e´es par l’OS(qui est lui-mˆeme un processus)
L’OS munit le processus des informations n´ecessaires pour son ex´ecution → il construit un PCB
Les informations pour la m´emoire (pointeur de pile, table des pages, etc.)
Les informations de contrˆole (priorit´e, propri´et´e, droits, etc.) Les donn´ees des registres (interruption et reprise)
L’OS modifie le code (assembleur) stock´e en m´emoire
Edition de liens, stub. . .´
L’OS fournit des donn´ees au processus (l’environnement) L’OS alloue des ressources sur demande du processus en ex´ecution
Pour cela, il lance une routine... donc il interrompt le processus !
Info32b Syst`emes d’Exploitation Nicolas Sabouret 5/28
Questions de cours Ordonnancement Processus Synchronisation Conclusion
A propos du cycle de vie. . .`
Cr´eation de processus
Les processus sont cr´e´es par l’OS(qui est lui-mˆeme un processus)
L’OS munit le processus des informations n´ecessaires pour son ex´ecution → il construit un PCB
Les informations pour la m´emoire (pointeur de pile, table des pages, etc.)
Les informations de contrˆole (priorit´e, propri´et´e, droits, etc.) Les donn´ees des registres (interruption et reprise)
L’OS modifie le code (assembleur) stock´e en m´emoire
Edition de liens, stub. . .´
L’OS fournit des donn´ees au processus (l’environnement) L’OS alloue des ressources sur demande du processus en ex´ecution
Pour cela, il lance une routine... donc il interrompt le processus !
Questions de cours Ordonnancement Processus Synchronisation Conclusion
A propos du cycle de vie. . .`
Cr´eation de processus
Les processus sont cr´e´es par l’OS(qui est lui-mˆeme un processus)
L’OS munit le processus des informations n´ecessaires pour son ex´ecution → il construit un PCB
Les informations pour la m´emoire (pointeur de pile, table des pages, etc.)
Les informations de contrˆole (priorit´e, propri´et´e, droits, etc.) Les donn´ees des registres (interruption et reprise)
L’OS modifie le code (assembleur) stock´e en m´emoire
Edition de liens, stub. . .´
L’OS fournit des donn´ees au processus (l’environnement) L’OS alloue des ressources sur demande du processus en ex´ecution
Pour cela, il lance une routine... donc il interrompt le processus !
Info32b Syst`emes d’Exploitation Nicolas Sabouret 5/28
Questions de cours Ordonnancement Processus Synchronisation Conclusion
A propos du cycle de vie. . .`
Cr´eation de processus
Les processus sont cr´e´es par l’OS(qui est lui-mˆeme un processus)
L’OS munit le processus des informations n´ecessaires pour son ex´ecution → il construit un PCB
Les informations pour la m´emoire (pointeur de pile, table des pages, etc.)
Les informations de contrˆole (priorit´e, propri´et´e, droits, etc.) Les donn´ees des registres (interruption et reprise)
L’OS modifie le code (assembleur) stock´e en m´emoire
´Edition de liens, stub. . .
L’OS fournit des donn´ees au processus (l’environnement) L’OS alloue des ressources sur demande du processus en ex´ecution
Pour cela, il lance une routine... donc il interrompt le processus !
Questions de cours Ordonnancement Processus Synchronisation Conclusion
A propos du cycle de vie. . .`
Cr´eation de processus
Les processus sont cr´e´es par l’OS(qui est lui-mˆeme un processus)
L’OS munit le processus des informations n´ecessaires pour son ex´ecution → il construit un PCB
Les informations pour la m´emoire (pointeur de pile, table des pages, etc.)
Les informations de contrˆole (priorit´e, propri´et´e, droits, etc.) Les donn´ees des registres (interruption et reprise)
L’OS modifie le code (assembleur) stock´e en m´emoire
´Edition de liens, stub. . .
L’OS fournit des donn´ees au processus (l’environnement) L’OS alloue des ressources sur demande du processus en ex´ecution
Pour cela, il lance une routine... donc il interrompt le processus !
Info32b Syst`emes d’Exploitation Nicolas Sabouret 5/28
Questions de cours Ordonnancement Processus Synchronisation Conclusion
Ordonnancement
Quel est le meilleur algorithme d’ordonnancement ?
Aucun !
Cela d´epend descrit`eres choisis (temps d’attente moyen, rotation, etc.) et del’instance! En pratique, RR et SRT sont les plus utilis´es, g´en´eralement combin´es entre et avec des priorit´es. SRT garantit le meilleur temps d’attente moyen mais il peut provoquer des famines.
CPU HD1
0 1 2 3 4 5 6
P1 P2,P3
Proc.1
Proc.1
Proc.2 Proc.1
Proc.2 Proc.3
Questions de cours Ordonnancement Processus Synchronisation Conclusion
Ordonnancement
Quel est le meilleur algorithme d’ordonnancement ? Aucun !
Cela d´epend descrit`eres choisis (temps d’attente moyen, rotation, etc.) et del’instance! En pratique, RR et SRT sont les plus utilis´es, g´en´eralement combin´es entre et avec des priorit´es. SRT garantit le meilleur temps d’attente moyen mais il peut provoquer des famines.
CPU HD1
0 1 2 3 4 5 6
P1 P2,P3
Proc.1
Proc.1
Proc.2 Proc.1
Proc.2 Proc.3
Info32b Syst`emes d’Exploitation Nicolas Sabouret 6/28
Questions de cours Ordonnancement Processus Synchronisation Conclusion
M´emoire pagin´ee/segment´ee/virtuelle
L’adresse logique peut-elle contenir plus de bits que l’adresse physique ?
Oui !
C’est le principe de lam´emoire virtuelle o`u chaque processus se voit allou´e plus de m´emoire qu’il ne peut effectivement utiliser.
Espace de stockage (disque)
pagepage pagepage pagepage pagepage pagepage pagepage pagepage pagepage
M´emoire physique (RAM) M´emoire
virtuelle
= espace adressable
(par processus) page 0 page 1
page 4
pages utilis´ees
page 0 page 1
page 4
pages non utilis´ees
page 2 page 3
page 5 . . .
Questions de cours Ordonnancement Processus Synchronisation Conclusion
M´emoire pagin´ee/segment´ee/virtuelle
L’adresse logique peut-elle contenir plus de bits que l’adresse physique ?
Oui !
C’est le principe de lam´emoire virtuelle o`u chaque processus se voit allou´e plus de m´emoire qu’il ne peut effectivement utiliser.
Espace de stockage (disque)
pagepage pagepage pagepage pagepage pagepage pagepage pagepage pagepage
M´emoire physique (RAM) M´emoire
virtuelle
= espace adressable
(par processus) page 0 page 1
page 4
pages utilis´ees
page 0 page 1
page 4
pages non utilis´ees
page 2 page 3
page 5 . . .
Info32b Syst`emes d’Exploitation Nicolas Sabouret 7/28
Questions de cours Ordonnancement Processus Synchronisation Conclusion
Synchronisation
Quelle est la diff´erence entre un MUTEX et un s´emaphore ?
Le s´emaphore s’applique `a N processus(N quelconque et variable), le MUTEX est limit´e `a 2 (ou `a N fix´e `a l’avance) Les s´emaphores mal combin´es peuvent provoquer des interblocages, pas les MUTEX.
L’impl´ementation des s´emaphores contient des sections critiques, donc il faut utiliser des MUTEX.
P1
P2
Section Critique
Section Critique
Mutex
Questions de cours Ordonnancement Processus Synchronisation Conclusion
Synchronisation
Quelle est la diff´erence entre un MUTEX et un s´emaphore ? Le s´emaphore s’applique `a N processus(N quelconque et variable), le MUTEX est limit´e `a 2 (ou `a N fix´e `a l’avance) Les s´emaphores mal combin´es peuvent provoquer des interblocages, pas les MUTEX.
L’impl´ementation des s´emaphores contient des sections critiques, donc il faut utiliser des MUTEX.
P1
P2
Section Critique
Section Critique
Mutex
Info32b Syst`emes d’Exploitation Nicolas Sabouret 8/28
Questions de cours Ordonnancement Processus Synchronisation Conclusion
Plan
1 Questions de cours
2 Ordonnancement
3 Processus
4 Synchronisation
5 Conclusion
Questions de cours Ordonnancement Processus Synchronisation Conclusion
Ordonnancement
On consid`ere cinq processus. Nous indiquons la date d’arriv´ee dans l’ordonnanceur et la dur´ee estim´ee :
Proc. Arriv´ee Dur´ee
P1 0 7
P2 1 4
P3 1 2
P4 2 2
P5 3 1
Info32b Syst`emes d’Exploitation Nicolas Sabouret 10/28
Questions de cours Ordonnancement Processus Synchronisation Conclusion
Ordonnancement
On consid`ere cinq processus. Nous indiquons la date d’arriv´ee dans l’ordonnanceur et la dur´ee estim´ee :
Proc. Arriv´ee Dur´ee
P1 0 7
P2 1 4
P3 1 2
P4 2 2
P5 3 1
FIFO
Indiquez dans un diagramme de Gantt le r´esultat d’un
ordonnancement de typeFIFO et le temps d’attente moyena.
a. En supposant que le temps de commutation est n´egligeable
Questions de cours Ordonnancement Processus Synchronisation Conclusion
Ordonnancement
FIFO
Indiquez dans un diagramme de Gantt le r´esultat d’un ordonnancement de typeFIFO et le temps d’attente moyen.
Proc. Arriv´ee Dur´ee
P1 0 7
P2 1 4
P3 1 2
P4 2 2
P5 3 1
Date UC
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
P1 P2 P3 P4 P5
Temps d’attente moyen :
0 + (7−1) + (11−1) + (13−2) + (15−3)
5 = 39
5 = 7.8
Info32b Syst`emes d’Exploitation Nicolas Sabouret 10/28
Questions de cours Ordonnancement Processus Synchronisation Conclusion
Ordonnancement
FIFO
Indiquez dans un diagramme de Gantt le r´esultat d’un ordonnancement de typeFIFO et le temps d’attente moyen.
Proc. Arriv´ee Dur´ee
P1 0 7
P2 1 4
P3 1 2
P4 2 2
P5 3 1
Date UC
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
P1
P2 P3 P4 P5
Temps d’attente moyen :
0 + (7−1) + (11−1) + (13−2) + (15−3)
5 = 39
5 = 7.8
Questions de cours Ordonnancement Processus Synchronisation Conclusion
Ordonnancement
FIFO
Indiquez dans un diagramme de Gantt le r´esultat d’un ordonnancement de typeFIFO et le temps d’attente moyen.
Proc. Arriv´ee Dur´ee
P1 0 7
P2 1 4
P3 1 2
P4 2 2
P5 3 1
Date UC
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
P1 P2
P3 P4 P5
Temps d’attente moyen :
0 + (7−1) + (11−1) + (13−2) + (15−3)
5 = 39
5 = 7.8
Info32b Syst`emes d’Exploitation Nicolas Sabouret 10/28
Questions de cours Ordonnancement Processus Synchronisation Conclusion
Ordonnancement
FIFO
Indiquez dans un diagramme de Gantt le r´esultat d’un ordonnancement de typeFIFO et le temps d’attente moyen.
Proc. Arriv´ee Dur´ee
P1 0 7
P2 1 4
P3 1 2
P4 2 2
P5 3 1
Date UC
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
P1 P2 P3
P4 P5
Temps d’attente moyen :
0 + (7−1) + (11−1) + (13−2) + (15−3)
5 = 39
5 = 7.8
Questions de cours Ordonnancement Processus Synchronisation Conclusion
Ordonnancement
FIFO
Indiquez dans un diagramme de Gantt le r´esultat d’un ordonnancement de typeFIFO et le temps d’attente moyen.
Proc. Arriv´ee Dur´ee
P1 0 7
P2 1 4
P3 1 2
P4 2 2
P5 3 1
Date UC
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
P1 P2 P3 P4
P5
Temps d’attente moyen :
0 + (7−1) + (11−1) + (13−2) + (15−3)
5 = 39
5 = 7.8
Info32b Syst`emes d’Exploitation Nicolas Sabouret 10/28
Questions de cours Ordonnancement Processus Synchronisation Conclusion
Ordonnancement
FIFO
Indiquez dans un diagramme de Gantt le r´esultat d’un ordonnancement de typeFIFO et le temps d’attente moyen.
Proc. Arriv´ee Dur´ee
P1 0 7
P2 1 4
P3 1 2
P4 2 2
P5 3 1
Date UC
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
P1 P2 P3 P4 P5
Temps d’attente moyen :
0 + (7−1) + (11−1) + (13−2) + (15−3)
5 = 39
5 = 7.8
Questions de cours Ordonnancement Processus Synchronisation Conclusion
Ordonnancement
FIFO
Indiquez dans un diagramme de Gantt le r´esultat d’un ordonnancement de typeFIFO et le temps d’attente moyen.
Proc. Arriv´ee Dur´ee
P1 0 7
P2 1 4
P3 1 2
P4 2 2
P5 3 1
Date UC
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
P1 P2 P3 P4 P5
Temps d’attente moyen :
0 + (7−1) + (11−1) + (13−2) + (15−3)
5 = 39
5 = 7.8
Info32b Syst`emes d’Exploitation Nicolas Sabouret 10/28
Questions de cours Ordonnancement Processus Synchronisation Conclusion
Ordonnancement
Plus court d’abord
Indiquez le r´esultat d’un ordonnancement de typeplus court d’abordet le temps d’attente moyen.
Proc. Arriv´ee Dur´ee
P1 0 7
P2 1 4
P3 1 2
P4 2 2
P5 3 1
Date UC
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
P1 P3 P5 P4 P2 P1
Temps d’attente moyen :
9 + 5 + 0 + 2 + 0
5 = 16
5 = 3.2
Questions de cours Ordonnancement Processus Synchronisation Conclusion
Ordonnancement
Plus court d’abord
Indiquez le r´esultat d’un ordonnancement de typeplus court d’abordet le temps d’attente moyen.
Proc. Arriv´ee Dur´ee
P1 0 7
P2 1 4
P3 1 2
P4 2 2
P5 3 1
Date UC
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
P1
P3 P5 P4 P2 P1
Temps d’attente moyen :
9 + 5 + 0 + 2 + 0
5 = 16
5 = 3.2
Info32b Syst`emes d’Exploitation Nicolas Sabouret 11/28
Questions de cours Ordonnancement Processus Synchronisation Conclusion
Ordonnancement
Plus court d’abord
Indiquez le r´esultat d’un ordonnancement de typeplus court d’abordet le temps d’attente moyen.
Proc. Arriv´ee Dur´ee
P1 0 7
P2 1 4
P3 1 2
P4 2 2
P5 3 1
Date UC
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
P1 P3
P5 P4 P2 P1
Temps d’attente moyen :
9 + 5 + 0 + 2 + 0
5 = 16
5 = 3.2
Questions de cours Ordonnancement Processus Synchronisation Conclusion
Ordonnancement
Plus court d’abord
Indiquez le r´esultat d’un ordonnancement de typeplus court d’abordet le temps d’attente moyen.
Proc. Arriv´ee Dur´ee
P1 0 7
P2 1 4
P3 1 2
P4 2 2
P5 3 1
Date UC
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
P1 P3 P5
P4 P2 P1
Temps d’attente moyen :
9 + 5 + 0 + 2 + 0
5 = 16
5 = 3.2
Info32b Syst`emes d’Exploitation Nicolas Sabouret 11/28
Questions de cours Ordonnancement Processus Synchronisation Conclusion
Ordonnancement
Plus court d’abord
Indiquez le r´esultat d’un ordonnancement de typeplus court d’abordet le temps d’attente moyen.
Proc. Arriv´ee Dur´ee
P1 0 7
P2 1 4
P3 1 2
P4 2 2
P5 3 1
Date UC
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
P1 P3 P5 P4
P2 P1
Temps d’attente moyen :
9 + 5 + 0 + 2 + 0
5 = 16
5 = 3.2
Questions de cours Ordonnancement Processus Synchronisation Conclusion
Ordonnancement
Plus court d’abord
Indiquez le r´esultat d’un ordonnancement de typeplus court d’abordet le temps d’attente moyen.
Proc. Arriv´ee Dur´ee
P1 0 7
P2 1 4
P3 1 2
P4 2 2
P5 3 1
Date UC
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
P1 P3 P5 P4 P2
P1
Temps d’attente moyen :
9 + 5 + 0 + 2 + 0
5 = 16
5 = 3.2
Info32b Syst`emes d’Exploitation Nicolas Sabouret 11/28
Questions de cours Ordonnancement Processus Synchronisation Conclusion
Ordonnancement
Plus court d’abord
Indiquez le r´esultat d’un ordonnancement de typeplus court d’abordet le temps d’attente moyen.
Proc. Arriv´ee Dur´ee
P1 0 7
P2 1 4
P3 1 2
P4 2 2
P5 3 1
Date UC
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
P1 P3 P5 P4 P2 P1
Temps d’attente moyen :
9 + 5 + 0 + 2 + 0
5 = 16
5 = 3.2
Questions de cours Ordonnancement Processus Synchronisation Conclusion
Ordonnancement
Plus court d’abord
Indiquez le r´esultat d’un ordonnancement de typeplus court d’abordet le temps d’attente moyen.
Proc. Arriv´ee Dur´ee
P1 0 7
P2 1 4
P3 1 2
P4 2 2
P5 3 1
Date UC
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
P1 P3 P5 P4 P2 P1
Temps d’attente moyen :
9 + 5 + 0 + 2 + 0
5 = 16
5 = 3.2
Info32b Syst`emes d’Exploitation Nicolas Sabouret 11/28
Questions de cours Ordonnancement Processus Synchronisation Conclusion
Ordonnancement
Round Robin
Indiquez le r´esultat d’un ordonnancement de typeRound Robin avec un quantum de 3 et le temps d’attente moyen.
Proc. Arriv´ee Dur´ee
P1 0 7
P2 1 4
P3 1 2
P4 2 2
P5 3 1
Date UC
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
P1 P2 P3 P4 P5 P1 P2 P1
Temps d’attente moyen :
(0 + 8 + 1) + (2 + 8) + 5 + 6 + 7)
5 = 37
5 = 7.4
Questions de cours Ordonnancement Processus Synchronisation Conclusion
Ordonnancement
Round Robin
Indiquez le r´esultat d’un ordonnancement de typeRound Robin avec un quantum de 3 et le temps d’attente moyen.
Proc. Arriv´ee Dur´ee
P1 0 7
P2 1 4
P3 1 2
P4 2 2
P5 3 1
Date UC
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
P1
P2 P3 P4 P5 P1 P2 P1
Temps d’attente moyen :
(0 + 8 + 1) + (2 + 8) + 5 + 6 + 7)
5 = 37
5 = 7.4
Info32b Syst`emes d’Exploitation Nicolas Sabouret 12/28
Questions de cours Ordonnancement Processus Synchronisation Conclusion
Ordonnancement
Round Robin
Indiquez le r´esultat d’un ordonnancement de typeRound Robin avec un quantum de 3 et le temps d’attente moyen.
Proc. Arriv´ee Dur´ee
P1 0 7
P2 1 4
P3 1 2
P4 2 2
P5 3 1
Date UC
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
P1 P2
P3 P4 P5 P1 P2 P1
Temps d’attente moyen :
(0 + 8 + 1) + (2 + 8) + 5 + 6 + 7)
5 = 37
5 = 7.4
Questions de cours Ordonnancement Processus Synchronisation Conclusion
Ordonnancement
Round Robin
Indiquez le r´esultat d’un ordonnancement de typeRound Robin avec un quantum de 3 et le temps d’attente moyen.
Proc. Arriv´ee Dur´ee
P1 0 7
P2 1 4
P3 1 2
P4 2 2
P5 3 1
Date UC
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
P1 P2 P3
P4 P5 P1 P2 P1
Temps d’attente moyen :
(0 + 8 + 1) + (2 + 8) + 5 + 6 + 7)
5 = 37
5 = 7.4
Info32b Syst`emes d’Exploitation Nicolas Sabouret 12/28
Questions de cours Ordonnancement Processus Synchronisation Conclusion
Ordonnancement
Round Robin
Indiquez le r´esultat d’un ordonnancement de typeRound Robin avec un quantum de 3 et le temps d’attente moyen.
Proc. Arriv´ee Dur´ee
P1 0 7
P2 1 4
P3 1 2
P4 2 2
P5 3 1
Date UC
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
P1 P2 P3 P4
P5 P1 P2 P1
Temps d’attente moyen :
(0 + 8 + 1) + (2 + 8) + 5 + 6 + 7)
5 = 37
5 = 7.4
Questions de cours Ordonnancement Processus Synchronisation Conclusion
Ordonnancement
Round Robin
Indiquez le r´esultat d’un ordonnancement de typeRound Robin avec un quantum de 3 et le temps d’attente moyen.
Proc. Arriv´ee Dur´ee
P1 0 7
P2 1 4
P3 1 2
P4 2 2
P5 3 1
Date UC
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
P1 P2 P3 P4 P5
P1 P2 P1
Temps d’attente moyen :
(0 + 8 + 1) + (2 + 8) + 5 + 6 + 7)
5 = 37
5 = 7.4
Info32b Syst`emes d’Exploitation Nicolas Sabouret 12/28
Questions de cours Ordonnancement Processus Synchronisation Conclusion
Ordonnancement
Round Robin
Indiquez le r´esultat d’un ordonnancement de typeRound Robin avec un quantum de 3 et le temps d’attente moyen.
Proc. Arriv´ee Dur´ee
P1 0 7
P2 1 4
P3 1 2
P4 2 2
P5 3 1
Date UC
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
P1 P2 P3 P4 P5 P1
P2 P1
Temps d’attente moyen :
(0 + 8 + 1) + (2 + 8) + 5 + 6 + 7)
5 = 37
5 = 7.4
Questions de cours Ordonnancement Processus Synchronisation Conclusion
Ordonnancement
Round Robin
Indiquez le r´esultat d’un ordonnancement de typeRound Robin avec un quantum de 3 et le temps d’attente moyen.
Proc. Arriv´ee Dur´ee
P1 0 7
P2 1 4
P3 1 2
P4 2 2
P5 3 1
Date UC
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
P1 P2 P3 P4 P5 P1 P2
P1
Temps d’attente moyen :
(0 + 8 + 1) + (2 + 8) + 5 + 6 + 7)
5 = 37
5 = 7.4
Info32b Syst`emes d’Exploitation Nicolas Sabouret 12/28
Questions de cours Ordonnancement Processus Synchronisation Conclusion
Ordonnancement
Round Robin
Indiquez le r´esultat d’un ordonnancement de typeRound Robin avec un quantum de 3 et le temps d’attente moyen.
Proc. Arriv´ee Dur´ee
P1 0 7
P2 1 4
P3 1 2
P4 2 2
P5 3 1
Date UC
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
P1 P2 P3 P4 P5 P1 P2 P1
Temps d’attente moyen :
(0 + 8 + 1) + (2 + 8) + 5 + 6 + 7)
5 = 37
5 = 7.4
Questions de cours Ordonnancement Processus Synchronisation Conclusion
Ordonnancement
Round Robin
Indiquez le r´esultat d’un ordonnancement de typeRound Robin avec un quantum de 3 et le temps d’attente moyen.
Proc. Arriv´ee Dur´ee
P1 0 7
P2 1 4
P3 1 2
P4 2 2
P5 3 1
Date UC
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
P1 P2 P3 P4 P5 P1 P2 P1
Temps d’attente moyen :
(0 + 8 + 1) + (2 + 8) + 5 + 6 + 7)
5 = 37
5 = 7.4
Info32b Syst`emes d’Exploitation Nicolas Sabouret 12/28
Questions de cours Ordonnancement Processus Synchronisation Conclusion
Ordonnancement
Comparaison
Quel est le meilleur algorithme suivant le crit`ere du temps d’attente moyen ? Et suivant le crit`ere du temps d’attente min-max ?
Temps d’attente par processus et par algorithme :
Algo P1 P2 P3 P4 P5 Moyenne Max
FIFO 0 6 10 11 12 7.8 12 (P5)
SRT 9 5 0 2 0 3.2 9 (P1)
RR3 9 10 5 6 7 7.4 10 (P2)
Ü Sur les deux crit`eres, c’estSRTqui l’emporte !
Questions de cours Ordonnancement Processus Synchronisation Conclusion
Ordonnancement
Comparaison
Quel est le meilleur algorithme suivant le crit`ere du temps d’attente moyen ? Et suivant le crit`ere du temps d’attente min-max ?
Temps d’attente par processus et par algorithme :
Algo P1 P2 P3 P4 P5 Moyenne Max
FIFO 0 6 10 11 12 7.8 12 (P5)
SRT 9 5 0 2 0 3.2 9 (P1)
RR3 9 10 5 6 7 7.4 10 (P2)
Ü Sur les deux crit`eres, c’estSRTqui l’emporte !
Info32b Syst`emes d’Exploitation Nicolas Sabouret 13/28
Questions de cours Ordonnancement Processus Synchronisation Conclusion
Ordonnancement
Commutation
Si le temps de commutation est de 0,5 unit´es de temps, quel est le temps total d’ex´ecution des algorithmes ?
Il faut ajouter 0,5×nombre de commutations.
Pour FIFO, 4 commutations → 18 au lieu de 16 Pour SRT, 5 commutations→ 18,5 au lieu de 16 Pour RR3, 7 commutations → 19,5au lieu de 16
Le d´ebit et la rotation moyenne ne sont donc pas la mˆeme pour ces 3 algorithmes !
Questions de cours Ordonnancement Processus Synchronisation Conclusion
Ordonnancement
Commutation
Si le temps de commutation est de 0,5 unit´es de temps, quel est le temps total d’ex´ecution des algorithmes ?
Il faut ajouter 0,5×nombre de commutations.
Pour FIFO, 4 commutations → 18 au lieu de 16 Pour SRT, 5 commutations→ 18,5 au lieu de 16 Pour RR3, 7 commutations → 19,5au lieu de 16
Le d´ebit et la rotation moyenne ne sont donc pas la mˆeme pour ces 3 algorithmes !
Info32b Syst`emes d’Exploitation Nicolas Sabouret 14/28
Questions de cours Ordonnancement Processus Synchronisation Conclusion
Ordonnancement
Avec des E/S
On se place dans le contexte d’une ex´ecution plus longue :
Proc. Arriv´ee Dur´ee 1 E/S 1 Dur´ee 2 E/S 2 Dur´ee 3
P1 0 7 3 8 fin
P2 1 4 fin
P3 1 2 5 3 4 5
P4 2 2 fin
P5 3 1 4 4 fin
Quel algorithme choisir, parmi tous ceux vus en cours ?
A discuter. . .`
Dilemme famine (SRT) vs r´eactivit´e (RR) vs performance Algorithmes avecpriorit´e Linux/Windows
Temps total de chaque processus ?
Questions de cours Ordonnancement Processus Synchronisation Conclusion
Ordonnancement
Avec des E/S
On se place dans le contexte d’une ex´ecution plus longue :
Proc. Arriv´ee Dur´ee 1 E/S 1 Dur´ee 2 E/S 2 Dur´ee 3
P1 0 7 3 8 fin
P2 1 4 fin
P3 1 2 5 3 4 5
P4 2 2 fin
P5 3 1 4 4 fin
Quel algorithme choisir, parmi tous ceux vus en cours ? A discuter. . .`
Dilemme famine (SRT) vs r´eactivit´e (RR) vs performance Algorithmes avecpriorit´e Linux/Windows
Temps total de chaque processus ?
Info32b Syst`emes d’Exploitation Nicolas Sabouret 15/28
Questions de cours Ordonnancement Processus Synchronisation Conclusion
Plan
1 Questions de cours
2 Ordonnancement
3 Processus
4 Synchronisation
5 Conclusion
Questions de cours Ordonnancement Processus Synchronisation Conclusion
Code C
# i n c l u d e ...
# d e f i n e N 100 int k = 1;
int m a i n () { int t [ N ];
int i ;
for ( i =0; i < N ; i ++) t [ i ] = r a n d ()% N ; p i d _ t f i l s = f o r k ();
if ( f i l s = = 0 ) { k =0;
for ( i =0; i < N ; i ++) if ( t [0] < t [ i ]) t [ 0 ] = t [ i ];
} e l s e {
for ( i =1; i < N ; i ++) t [ 0 ] + = t [ i ];
w a i t p i d ( fils , NULL , 0 ) ; }
p r i n t f ( " p r o c e s s u s % d : % d \ n " ,k , t [ 0 ] ) ; r e t u r n 0;
}
Processus 1
Que fait le processus 1 ?
Attention : c’est celui pour lequel fils6=0!
Ü Initialise al´eatoirement le tableau
Ü Calcule la sommedes
´
el´ements danst[0] Ü Affiche le r´esultat
Info32b Syst`emes d’Exploitation Nicolas Sabouret 17/28
Questions de cours Ordonnancement Processus Synchronisation Conclusion
Code C
# i n c l u d e ...
# d e f i n e N 100 int k = 1;
int m a i n () { int t [ N ];
int i ;
for ( i =0; i < N ; i ++) t [ i ] = r a n d ()% N ; p i d _ t f i l s = f o r k ();
if ( f i l s = = 0 ) { k =0;
for ( i =0; i < N ; i ++) if ( t [0] < t [ i ]) t [ 0 ] = t [ i ];
} e l s e {
for ( i =1; i < N ; i ++) t [ 0 ] + = t [ i ];
w a i t p i d ( fils , NULL , 0 ) ; }
p r i n t f ( " p r o c e s s u s % d : % d \ n " ,k , t [ 0 ] ) ; r e t u r n 0;
}
Processus 1
Que fait le processus 1 ?
Attention : c’est celui pour lequel fils6=0!
Ü Initialise al´eatoirement le tableau
Ü Calcule la sommedes
´
el´ements danst[0] Ü Affiche le r´esultat
Questions de cours Ordonnancement Processus Synchronisation Conclusion
Code C
# i n c l u d e ...
# d e f i n e N 100 int k = 1;
int m a i n () { int t [ N ];
int i ;
for ( i =0; i < N ; i ++) t [ i ] = r a n d ()% N ; p i d _ t f i l s = f o r k ();
if ( f i l s = = 0 ) { k =0;
for ( i =0; i < N ; i ++) if ( t [0] < t [ i ]) t [ 0 ] = t [ i ];
} e l s e {
for ( i =1; i < N ; i ++) t [ 0 ] + = t [ i ];
w a i t p i d ( fils , NULL , 0 ) ; }
p r i n t f ( " p r o c e s s u s % d : % d \ n " ,k , t [ 0 ] ) ; r e t u r n 0;
}
Processus 1
Que fait le processus 1 ?
Attention : c’est celui pour lequel fils6=0!
Ü Initialise al´eatoirement le tableau
Ü Calcule la sommedes
´
el´ements danst[0]
Ü Affiche le r´esultat
Info32b Syst`emes d’Exploitation Nicolas Sabouret 17/28
Questions de cours Ordonnancement Processus Synchronisation Conclusion
Code C
# i n c l u d e ...
# d e f i n e N 100 int k = 1;
int m a i n () { int t [ N ];
int i ;
for ( i =0; i < N ; i ++) t [ i ] = r a n d ()% N ; p i d _ t f i l s = f o r k ();
if ( f i l s = = 0 ) { k =0;
for ( i =0; i < N ; i ++) if ( t [0] < t [ i ]) t [ 0 ] = t [ i ];
} e l s e {
for ( i =1; i < N ; i ++) t [ 0 ] + = t [ i ];
w a i t p i d ( fils , NULL , 0 ) ; }
p r i n t f ( " p r o c e s s u s % d : % d \ n " ,k , t [ 0 ] ) ; r e t u r n 0;
}
Processus 0
Que fait le processus 0 ?
Attention : c’est lefils!
Ü Le tableau a ´et´e initialis´e par le p`ere
Ü Calcule le maximumdes
´
el´ements danst[0] Ü Affiche le r´esultat
Questions de cours Ordonnancement Processus Synchronisation Conclusion
Code C
# i n c l u d e ...
# d e f i n e N 100 int k = 1;
int m a i n () { int t [ N ];
int i ;
for ( i =0; i < N ; i ++) t [ i ] = r a n d ()% N ; p i d _ t f i l s = f o r k ();
if ( f i l s = = 0 ) { k =0;
for ( i =0; i < N ; i ++) if ( t [0] < t [ i ]) t [ 0 ] = t [ i ];
} e l s e {
for ( i =1; i < N ; i ++) t [ 0 ] + = t [ i ];
w a i t p i d ( fils , NULL , 0 ) ; }
p r i n t f ( " p r o c e s s u s % d : % d \ n " ,k , t [ 0 ] ) ; r e t u r n 0;
}
Processus 0
Que fait le processus 0 ? Attention : c’est lefils!
Ü Le tableau a ´et´e initialis´e par le p`ere
Ü Calcule le maximumdes
´
el´ements danst[0]
Ü Affiche le r´esultat
Info32b Syst`emes d’Exploitation Nicolas Sabouret 18/28
Questions de cours Ordonnancement Processus Synchronisation Conclusion
Concurrence
Erreur
Y a-t-il un risque pour que les deux processus ne fournissent pas le r´esultat souhait´e ?
Ce qui est `a craindre, c’est que chacun bousille le tableau de l’autre. . .
Ü Non, car les deuxprocessus ont des espaces de donn´ees diff´erents (pas de variable partag´ee, y compris le tableau).
Questions de cours Ordonnancement Processus Synchronisation Conclusion
Concurrence
Erreur
Y a-t-il un risque pour que les deux processus ne fournissent pas le r´esultat souhait´e ?
Ce qui est `a craindre, c’est que chacun bousille le tableau de l’autre. . .
Ü Non, car les deuxprocessus ont des espaces de donn´ees diff´erents (pas de variable partag´ee, y compris le tableau).
Info32b Syst`emes d’Exploitation Nicolas Sabouret 19/28
Questions de cours Ordonnancement Processus Synchronisation Conclusion
Concurrence
Erreur
Y a-t-il un risque pour que les deux processus ne fournissent pas le r´esultat souhait´e ?
Ce qui est `a craindre, c’est que chacun bousille le tableau de l’autre. . .
Ü Non, car les deux processus ont des espaces de donn´ees diff´erents (pas de variable partag´ee, y compris le tableau).
Questions de cours Ordonnancement Processus Synchronisation Conclusion
Concurrence
Communication
Comment faire pour que les processus puissent utiliser le r´esultat de l’autre processus ?
Ce qui ne marche pas, c’est d’utiliser le code retour du fils : ¸ca ne passe que dans un sens !
Ü Passer par desthreads et utiliser desvariables partag´ees (variables globales dans le tas) pour les r´esultats ;
Ü Cr´eer deux variables partag´ees entre les processus `a l’aide de shmget
Ü Utiliser une communication par TCP/IPentre les deux processus (on s’´eloigne du cours. . . )
...
Info32b Syst`emes d’Exploitation Nicolas Sabouret 20/28
Questions de cours Ordonnancement Processus Synchronisation Conclusion
Concurrence
Communication
Comment faire pour que les processus puissent utiliser le r´esultat de l’autre processus ?
Ce qui ne marche pas, c’est d’utiliser le code retour du fils : ¸ca ne passe que dans un sens !
Ü Passer par desthreads et utiliser desvariables partag´ees (variables globales dans le tas) pour les r´esultats ;
Ü Cr´eer deux variables partag´ees entre les processus `a l’aide de shmget
Ü Utiliser une communication par TCP/IPentre les deux processus (on s’´eloigne du cours. . . )
...
Questions de cours Ordonnancement Processus Synchronisation Conclusion
Concurrence
Communication
Comment faire pour que les processus puissent utiliser le r´esultat de l’autre processus ?
Ce qui ne marche pas, c’est d’utiliser le code retour du fils : ¸ca ne passe que dans un sens !
Ü Passer par desthreads et utiliser desvariables partag´ees (variables globales dans le tas) pour les r´esultats ;
Ü Cr´eer deux variables partag´ees entre les processus `a l’aide de shmget
Ü Utiliser une communication par TCP/IPentre les deux processus (on s’´eloigne du cours. . . )
...
Info32b Syst`emes d’Exploitation Nicolas Sabouret 20/28
Questions de cours Ordonnancement Processus Synchronisation Conclusion
Plan
1 Questions de cours
2 Ordonnancement
3 Processus
4 Synchronisation
5 Conclusion
Questions de cours Ordonnancement Processus Synchronisation Conclusion
Donn´ees du probl`eme
Une route reliant Paris et l’Universit´e Paris-Sud. La particularit´e de cette route est d’ˆetre `a circulation altern´ee : des voitures peuvent y circuler ensemble dans le sens Orsay→ Paris ou dans le sens Paris
→Orsay, mais elles ne doivent jamais pouvoir se croiser.
Nous avons donc deux classe d’utilisateurs :VP→O (voitures de Paris vers Orsay) etVO→P.
Info32b Syst`emes d’Exploitation Nicolas Sabouret 22/28
Questions de cours Ordonnancement Processus Synchronisation Conclusion
Analyse du probl`eme
Section critique
Rappeler la d´efinition d’une section critique ainsi que les trois crit`eres qui y sont associ´es.
Ü Une section critique est une portion de code qu’on ne peut pas interrompre car elle contient desvariables partag´ees. Ü On souhaite garantir l’exclusion mutuelle, led´eroulement et
l’attente born´ee (ou vivacit´e). Probl`eme similaire
Expliquez l’analogie avec le probl`eme des lecteurs-´ecrivains (TD4). Ü C’est un probl`eme de lecteurs-´ecrivains, sauf qu’il peut y avoir
plusieurs ´ecrivains en mˆeme temps.
Questions de cours Ordonnancement Processus Synchronisation Conclusion
Analyse du probl`eme
Section critique
Rappeler la d´efinition d’une section critique ainsi que les trois crit`eres qui y sont associ´es.
Ü Une section critique est une portion de code qu’on ne peut pas interrompre car elle contient desvariables partag´ees.
Ü On souhaite garantir l’exclusion mutuelle, led´eroulement et l’attente born´ee (ou vivacit´e).
Probl`eme similaire
Expliquez l’analogie avec le probl`eme des lecteurs-´ecrivains (TD4). Ü C’est un probl`eme de lecteurs-´ecrivains, sauf qu’il peut y avoir
plusieurs ´ecrivains en mˆeme temps.
Info32b Syst`emes d’Exploitation Nicolas Sabouret 23/28
Questions de cours Ordonnancement Processus Synchronisation Conclusion
Analyse du probl`eme
Section critique
Rappeler la d´efinition d’une section critique ainsi que les trois crit`eres qui y sont associ´es.
Ü Une section critique est une portion de code qu’on ne peut pas interrompre car elle contient desvariables partag´ees.
Ü On souhaite garantir l’exclusion mutuelle, led´eroulement et l’attente born´ee (ou vivacit´e).
Probl`eme similaire
Expliquez l’analogie avec le probl`eme des lecteurs-´ecrivains (TD4).
Ü C’est un probl`eme de lecteurs-´ecrivains, sauf qu’il peut y avoir plusieurs ´ecrivains en mˆeme temps.
Questions de cours Ordonnancement Processus Synchronisation Conclusion
Analyse du probl`eme
Section critique
Rappeler la d´efinition d’une section critique ainsi que les trois crit`eres qui y sont associ´es.
Ü Une section critique est une portion de code qu’on ne peut pas interrompre car elle contient desvariables partag´ees.
Ü On souhaite garantir l’exclusion mutuelle, led´eroulement et l’attente born´ee (ou vivacit´e).
Probl`eme similaire
Expliquez l’analogie avec le probl`eme des lecteurs-´ecrivains (TD4).
Ü C’est un probl`eme de lecteurs-´ecrivains, sauf qu’il peut y avoir plusieurs ´ecrivains en mˆeme temps.
Info32b Syst`emes d’Exploitation Nicolas Sabouret 23/28