Vous êtes sur la page 1sur 79

Questions de cours Ordonnancement Processus Synchronisation Conclusion

Systèmes d’Exploitation
Cours 7/13 : Partiel 2016-2017

Nicolas Sabouret
Université Paris-Sud

Licence 3 - semestre S5

Info32b Systèmes d’Exploitation Nicolas Sabouret 1/28


Questions de cours Ordonnancement Processus Synchronisation Conclusion

Plan

1 Questions de cours

2 Ordonnancement

3 Processus

4 Synchronisation

Info32b Systèmes d’Exploitation Nicolas Sabouret 2/28


Questions de cours Ordonnancement Processus Synchronisation Conclusion

Plan

1 Questions de cours

2 Ordonnancement

3 Processus

4 Synchronisation

5 Conclusion

Info32b Systèmes d’Exploitation Nicolas Sabouret 3/28


Questions de cours Ordonnancement Processus Synchronisation Conclusion

Cycle de vie

Quelles les principales étapes du cycle de vie d’un processus


pour l’OS ?

Info32b Systèmes d’Exploitation Nicolas Sabouret 4/28


Questions de cours Ordonnancement Processus Synchronisation Conclusion

Cycle de vie

Quelles les principales étapes du cycle de vie d’un processus


pour l’OS ?
Création du processus
Passage dans la file des processus prêts
Exécution du processus
Interruption → retour dans la file  prêts 

Mise en attente du processus (E/S)


Terminaison

Exécution

Prêt En Attente

Info32b Systèmes d’Exploitation Nicolas Sabouret 4/28


Questions de cours Ordonnancement Processus Synchronisation Conclusion

À propos du cycle de vie. . .

Info32b Systèmes d’Exploitation Nicolas Sabouret 5/28


Questions de cours Ordonnancement Processus Synchronisation Conclusion

À propos du cycle de vie. . .


Création de processus
Les processus sont créés par l’OS (qui est lui-même un processus)

Info32b Systèmes d’Exploitation Nicolas Sabouret 5/28


Questions de cours Ordonnancement Processus Synchronisation Conclusion

À propos du cycle de vie. . .


Création de processus
Les processus sont créés par l’OS (qui est lui-même un processus)
L’OS munit le processus des informations nécessaires pour son
exécution → il construit un PCB

Info32b Systèmes d’Exploitation Nicolas Sabouret 5/28


Questions de cours Ordonnancement Processus Synchronisation Conclusion

À propos du cycle de vie. . .


Création de processus
Les processus sont créés par l’OS (qui est lui-même un processus)
L’OS munit le processus des informations nécessaires pour son
exécution → il construit un PCB
Les informations pour la mémoire (pointeur de pile, table des
pages, etc.)
Les informations de contrôle (priorité, propriété, droits, etc.)
Les données des registres (interruption et reprise)

Info32b Systèmes d’Exploitation Nicolas Sabouret 5/28


Questions de cours Ordonnancement Processus Synchronisation Conclusion

À propos du cycle de vie. . .


Création de processus
Les processus sont créés par l’OS (qui est lui-même un processus)
L’OS munit le processus des informations nécessaires pour son
exécution → il construit un PCB
Les informations pour la mémoire (pointeur de pile, table des
pages, etc.)
Les informations de contrôle (priorité, propriété, droits, etc.)
Les données des registres (interruption et reprise)
L’OS modifie le code (assembleur) stocké en mémoire
Édition de liens, stub. . .

Info32b Systèmes d’Exploitation Nicolas Sabouret 5/28


Questions de cours Ordonnancement Processus Synchronisation Conclusion

À propos du cycle de vie. . .


Création de processus
Les processus sont créés par l’OS (qui est lui-même un processus)
L’OS munit le processus des informations nécessaires pour son
exécution → il construit un PCB
Les informations pour la mémoire (pointeur de pile, table des
pages, etc.)
Les informations de contrôle (priorité, propriété, droits, etc.)
Les données des registres (interruption et reprise)
L’OS modifie le code (assembleur) stocké en mémoire
Édition de liens, stub. . .
L’OS fournit des données au processus (l’environnement)
L’OS alloue des ressources sur demande du processus en
exécution
Pour cela, il lance une routine... donc il interrompt le processus !

Info32b Systèmes d’Exploitation Nicolas Sabouret 5/28


Questions de cours Ordonnancement Processus Synchronisation Conclusion

Ordonnancement

Quel est le meilleur algorithme d’ordonnancement ?

Info32b Systèmes d’Exploitation Nicolas Sabouret 6/28


Questions de cours Ordonnancement Processus Synchronisation Conclusion

Ordonnancement

Quel est le meilleur algorithme d’ordonnancement ?


Aucun !
Cela dépend des critères choisis (temps d’attente moyen, rotation,
etc.) et de l’instance ! En pratique, RR et SRT sont les plus utilisés,
généralement combinés entre et avec des priorités. SRT garantit le
meilleur temps d’attente moyen mais il peut provoquer des famines.

P1 0 1 P2, P3 2 3 4 5 6

CPU Proc.1 Proc.2 Proc.1 Proc.3

HD1 Proc.1 Proc.2

Info32b Systèmes d’Exploitation Nicolas Sabouret 6/28


Questions de cours Ordonnancement Processus Synchronisation Conclusion

Mémoire paginée/segmentée/virtuelle

L’adresse logique peut-elle contenir plus de bits que l’adresse


physique ?

Info32b Systèmes d’Exploitation Nicolas Sabouret 7/28


Questions de cours Ordonnancement Processus Synchronisation Conclusion

Mémoire paginée/segmentée/virtuelle

L’adresse logique peut-elle contenir plus de bits que l’adresse


physique ?
Oui !
C’est le principe de la mémoire virtuelle où chaque processus se
voit alloué plus de mémoire qu’il ne peut effectivement utiliser.

page 0 pages pages


page 1 utilisées non
utilisées
page 2 page 1

page 3 page
page page
page

Mémoire page 4 page 0 page


page page
page
virtuelle
= page 5 page 4 page
page page
page
espace ...
adressable page
page page
page
(par processus)

Mémoire Espace de stockage


physique (disque)
(RAM)

Info32b Systèmes d’Exploitation Nicolas Sabouret 7/28


Questions de cours Ordonnancement Processus Synchronisation Conclusion

Synchronisation

Quelle est la différence entre un MUTEX et un sémaphore ?

Info32b Systèmes d’Exploitation Nicolas Sabouret 8/28


Questions de cours Ordonnancement Processus Synchronisation Conclusion

Synchronisation

Quelle est la différence entre un MUTEX et un sémaphore ?


Le sémaphore s’applique à N processus (N quelconque et
variable), le MUTEX est limité à 2 (ou à N fixé à l’avance)
Les sémaphores mal combinés peuvent provoquer des
interblocages, pas les MUTEX.
L’implémentation des sémaphores contient des sections
critiques, donc il faut utiliser des MUTEX.

P1 Section Critique

Mutex

P2 Section Critique

Info32b Systèmes 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

Info32b Systèmes d’Exploitation Nicolas Sabouret 9/28


Questions de cours Ordonnancement Processus Synchronisation Conclusion

Ordonnancement
On considère cinq processus. Nous indiquons la date d’arrivée dans
l’ordonnanceur et la durée estimée :

Proc. Arrivée Durée


P1 0 7
P2 1 4
P3 1 2
P4 2 2
P5 3 1

Info32b Systèmes d’Exploitation Nicolas Sabouret 10/28


Questions de cours Ordonnancement Processus Synchronisation Conclusion

Ordonnancement
On considère cinq processus. Nous indiquons la date d’arrivée dans
l’ordonnanceur et la durée estimée :

Proc. Arrivée Durée


P1 0 7
P2 1 4
P3 1 2
P4 2 2
P5 3 1
FIFO
Indiquez dans un diagramme de Gantt le résultat d’un
ordonnancement de type FIFO et le temps d’attente moyen a .
a. En supposant que le temps de commutation est négligeable

Info32b Systèmes d’Exploitation Nicolas Sabouret 10/28


Questions de cours Ordonnancement Processus Synchronisation Conclusion

Proc. Arrivée Durée


Ordonnancement P1 0 7
P2 1 4
P3 1 2
P4 2 2
FIFO P5 3 1

Indiquez dans un diagramme de Gantt le résultat d’un


ordonnancement de type FIFO et le temps d’attente moyen.

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Date

UC

Info32b Systèmes d’Exploitation Nicolas Sabouret 10/28


Questions de cours Ordonnancement Processus Synchronisation Conclusion

Proc. Arrivée Durée


Ordonnancement P1 0 7
P2 1 4
P3 1 2
P4 2 2
FIFO P5 3 1

Indiquez dans un diagramme de Gantt le résultat d’un


ordonnancement de type FIFO et le temps d’attente moyen.

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Date

UC P1

Info32b Systèmes d’Exploitation Nicolas Sabouret 10/28


Questions de cours Ordonnancement Processus Synchronisation Conclusion

Proc. Arrivée Durée


Ordonnancement P1 0 7
P2 1 4
P3 1 2
P4 2 2
FIFO P5 3 1

Indiquez dans un diagramme de Gantt le résultat d’un


ordonnancement de type FIFO et le temps d’attente moyen.

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Date

UC P1 P2

Info32b Systèmes d’Exploitation Nicolas Sabouret 10/28


Questions de cours Ordonnancement Processus Synchronisation Conclusion

Proc. Arrivée Durée


Ordonnancement P1 0 7
P2 1 4
P3 1 2
P4 2 2
FIFO P5 3 1

Indiquez dans un diagramme de Gantt le résultat d’un


ordonnancement de type FIFO et le temps d’attente moyen.

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Date

UC P1 P2 P3

Info32b Systèmes d’Exploitation Nicolas Sabouret 10/28


Questions de cours Ordonnancement Processus Synchronisation Conclusion

Proc. Arrivée Durée


Ordonnancement P1 0 7
P2 1 4
P3 1 2
P4 2 2
FIFO P5 3 1

Indiquez dans un diagramme de Gantt le résultat d’un


ordonnancement de type FIFO et le temps d’attente moyen.

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Date

UC P1 P2 P3 P4

Info32b Systèmes d’Exploitation Nicolas Sabouret 10/28


Questions de cours Ordonnancement Processus Synchronisation Conclusion

Proc. Arrivée Durée


Ordonnancement P1 0 7
P2 1 4
P3 1 2
P4 2 2
FIFO P5 3 1

Indiquez dans un diagramme de Gantt le résultat d’un


ordonnancement de type FIFO et le temps d’attente moyen.

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Date

UC P1 P2 P3 P4 P5

Info32b Systèmes d’Exploitation Nicolas Sabouret 10/28


Questions de cours Ordonnancement Processus Synchronisation Conclusion

Proc. Arrivée Durée


Ordonnancement P1 0 7
P2 1 4
P3 1 2
P4 2 2
FIFO P5 3 1

Indiquez dans un diagramme de Gantt le résultat d’un


ordonnancement de type FIFO et le temps d’attente moyen.

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Date

UC P1 P2 P3 P4 P5

Temps d’attente moyen :

0 + (7 − 1) + (11 − 1) + (13 − 2) + (15 − 3) 39


= = 7.8
5 5

Info32b Systèmes d’Exploitation Nicolas Sabouret 10/28


Questions de cours Ordonnancement Processus Synchronisation Conclusion

Proc. Arrivée Durée


Ordonnancement P1 0 7
P2 1 4
P3 1 2
P4 2 2
Plus court d’abord P5 3 1

Indiquez le résultat d’un ordonnancement de type plus court


d’abord et le temps d’attente moyen.

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Date

UC

Info32b Systèmes d’Exploitation Nicolas Sabouret 11/28


Questions de cours Ordonnancement Processus Synchronisation Conclusion

Proc. Arrivée Durée


Ordonnancement P1 0 7
P2 1 4
P3 1 2
P4 2 2
Plus court d’abord P5 3 1

Indiquez le résultat d’un ordonnancement de type plus court


d’abord et le temps d’attente moyen.

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Date

UC P1

Info32b Systèmes d’Exploitation Nicolas Sabouret 11/28


Questions de cours Ordonnancement Processus Synchronisation Conclusion

Proc. Arrivée Durée


Ordonnancement P1 0 7
P2 1 4
P3 1 2
P4 2 2
Plus court d’abord P5 3 1

Indiquez le résultat d’un ordonnancement de type plus court


d’abord et le temps d’attente moyen.

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Date

UC P1 P3

Info32b Systèmes d’Exploitation Nicolas Sabouret 11/28


Questions de cours Ordonnancement Processus Synchronisation Conclusion

Proc. Arrivée Durée


Ordonnancement P1 0 7
P2 1 4
P3 1 2
P4 2 2
Plus court d’abord P5 3 1

Indiquez le résultat d’un ordonnancement de type plus court


d’abord et le temps d’attente moyen.

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Date

UC P1 P3 P5

Info32b Systèmes d’Exploitation Nicolas Sabouret 11/28


Questions de cours Ordonnancement Processus Synchronisation Conclusion

Proc. Arrivée Durée


Ordonnancement P1 0 7
P2 1 4
P3 1 2
P4 2 2
Plus court d’abord P5 3 1

Indiquez le résultat d’un ordonnancement de type plus court


d’abord et le temps d’attente moyen.

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Date

UC P1 P3 P5 P4

Info32b Systèmes d’Exploitation Nicolas Sabouret 11/28


Questions de cours Ordonnancement Processus Synchronisation Conclusion

Proc. Arrivée Durée


Ordonnancement P1 0 7
P2 1 4
P3 1 2
P4 2 2
Plus court d’abord P5 3 1

Indiquez le résultat d’un ordonnancement de type plus court


d’abord et le temps d’attente moyen.

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Date

UC P1 P3 P5 P4 P2

Info32b Systèmes d’Exploitation Nicolas Sabouret 11/28


Questions de cours Ordonnancement Processus Synchronisation Conclusion

Proc. Arrivée Durée


Ordonnancement P1 0 7
P2 1 4
P3 1 2
P4 2 2
Plus court d’abord P5 3 1

Indiquez le résultat d’un ordonnancement de type plus court


d’abord et le temps d’attente moyen.

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Date

UC P1 P3 P5 P4 P2 P1

Info32b Systèmes d’Exploitation Nicolas Sabouret 11/28


Questions de cours Ordonnancement Processus Synchronisation Conclusion

Proc. Arrivée Durée


Ordonnancement P1 0 7
P2 1 4
P3 1 2
P4 2 2
Plus court d’abord P5 3 1

Indiquez le résultat d’un ordonnancement de type plus court


d’abord et le temps d’attente moyen.

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Date

UC P1 P3 P5 P4 P2 P1

Temps d’attente moyen :


9+5+0+2+0 16
= = 3.2
5 5

Info32b Systèmes d’Exploitation Nicolas Sabouret 11/28


Questions de cours Ordonnancement Processus Synchronisation Conclusion

Proc. Arrivée Durée


Ordonnancement P1 0 7
P2 1 4
P3 1 2
P4 2 2
Round Robin P5 3 1

Indiquez le résultat d’un ordonnancement de type Round Robin


avec un quantum de 3 et le temps d’attente moyen.

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Date

UC

Info32b Systèmes d’Exploitation Nicolas Sabouret 12/28


Questions de cours Ordonnancement Processus Synchronisation Conclusion

Proc. Arrivée Durée


Ordonnancement P1 0 7
P2 1 4
P3 1 2
P4 2 2
Round Robin P5 3 1

Indiquez le résultat d’un ordonnancement de type Round Robin


avec un quantum de 3 et le temps d’attente moyen.

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Date

UC P1

Info32b Systèmes d’Exploitation Nicolas Sabouret 12/28


Questions de cours Ordonnancement Processus Synchronisation Conclusion

Proc. Arrivée Durée


Ordonnancement P1 0 7
P2 1 4
P3 1 2
P4 2 2
Round Robin P5 3 1

Indiquez le résultat d’un ordonnancement de type Round Robin


avec un quantum de 3 et le temps d’attente moyen.

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Date

UC P1 P2

Info32b Systèmes d’Exploitation Nicolas Sabouret 12/28


Questions de cours Ordonnancement Processus Synchronisation Conclusion

Proc. Arrivée Durée


Ordonnancement P1 0 7
P2 1 4
P3 1 2
P4 2 2
Round Robin P5 3 1

Indiquez le résultat d’un ordonnancement de type Round Robin


avec un quantum de 3 et le temps d’attente moyen.

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Date

UC P1 P2 P3

Info32b Systèmes d’Exploitation Nicolas Sabouret 12/28


Questions de cours Ordonnancement Processus Synchronisation Conclusion

Proc. Arrivée Durée


Ordonnancement P1 0 7
P2 1 4
P3 1 2
P4 2 2
Round Robin P5 3 1

Indiquez le résultat d’un ordonnancement de type Round Robin


avec un quantum de 3 et le temps d’attente moyen.

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Date

UC P1 P2 P3 P4

Info32b Systèmes d’Exploitation Nicolas Sabouret 12/28


Questions de cours Ordonnancement Processus Synchronisation Conclusion

Proc. Arrivée Durée


Ordonnancement P1 0 7
P2 1 4
P3 1 2
P4 2 2
Round Robin P5 3 1

Indiquez le résultat d’un ordonnancement de type Round Robin


avec un quantum de 3 et le temps d’attente moyen.

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Date

UC P1 P2 P3 P4 P5

Info32b Systèmes d’Exploitation Nicolas Sabouret 12/28


Questions de cours Ordonnancement Processus Synchronisation Conclusion

Proc. Arrivée Durée


Ordonnancement P1 0 7
P2 1 4
P3 1 2
P4 2 2
Round Robin P5 3 1

Indiquez le résultat d’un ordonnancement de type Round Robin


avec un quantum de 3 et le temps d’attente moyen.

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Date

UC P1 P2 P3 P4 P5 P1

Info32b Systèmes d’Exploitation Nicolas Sabouret 12/28


Questions de cours Ordonnancement Processus Synchronisation Conclusion

Proc. Arrivée Durée


Ordonnancement P1 0 7
P2 1 4
P3 1 2
P4 2 2
Round Robin P5 3 1

Indiquez le résultat d’un ordonnancement de type Round Robin


avec un quantum de 3 et le temps d’attente moyen.

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Date

UC P1 P2 P3 P4 P5 P1 P2

Info32b Systèmes d’Exploitation Nicolas Sabouret 12/28


Questions de cours Ordonnancement Processus Synchronisation Conclusion

Proc. Arrivée Durée


Ordonnancement P1 0 7
P2 1 4
P3 1 2
P4 2 2
Round Robin P5 3 1

Indiquez le résultat d’un ordonnancement de type Round Robin


avec un quantum de 3 et le temps d’attente moyen.

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Date

UC P1 P2 P3 P4 P5 P1 P2 P1

Info32b Systèmes d’Exploitation Nicolas Sabouret 12/28


Questions de cours Ordonnancement Processus Synchronisation Conclusion

Proc. Arrivée Durée


Ordonnancement P1 0 7
P2 1 4
P3 1 2
P4 2 2
Round Robin P5 3 1

Indiquez le résultat d’un ordonnancement de type Round Robin


avec un quantum de 3 et le temps d’attente moyen.

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Date

UC P1 P2 P3 P4 P5 P1 P2 P1

Temps d’attente moyen :

(0 + 8 + 1) + (2 + 8) + 5 + 6 + 7) 37
= = 7.4
5 5

Info32b Systèmes d’Exploitation Nicolas Sabouret 12/28


Questions de cours Ordonnancement Processus Synchronisation Conclusion

Ordonnancement

Comparaison
Quel est le meilleur algorithme suivant le critère du temps d’attente
moyen ? Et suivant le critère du temps d’attente min-max ?

Info32b Systèmes d’Exploitation Nicolas Sabouret 13/28


Questions de cours Ordonnancement Processus Synchronisation Conclusion

Ordonnancement

Comparaison
Quel est le meilleur algorithme suivant le critère du temps d’attente
moyen ? Et suivant le critère 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ères, c’est SRT qui l’emporte !

Info32b Systèmes 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és de temps, quel est le
temps total d’exécution des algorithmes ?

Info32b Systèmes d’Exploitation Nicolas Sabouret 14/28


Questions de cours Ordonnancement Processus Synchronisation Conclusion

Ordonnancement

Commutation
Si le temps de commutation est de 0,5 unités de temps, quel est le
temps total d’exécution 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,5 au lieu de 16

Le débit et la rotation moyenne ne sont donc pas la même pour ces


3 algorithmes !

Info32b Systèmes 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écution plus longue :
Proc. Arrivée Durée 1 E/S 1 Durée 2 E/S 2 Durée 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 ?

Info32b Systèmes d’Exploitation Nicolas Sabouret 15/28


Questions de cours Ordonnancement Processus Synchronisation Conclusion

Ordonnancement

Avec des E/S


On se place dans le contexte d’une exécution plus longue :
Proc. Arrivée Durée 1 E/S 1 Durée 2 E/S 2 Durée 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 ?

À discuter. . .
Dilemme famine (SRT) vs réactivité (RR) vs performance
Algorithmes avec priorité Linux/Windows
Temps total de chaque processus ?
Info32b Systèmes 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

Info32b Systèmes d’Exploitation Nicolas Sabouret 16/28


Questions de cours Ordonnancement Processus Synchronisation Conclusion

Code C

# include ...
# define N 100

int k = 1;

int main () {
int t [ N ];
int i ;
for ( i =0; i < N ; i ++)
t [ i ] = rand ()% N ;

pid_t fils = fork ();


if ( fils ==0) {
k =0;
for ( i =0; i < N ; i ++)
if ( t [0] < t [ i ])
t [0]= t [ i ];
}
else {
for ( i =1; i < N ; i ++)
t [0]+= t [ i ];
waitpid ( fils , NULL ,0);
}

printf ( " processus % d : % d \ n " ,k , t [0]);


return 0;
}

Info32b Systèmes d’Exploitation Nicolas Sabouret 17/28


Questions de cours Ordonnancement Processus Synchronisation Conclusion

Code C

# include ...
# define N 100 Processus 1
int k = 1; Que fait le processus 1 ?
int main () {
int t [ N ];
int i ;
for ( i =0; i < N ; i ++)
t [ i ] = rand ()% N ;

pid_t fils = fork ();


if ( fils ==0) {
k =0;
for ( i =0; i < N ; i ++)
if ( t [0] < t [ i ])
t [0]= t [ i ];
}
else {
for ( i =1; i < N ; i ++)
t [0]+= t [ i ];
waitpid ( fils , NULL ,0);
}

printf ( " processus % d : % d \ n " ,k , t [0]);


return 0;
}

Info32b Systèmes d’Exploitation Nicolas Sabouret 17/28


Questions de cours Ordonnancement Processus Synchronisation Conclusion

Code C

# include ...
# define N 100 Processus 1
int k = 1; Que fait le processus 1 ?
int main () {
int t [ N ]; Attention : c’est celui pour lequel
int i ;
for ( i =0; i < N ; i ++) fils6=0 !
t [ i ] = rand ()% N ;

pid_t fils = fork ();


Ü Initialise aléatoirement le
if ( fils ==0) {
k =0;
tableau
for ( i =0; i < N ; i ++)
if ( t [0] < t [ i ]) Ü Calcule la somme des
t [0]= t [ i ];
} éléments dans t[0]
else {
for ( i =1; i < N ; i ++) Ü Affiche le résultat
t [0]+= t [ i ];
waitpid ( fils , NULL ,0);
}

printf ( " processus % d : % d \ n " ,k , t [0]);


return 0;
}

Info32b Systèmes d’Exploitation Nicolas Sabouret 17/28


Questions de cours Ordonnancement Processus Synchronisation Conclusion

Code C

# include ...
# define N 100 Processus 0
int k = 1; Que fait le processus 0 ?
int main () {
int t [ N ];
int i ;
for ( i =0; i < N ; i ++)
t [ i ] = rand ()% N ;

pid_t fils = fork ();


if ( fils ==0) {
k =0;
for ( i =0; i < N ; i ++)
if ( t [0] < t [ i ])
t [0]= t [ i ];
}
else {
for ( i =1; i < N ; i ++)
t [0]+= t [ i ];
waitpid ( fils , NULL ,0);
}

printf ( " processus % d : % d \ n " ,k , t [0]);


return 0;
}

Info32b Systèmes d’Exploitation Nicolas Sabouret 18/28


Questions de cours Ordonnancement Processus Synchronisation Conclusion

Code C

# include ...
# define N 100 Processus 0
int k = 1; Que fait le processus 0 ?
int main () {
int t [ N ]; Attention : c’est le fils !
int i ;
for ( i =0; i < N ; i ++)
t [ i ] = rand ()% N ;
Ü Le tableau a été initialisé par
pid_t fils = fork ();
le père
if ( fils ==0) {
k =0; Ü Calcule le maximum des
for ( i =0; i < N ; i ++)
if ( t [0] < t [ i ]) éléments dans t[0]
t [0]= t [ i ];
} Ü Affiche le résultat
else {
for ( i =1; i < N ; i ++)
t [0]+= t [ i ];
waitpid ( fils , NULL ,0);
}

printf ( " processus % d : % d \ n " ,k , t [0]);


return 0;
}

Info32b Systèmes 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ésultat souhaité ?

Info32b Systèmes 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ésultat souhaité ?
Ce qui est à craindre, c’est que chacun bousille le tableau de l’autre. . .

Info32b Systèmes 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ésultat souhaité ?
Ce qui est à craindre, c’est que chacun bousille le tableau de l’autre. . .

Ü Non, car les deux processus ont des espaces de données


différents (pas de variable partagée, y compris le tableau).

Info32b Systèmes d’Exploitation Nicolas Sabouret 19/28


Questions de cours Ordonnancement Processus Synchronisation Conclusion

Concurrence

Communication
Comment faire pour que les processus puissent utiliser le résultat
de l’autre processus ?

Info32b Systèmes 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ésultat
de l’autre processus ?
Ce qui ne marche pas, c’est d’utiliser le code retour du fils : ça ne passe que
dans un sens !

Info32b Systèmes 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ésultat
de l’autre processus ?
Ce qui ne marche pas, c’est d’utiliser le code retour du fils : ça ne passe que
dans un sens !

Ü Passer par des threads et utiliser des variables partagées


(variables globales dans le tas) pour les résultats ;
Ü Créer deux variables partagées entre les processus à l’aide de
shmget
Ü Utiliser une communication par TCP/IP entre les deux
processus (on s’éloigne du cours. . . )
...

Info32b Systèmes 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

Info32b Systèmes d’Exploitation Nicolas Sabouret 21/28


Questions de cours Ordonnancement Processus Synchronisation Conclusion

Données du problème
Une route reliant Paris et l’Université Paris-Sud. La particularité de
cette route est d’être à circulation alternée : 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) et VO→P .

Info32b Systèmes d’Exploitation Nicolas Sabouret 22/28


Questions de cours Ordonnancement Processus Synchronisation Conclusion

Analyse du problème

Section critique
Rappeler la définition d’une section critique ainsi que les trois
critères qui y sont associés.

Info32b Systèmes d’Exploitation Nicolas Sabouret 23/28


Questions de cours Ordonnancement Processus Synchronisation Conclusion

Analyse du problème

Section critique
Rappeler la définition d’une section critique ainsi que les trois
critères qui y sont associés.
Ü Une section critique est une portion de code qu’on ne peut
pas interrompre car elle contient des variables partagées.
Ü On souhaite garantir l’exclusion mutuelle, le déroulement et
l’attente bornée (ou vivacité).

Info32b Systèmes d’Exploitation Nicolas Sabouret 23/28


Questions de cours Ordonnancement Processus Synchronisation Conclusion

Analyse du problème

Section critique
Rappeler la définition d’une section critique ainsi que les trois
critères qui y sont associés.
Ü Une section critique est une portion de code qu’on ne peut
pas interrompre car elle contient des variables partagées.
Ü On souhaite garantir l’exclusion mutuelle, le déroulement et
l’attente bornée (ou vivacité).

Problème similaire
Expliquez l’analogie avec le problème des lecteurs-écrivains (TD4).

Info32b Systèmes d’Exploitation Nicolas Sabouret 23/28


Questions de cours Ordonnancement Processus Synchronisation Conclusion

Analyse du problème

Section critique
Rappeler la définition d’une section critique ainsi que les trois
critères qui y sont associés.
Ü Une section critique est une portion de code qu’on ne peut
pas interrompre car elle contient des variables partagées.
Ü On souhaite garantir l’exclusion mutuelle, le déroulement et
l’attente bornée (ou vivacité).

Problème similaire
Expliquez l’analogie avec le problème des lecteurs-écrivains (TD4).
Ü C’est un problème de lecteurs-écrivains, sauf qu’il peut y avoir
plusieurs écrivains en même temps.
Info32b Systèmes d’Exploitation Nicolas Sabouret 23/28
Questions de cours Ordonnancement Processus Synchronisation Conclusion

Solution

Sémaphores
En utilisant des sémaphores, écrivez les fonctions de demande
d’accès et de sortie pour le tronçon Paris → Orsay et Orsay →
Paris.

Info32b Systèmes d’Exploitation Nicolas Sabouret 24/28


Questions de cours Ordonnancement Processus Synchronisation Conclusion

Solution

Sémaphores
En utilisant des sémaphores, écrivez les fonctions de demande
d’accès et de sortie pour le tronçon Paris → Orsay et Orsay →
Paris.
Il faut au moins 3 sémaphores :
Un pour bloquer l’accès à la route (dans le sens contraire)
Un qui sert de MUTEX pour qu’un seul véhicule s’engage
dans le sens P→O
Un qui sert de MUTEX dans le sens O→P
Et une variable pour savoir s’il reste des gens sur la route. . .

Info32b Systèmes d’Exploitation Nicolas Sabouret 24/28


Questions de cours Ordonnancement Processus Synchronisation Conclusion

Solution

Sémaphores
En utilisant des sémaphores, écrivez les fonctions de demande
d’accès et de sortie pour le tronçon Paris → Orsay et Orsay →
Paris.
Sempahore route, mutexOP, mutexPO;
int nbOP, nbPO;
fonction OPaccess :
mutexOP.verrouiller();
nbOP++;
si (nbOP == 1) route.acquerir();
mutexOP.relacher();
fonction OPexit :
mutexOP.acquerir();
nbOP--;
si (nbOP == 0) route.relacher();
mutexOP.relacher();

Info32b Systèmes d’Exploitation Nicolas Sabouret 24/28


Questions de cours Ordonnancement Processus Synchronisation Conclusion

Ça se complique. . .

Camions
Le camion de travaux ne peut accéder à un tronçon que s’il n’y a
aucun autre camion et aucun autre automobiliste.
Proposer une solution pour ajouter cette contrainte.

Info32b Systèmes d’Exploitation Nicolas Sabouret 25/28


Questions de cours Ordonnancement Processus Synchronisation Conclusion

Ça se complique. . .

Camions
Le camion de travaux ne peut accéder à un tronçon que s’il n’y a
aucun autre camion et aucun autre automobiliste.
Proposer une solution pour ajouter cette contrainte.
Ü Il faut rajouter deux fonctions entreeCamion et
sortieCamion qui prennent le sémaphore route.

Info32b Systèmes d’Exploitation Nicolas Sabouret 25/28


Questions de cours Ordonnancement Processus Synchronisation Conclusion

Ça se complique. . .

Camions
Le camion de travaux ne peut accéder à un tronçon que s’il n’y a
aucun autre camion et aucun autre automobiliste.
Proposer une solution pour ajouter cette contrainte.
Ü Il faut rajouter deux fonctions entreeCamion et
sortieCamion qui prennent le sémaphore route.
Sempahore route, mutexOP, mutexPO;
int nbOP, nbPO;
fonction OPaccessCamion :
route.verrouiller();
fonction OPexitCamion :
route.relacher();

Info32b Systèmes d’Exploitation Nicolas Sabouret 25/28


Questions de cours Ordonnancement Processus Synchronisation Conclusion

Étude du résultat

Famine
Y’a-t-il un risque de famine ?

Info32b Systèmes d’Exploitation Nicolas Sabouret 26/28


Questions de cours Ordonnancement Processus Synchronisation Conclusion

Étude du résultat

Famine
Y’a-t-il un risque de famine ?
La réponse dépend de la solution donnée !
Ü Dans le corrigé ci-avant, oui, il y a risque de famine
Un groupe de voiture en continu dans un sens peut maintenir la route
verrouillée avec des nbXX++.
Ü Il faudrait un sémaphore en plus (dans chaque sens et pour le
camion) pour demander l’accès
(attention à l’ordre pour ne pas créer d’interblocage !)

Info32b Systèmes d’Exploitation Nicolas Sabouret 26/28


Questions de cours Ordonnancement Processus Synchronisation Conclusion

Plan

1 Questions de cours

2 Ordonnancement

3 Processus

4 Synchronisation

5 Conclusion

Info32b Systèmes d’Exploitation Nicolas Sabouret 27/28


Questions de cours Ordonnancement Processus Synchronisation Conclusion

Pour conclure. . .

Bonnes révisions !

Info32b Systèmes d’Exploitation Nicolas Sabouret 28/28

Vous aimerez peut-être aussi