Académique Documents
Professionnel Documents
Culture Documents
najla.bouarada@yahoo.fr
Plan
Introduction
Notion de processus
Bloc de contrôle d’un processus (PCB)
Etats de processus
Interruption
Mécanisme de commutation de contexte
Ordonnancement des processus
Les algorithmes d’ordonnancement
Ordonnanceur Windows
Ordonnanceur Windows
2
Introduction
Un processeur est :
Un processus :
est une entité dynamique créée à un instant donné, qui disparaît en
général au bout d’un temps fini.
est un programme en cours d'exécution avec ses propres ressources
logiques (données, variables, fichiers, …) et physiques (mémoire,
processeur, entrée/sortie, …)
représente le déroulement d'une tâche faisant partie d'une application
ou d’un programme système quelconque
Un programme :
est une suite d'instructions
c'est du texte, un code statique.
5
Notion de processus (2/4)
Le SE manipule deux familles de processus
Processus système : processus lancé par le SE (init processus père de
tous les processus du système Unix)
Processus utilisateur : processus lancée par l’utilisateur (commande
utilisateur)
Les processus des utilisateurs sont lancés par un interprète de
commande. Ils peuvent eux-mêmes lancer ensuite d’autres processus
On appelle le processus créateur, le père, et les processus créés, les
fils
6
Notion de processus (3/4)
Les processus peuvent donc se structurer sous la forme d’une
arborescence.
Au lancement du système, il n’existe qu’un seul processus, qui est
l’ancêtre de tous les autres (le processus init)
P1 Ancêtre
P2 P3 Père et fils de P1
P4 P5 P6 Fils de P3
8
PCB: Process Control Bloc
(Bloc de contrôle de processus)
PCB : est une structure de données du noyau d’un SE, qui
représente la situation actuelle d’un processus donné
PCB permet la sauvegarde et la restauration du contexte mémoire et
du contexte processeur lors des opérations de commutations de
contexte Identificateur processus
Etat du processus (Elu, Bloqué, prêt)
Compteur d’instructions: le processus doit
reprendre à l’instruction suivante
Contexte pour reprise (registre et
pointeur, pile…)
Information mémoire (espace d’adressage)
Informations sur les E/S, les périphériques
9
alloués, le fichiers ouverts…
Etats d’un processus (1/3)
Actif
En cours d’exécution
Quand un processus s’exécute, il
change d’états.
Trois états sont possibles pour un
processus:
Actif (Elu) quand le processeur est
Prêt
en train d'exécuter une de ses
instructions.
→ Dans un système monoprocesseur, un
seul processus peut être actif à la fois;
Bloqué
Bloqué quand il est en attente d’une
ressource pour terminer
→ i.e. la fin d’une entrée-sortie ou plus
généralement en attente d’un autre
processus. Attente d’un évènement
Prêt s’il est nouveau ou suspendu en extérieur
faveur d’un autre processus
10
Etats d’un processus (2/3)
Sémantique des transitions
1 Attribution du processeur au Actif
processus sélectionné 1
2 Réquisition du processeur après
expiration de la durée du temps 2 3
par exemple Prêt
3 Blocage du processus actif en
attendant un évènement tel qu’une
E/S Bloqué
4
Terminé
Actif
Nouveau Elu
Bloqué
Prêt
13
Interruption
Interruptions logicielles:
Instruction spéciale
16
Commutation de contexte
Points interruptibles
Commutation
Interruption
de contexte
Sauvegarder l’état dans PCB1
Interruption
Sauvegarder l’état dans PCB2
18
Ordonnancement des processus (1/4)
Plusieurs processus sont
présents en mémoire centrale
P1 est élu et s'exécute sur le
processeur
P2 et P4 sont dans l'état bloqué
car ils attentent tous les deux
une fin d'entrée/sortie
P3, P5 et P6 sont dans l'état
prêt, ils ne peuvent pas
s’exécuter car le processeur est
occupé par P1
Lorsque P1 quittera le
processeur parce qu'il a terminé c'est le rôle de l'ordonnancement qui
son exécution, il faudra choisir élira un des trois processus
entre P3, P5 et P6 19
Ordonnancement des processus (2/4)
21
Ordonnancement des processus (3/4)
22
Ordonnancement des processus (4/4)
23
I- Les ordonnanceurs non-préemptifs ou
sans réquisition
Le système d’exploitation choisit le processus suivant à exécuter
selon :
Premier arrivé, Premier servi (FCFS, First-Come First-Served)
Plus court d’abord (SPF, Short Process First ou SJF Short Job First).
Plus prioritaire d’abord
24
Algorithme FCFS
Principe :
L'ordonnancement est fait dans l'ordre d'arrivée en gérant une file
unique des processus sans priorité ni réquisition
Le premier arrivé est le premier servi
Pas de priorité, pas de réquisition
Chaque processus s’exécute jusqu’à ce qu’elle s'interrompe elle-
même (entrée-sortie…) ou termine son exécution
Avantages:
l'algorithme est simple, pas de parcours de la liste pour retenir un
processus à activer
Inconvénients
Ne permet pas d’optimiser le temps de traitement moyen
25
Algorithme FCFS
Processus Temps d’exécution Temps d’arrivage
A 3 0
B 6 1
C 4 4
D 2 6
E 1 7
A A A B B B B B B C C C C D D E
0 1 5 10 15
Arrivée de B
Arrivée de c Le temps de séjour pour chaque processus ?
Arrivée de D Le temps d'attente pour chaque processus ?
Arrivée de E 26
Diagramme de Gant
Algorithme FCFS
Principe :
l'Ordonnanceur élit le plus court d'abord
Les travaux sont organisés dans la file d’attente, selon leurs temps
d’exécution (les travaux les plus cours étant en tête de la file des
prêts).
Inconvénients :
nécessité de connaissance du temps de service à priori
risque de privation des tâches les plus longues
28
Algorithme SPF (1/2)
Processus Temps d’exécution Temps d’arrivage
A 3 0
B 6 1
C 4 4
D 2 6
E 1 7
A A A B B B B B B E D D C C C C
1 5 10 15
Arrivée de B
Arrivée de c
Arrivée de D
Arrivée de E 29
Algorithme SPF (2/2)
Processus Temps de séjour Temps d’attente
A 3-0 = 3 3-3 = 0
B 9-1 = 8 8-6 = 2
C 16-4=12 12-4=8
D 12-6 = 6 6-2 = 4
E 10-7=3 3-1 = 2
30
Exercice d’application
Cinq travaux A, B, C, D et E arrivent pratiquement en même
temps dans un centre de calcul. Leur temps d’exécution
respectif est estimé à 10, 6, 2, 4 et 8 secondes.
Tracez le digramme de Gantt et déterminez le temps moyen de
rotation (séjour) pour chacun des algorithmes
d’ordonnancement suivants.
• Premier arrivé, premier servi FCFS (exécution dans
l’ordre 10, 6, 2, 4, 8) ;
• Plus court d’abord SJF ;
31
Algorithme du plus prioritaire d’abord (1/3)
Les algorithmes basés sur la priorité associent à chaque processus
une priorité
Le processeur est alloué au processeur ayant la plus grande
priorité, sans tenant compte des temps d’exécution et temps
d’arrivée des processus dans la file d’attente
32
Algorithme du plus prioritaire d’abord (2/3)
D D D D C C A A A A A A A A A A E E E E E E E E B B B B B B
33
Algorithme du plus prioritaire d’abord (3/3)
Processus Temps de séjour Temps d’attente
A 16 6
B 30 24
C 6 4
D 4 0
E 24 16
34
II- Les ordonnanceurs préemptifs (avec
réquisition)
Les ordonnanceurs préemptifs peuvent interrompre un processus
en cours d’exécution si :
un nouveau processus de priorité plus élevée est inséré dans la file
des Prêts
ce processus s’exécute pendant trop de temps
37
Plus court temps restant (SRT) (2/2)
Processus Temps d’exécution Temps d’arrivage
A 15 unités de temps 0
B 4 unités de temps 2 unités de temps
Le temps de commutation est supposé nul
A A B B B B A A A A A A A A A A A A A
Arrivée de B
Processus Temps de séjour Temps d’attente
A 19-0=19 19-15=4
B 6-2=4 4-4=0
Processus suspendu
39
Round Robin : Ordonnanceur circulaire (2/4)
41
Round Robin : Ordonnanceur circulaire (4/4)
Processus Temps d’exécution Temps d’arrivage
A 15 unités de temps 0
B 4 unités de temps 2 unités de temps
Le temps de commutation est supposé nul, Quantum=10
A A A A A A A A A A B B B B A A A A A
A A A B B B A A A B A A A A A A A A A
B C D E
47
Algorithme basé sur les priorités
A A A A A C C C C C C C C C C E E E DC C C C C A A A A A B B B B B
B C D E
Processus Temps de séjour Temps d’attente
A 29 29-10=19
B 32 32-5=27
C 19 19-15=4
D 9 9-1=8
E 3 3-3=0
50
Files d’attente à rétroaction ou retour (2/3)
Exemple
Les processus qui font beaucoup d’E/S doivent acquérir le
processeur dès qu’ils le demandent.
La nouvelle valeur de priorité est le rapport : quantum/temps
réellement utilisé par le processus.
Les processus qui ont le plus grand rapport sont les plus
prioritaires : – Si le quantum = 100 ms et le temps utilisé = 2 ms,
la nouvelle priorité est 50. – Si le quantum = 100 ms et le temps
utilisé = 50 ms, la nouvelle priorité est 2.
52
Exercice
Processus Temps Temps Priorité
d’exécution d’arrivage
A 10 0 3
B 5 2 3
C 15 5 2
D 1 10 2
E 3 15 1
Appliquer l’algorithme basé sur les priorités avec file d’attente utilisant
Tourniquet pour chaque catégorie de priorité : tant qu’il y a des processus
exécutables dans la catégorie de priorité i, on y applique Tourniquet et on ne
s’occupe pas des catégories inférieures. Si la catégorie i est vide, on exécute les
processus de la catégorie i-1
- Recalculer les priorités : à chaque quantum on retranche 1 de la priorité du processus
exécuté et quantum = 10 ms
53
N° Processus Date d’arrivée Temps CPU Priorité
Exercice 1 7h 00 10 mn 2
2 7h 00 15 mn 3
3 7h 03 8 mn 4
4 7h 10 18 mn 5
On suppose que les priorités sont croissantes : 5 est le plus prioritaire.
Pour calculer la priorité d’un processus, on utilise la formule suivante :
Temps d′ attente+Temps CPU restant
𝑃𝑟𝑖𝑜𝑟𝑖𝑡é =
Temps CPU
Hypothèses :
Au démarrage, les priorités des processus sont égales à leurs priorités statiques
(indiquées dans le tableau).
Les priorités ne sont calculées que toutes les 5mn. Pour les autres temps, on prend
la priorité précédente.
Le temps d’attente d’un processus est son temps d’attente depuis sa dernière
exécution.
Si on a le choix entre deux processus de même priorité, on choisit celui qui attend
depuis le plus longtemps.
Donnez le diagramme de Gantt sachant que la priorité est recalculée toutes
54
les 5 minutes.
Ordonnanceur Windows
55
Ordonnanceur Linux
56