0% ont trouvé ce document utile (0 vote)
19 vues48 pages

Gestion des processus en systèmes multitâches

Le chapitre 2 traite de la gestion des processus dans un système d'exploitation, en expliquant les notions de processus, leurs états, et le mécanisme de commutation de contexte. Il aborde également l'ordonnancement des processus, les différents types d'ordonnanceurs, et les algorithmes d'ordonnancement tels que FCFS et SJF. Enfin, il souligne les défis associés à ces méthodes et la nécessité d'une approche préemptive pour une gestion efficace des ressources processeur.

Transféré par

yosrmaherzi
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
19 vues48 pages

Gestion des processus en systèmes multitâches

Le chapitre 2 traite de la gestion des processus dans un système d'exploitation, en expliquant les notions de processus, leurs états, et le mécanisme de commutation de contexte. Il aborde également l'ordonnancement des processus, les différents types d'ordonnanceurs, et les algorithmes d'ordonnancement tels que FCFS et SJF. Enfin, il souligne les défis associés à ces méthodes et la nécessité d'une approche préemptive pour une gestion efficace des ressources processeur.

Transféré par

yosrmaherzi
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Chapitre 2

Gestion des processus


Plan
 Introduction
 Notion de processus
 Etats de processus
 Mécanisme de commutation de contexte
 Bloc de contrôle d’un processus (PCB)
 Interruption/ Déroutement
 Ordonnancement des processus
 Ordonnanceur
 Dispatcheur
 Les algorithmes d’ordonnancement

2
Introduction
 Dans un système multitâche, la ressource la plus cruciale
d’une machine est le processeur.
 Le processeur est alloué à un et un seul processus sélectionné
parmi un ensemble de processus prêts.
Il est nécessaire de bien gérer le processeur pour le rendre
plus productif.
 Le SE doit être capable de résoudre les problèmes
suivants:
 Comment choisir le prochain processus à exécuter ?
 Combien de temps processeur à allouer au processus choisi ?

3
Notions de base des processus (1/2)
 Un processus est une entité dynamique: C’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, …)
 Ne pas confondre un processus avec programme
 Un programme est une suite d'instructions ; c'est du texte,
un code statique.
 Le processus est un concept dynamique, il représente le
déroulement d'une tâche faisant partie d'une application ou
d’un programme système quelconque.

4
Notions de base des processus (2/2)
 Plusieurs processus peuvent se trouver simultanément en
cours d'exécution (multiprogrammation et temps partagé)
 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)
 Processus utilisateur : processus lancée par l’utilisateur
(commande utilisateur)

5
Structure des processus
 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
 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.
P1 Ancêtre

P2 P3 Père et fils de P1

P4 P5 P6 Fils de P3

Figure1: Le hiérarchie des processus 6


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 en
train d'exécuter une de ses Prêt
instructions.
→ Dans un système monoprocesseur, un seul
processus peut être actif à la fois;
 bloqué quand il est en attente d'un Bloqué
événement ou d’une synchronisation,
→ 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 n'est ni actif ni bloqué. extérieur

7
Etats d’un processus (2/3)
•Sémantique des transitions
Actif
Elu 1 Attribution du processeur au
3
1 processus sélectionné

2 2 Réquisition du processeur après


expiration de la durée du temps
Bloqué
Prêt par exemple

3 Blocage du processus actif en attendant


un évènement tel qu’une E/S
4

4 Débloquage du processus après


disponibilité de l’événement bloquant
8
Etats d’un processus (3/3)
Terminé
Actif
Nouveau Elu

Bloqué
Prêt

•Nouveau: Le SE a créé le processus


•Terminé: Le processus n’est plus exécutable
9
Propriétés d’un processus
 A un instant donné, un processus est caractérisé par
plusieurs informations:
 Son état: Actif, suspendu, etc.;
 Son identificateur;
 Son compteur ordinal: registre qui contient l'adresse
mémoire de l'instruction prochainement exécutée;
 Ses données en mémoire;
 Toutes autres informations utiles à son exécution (E/S,
fichiers ouverts, etc.);

10
PCB: Process Control Bloc
(Bloc de contrôle de processus)
 PCB : est une structure de Identificateur processus
données du noyau d’un SE Etat du processus (Elu, Bloqué, prêt)
représentant l’état d’un Compteur d’instructions: le processus
processus donné 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 alloués, les fichiers
ouverts…
Bloc de contrôle de processus
11
Mécanismes de commutation
 L’opération de commutation de contexte qui précède le
changement du processus actif (le basculement de l’activité entre
deux processus) est l’enchaînement indivisible des deux
opérations suivantes:
 Sauvegarde des propriétés du processus actif à un emplacement
particulier de la mémoire.
 Chargement des propriétés d’un autre processus depuis un
emplacement spécifique de la mémoire vers le processeur.

 Cette sauvegarde est nécessaire pour pouvoir poursuivre


ultérieurement l’exécution du processus suspendu.
 PCB permet la sauvegarde et la restauration du contexte mémoire
et du contexte processeur lors des opérations de commutations de
contexte
12
Mise en œuvre de la commutation
Système
Processus P1 L’ordonnanceur Processus P2

Points interruptibles
Commutation
de contexte
Sauvegarder l’état dans PCB1

Restaurer l’état de PCB2

Sauvegarder l’état dans PCB2

Restaurer l’état de PCB1

13
Les déroutements/Les interruptions
Une commutation de contexte peut se produire dans les cas suivants:
 Les interruptions qui sont d’origine externe (produite par un autre processus ou
par le matériel). Ce sont des signaux envoyés de façon asynchrone au processeur
qui le forcent à suspendre l’activité en cours au profil d’une autre (Horloge…).
 Les déroutements sont déclenchés par une cause interne au programme en cours
d’exécution. un déroutement lié à l'exécution de l'instruction en cours :
traitement d'une erreur ou situation exceptionnelle. Exemples :
 Lorsqu’un programme effectue une opération interdite (exp : débordement
de tableaux hors de la zone d'adresses allouée au programme)
 Lorsque les données sont incorrectes (exp : division par 0)
 Lorsque l’instruction ne correspond pas à un code exécutable (Exemple: dive
au lieu de div)
 un appel au superviseur lié à l'instruction en cours qui nécessite l'usage d'une
fonction du système d'exploitation. Exemple : traitement d'une entrée-sortie
14
(lecture/écriture).
Ordonnancement des processus (1/4)

 Chaque fois, que le processeur devient non actif, le système


d’exploitation doit sélectionner un processus de la file
d’attente des processus prêts, et lui passe le contrôle.

 Cette tâche est effectuée par deux routines système :


– Un ordonnanceur (scheduleur): Il prend en charge la mise en
ordre des processus qui demandent le processeur (quel
processus à activer)
– Un dispatcheur: Il est responsable au changement de
contexte et l’allocation du processeur à un processus choisi par
le scheduleur (le quantum de temps alloué au processus)
15
Ordonnancement des processus (2/4)

16
Ordonnancement des processus (3/4)
 Les objectifs d'un ordonnanceur d'un système multi-tâches
sont :
– S'assurer que chaque processus en attente d'exécution reçoive
sa part de temps processeur.
– Minimiser le temps de réponse.
– Utiliser le processeur à 100%.
– Utilisation équilibrée des ressources.
– Prendre en compte des priorités.
– Réduire le nombre et la durée des changements de contexte

17
Ordonnancement des processus (4/4)
 Objectifs d’ordonnancement : Critères de performances
– Temps de séjour d’un processus (temps de rotation ou de virement) : temps
entre l’entrée du processus et sa sortie.
– Temps d'attente d’un processus : somme des périodes que le processus passe
à attendre.
– Capacité de traitement : nombre de processus traités par unité de temps.
– Taux d’utilisation d’un processeur : rapport entre la durée où le CPU est
actif et la durée totale.
– Etc.
 2 types d’ordonnanceurs selon si l’opération de réquisition
est autorisée ou non :
– Ordonnanceurs non-préemptifs (Actif Prêt)
– Ordonnanceurs préemptifs (Actif Prêt)

18
I- Les ordonnanceurs non-préemptifs ou
sans réquisition
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
 Il alloue le processeur au processus jusqu’à ce dernier se
termine ou se bloque (en attente d’un événement). Il n’y a
pas de réquisition.

20
Algorithme FCFS (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 C C C C D D E
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 21
Algorithme FCFS (2/2)
 Le temps de séjour: C’est la durée moyenne nécessaire pour l’exécution
d’un processus. Le temps de séjour est calculé en soustrayant le temps d'entrée
du processus du temps de terminaison
 Le temps d'attente: C’est la durée moyenne qu’un processus passe à
attendre. Il est calculé en soustrayant le temps d'exécution du temps de séjour
Processus Temps de séjour Temps d’attente
A 3-0 = 3 3-3 = 0
B 9-1 = 8 8-6 = 2
C 13-4=9 9-4=5
D 15-6 = 9 9-2 = 7
E 16-7=9 9-1= 8

Temps de séjour moyen=7,6


Temps d’attente moyen=4,4
3,2 unités de temps par processus 22
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 23
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

Temps de séjour moyen=6,4


Temps d’attente moyen=3,2
3,2 unités de temps par processus
 Meilleur temps d’attente

24
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 ;

25
Algorithme du plus prioritaire d’abord (1/2)

Processus Temps d’exécution Temps d’arrivage Priorité


A 10 0 3
B 6 0 5
C 2 0 2
D 4 0 1
E 8 0 4

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

26
Algorithme du plus prioritaire d’abord (1/2)

Processus Temps d’exécution Temps d’arrivage Priorité


A 10 0 3
B 6 1 5
C 2 4 2
D 4 6 1
E 8 7 4

27
Algorithme du plus prioritaire d’abord (2/2)
Processus Temps de séjour Temps d’attente
A 16 6
B 30 24
C 6 4
D 4 0
E 24 16

Temps de séjour moyen=16


Temps d’attente moyen=10
6 unités de temps par processus

28
Difficultés majeures avec les méthodes
discutées
 Premier arrivé’ premier servi (FCFS)
 Temps moyen d’attente non optimal
 Mauvaise utilisation des ressources s’il y a apport continu de processus aux
cycles longs (effet d’accumulation)
 Plus court d’abord (SJF) et plus court temps restant (SRT)
 Difficulté de prévoir la durée du prochain cycle
 Famine possible des processus ‘longs’ s’il y a apport continu de processus aux
cycles courts
 Donc besoin d’une méthode systématiquement préemptive:
 Le Tourniquet
 Si vous faites toujours des devoirs les plus courts en premier, vous pourriez avoir
l’impression de faire beaucoup mais vous pourriez ne jamais arriver aux plus
longs…
 Si vous faites les devoirs dans l’ordre d’arrivée, les longs pourraient vous
bloquer pour longtemps…
 Donc la solution est de donner un peu de temps à chacun, cycliquement

29
II- Les ordonnanceurs préemptifs ou avec
réquisition
II- Les ordonnanceurs préemptifs
 Ordonnanceur préemptif = avec réquisition
 Pour garantir qu’aucun processus ne s’exécute pas pendant trop
de temps, les ordinateurs ont une horloge électronique qui génère
périodiquement une interruption d’horloge.
 A chaque interruption d’horloge, le SE reprend la main et décide
si le processus courant doit poursuivre son exécution ou s’il doit
être suspendu pour laisser place à un autre
 Le processeur passe d’un processus à un autre en exécutant
chaque processus pendant quelques dizaines ou centaines de
millisecondes.
 Le temps d’allocation du processeur au processus est appelé
quantum
 La commutation entre processus doit être rapide  exiger un
temps nettement inférieur au quantum 31
Ordonnanceur circulaire: Round Robin (1/3)
 L’algorithme du tourniquet, circulaire, ou round robin mémorise
dans une file de type FIFO (First In First Out) la liste des processus
prêts, c’est-à-dire en attente d’exécution
Fin
E D C B A Processeur

Processus suspendu

 Il alloue le processeur au processus en tête de file, pendant une durée de


temps (quantum)
 Si le processus courant se bloque ou se termine avant la fin de son
quantum, le processeur est alloué immédiatement au processus en tête
de la file d’attente
 Si le processus ne se termine pas au bout de son quantum, son exécution
est suspendue. Ce processus est alors placé à la fin de la file d’attente.
32
Ordonnanceur circulaire: Round Robin (2/3)
 Les processus qui arrivent ou qui passent de bloqué à prêt sont insérés
en queue de file
 Choix de la valeur du quantum
 Un quantum trop petit cause plusieurs commutations de processus et
réduit l’efficacité du processeur.
 Un quantum très élevé augmente le temps de réponse (temps passé
dans la file d’attente des processus prêts avant la première exécution)
 Un quantum entre 20 et 50 ms est raisonnable

33
Ordonnanceur circulaire: Round Robin (3/3)
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

Processus Temps de séjour Temps d’attente


Arrivée de B A 19-0=19 19-15=4
B 14-2=12 12-4=8

Temps de séjour moyen=15,5


Temps d’attente moyen=6
3 commutations de contexte
34
Ordonnanceur circulaire: Round Robin (3/3)
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=3

A A A B B B A A A B A A A A A A A A A

Processus Temps de séjour Temps d’attente


Arrivée de B A 19-0=19 19-15=4
B 10-2=8 8-4=4

Temps de séjour moyen=13,5


Temps d’attente moyen=4
5 commutations de contexte
35
Ordonnanceur du plus court temps
restant(SRT) (1/2)

 L’ordonnancement du plus court temps restant ou Shortest

Remaining Time est la version préemptive de l’algorithme


SJF

 Si un processus dont le temps d’exécution est plus court que

le reste du temps d’exécution du processus en cours de


traitement, alors il prendra sa place.

36
Ordonnanceur du 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

Processus Temps de séjour Temps d’attente


Arrivée de B A 19-0=19 19-15=4
B 6-2=4 4-4=0

Temps de séjour moyen=11,5


Temps d’attente moyen=2
3 commutations de contexte
37
Exercice d’application
Considérons cinq Processus P1, P2, P3, P4, P5, dont les temps
d'exécution et leurs temps d’arrivée respectifs sont les suivants

Le temps de commutation est supposé nul.


 Dessiner le diagramme de GANTT pour l’ordonnancement SRT
et Round Robin (quantum = 3 unités de temps)
 Calculer le temps de séjour de chaque processus, le temps
moyen de séjour, le temps d’attente, le temps moyen38
d’attente, et le nombre de changements de contexte
Ordonnanceur préemptif basé sur les
priorités
 L’ordonnanceur à priorité donne à chaque processus une priorité
qui peut être statique ou dynamique
 Le choix du processus à élire dépend des priorités des processus
prêts
 Les processus ayant la même priorité sont regroupés dans une file
FIFO
Il y’a autant de files qu’il y a de niveau de priorité
Entête de file d’attente (Priorité supérieure)
Priorité 4
Priorité 3
Priorité 2
Priorité 1 (Priorité inférieure) 39
Ordonnanceur préemptif basé sur les
priorités
 L’ordonnanceur choisit le processus le plus prioritaire qui se
trouve en tête de file
 Si un processus plus prioritaire arrive, on suspend le processus
actif et on exécute le nouveau. Le processus passe à la fin de la file
d’attente de la priorité correspondante.
 Si un processus arrive avec la même priorité, on continue sans
réquisition (Minimiser le nombre de commutations).

 Remarque : Il y a des SE qui utilisent différents algorithmes


d‘ordonnancement pour chaque file de priorité

40
Ordonnanceur préemptif basé sur les priorités
Exemple (1/2) (Priorité supérieure)
Processus Temps Temps Priorité 1 E
d’exécution d’arrivage
2 C C
D
A 10 0 3
3 A
B 5 2 7 7 B
C 15 5 2 (Priorité inférieure)
D 1 10 2
E 3 15 1
On suppose que les priorités sont statiques

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

A B C D E

41
Ordonnanceur préemptif basé sur les priorités
Exemple (2/2)
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

A 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

Temps de séjour moyen=18,4


Temps d’attente moyen=11,6
7 commutations de contexte
42
Processus Temps Temps Priorité (Priorité supérieure)
d’exécution d’arrivage
1 E
A 10 0 3
2 D C
C
B 5 2 3
3 B A
A
C 15 5 2
(Priorité inférieure)
D 1 10 2
E 3 15 1
Utiliser priorité fixe et RR avec quantum = 5 ms
A A A A A C C C C C DC C C C E E E C C C C C C B B B B B A A A A A

A B C D E

Note : Placer le nouveau processus dans la file d’attente puis y remettre le processus suspendu
43
Processus Temps Temps Priorité (Priorité supérieure)
d’exécution d’arrivage
1 E
A 10 0 3
2 D C
C
B 5 2 3
3 B A
A
C 15 5 2
(Priorité inférieure)
D 1 10 2
E 3 15 1
Utiliser priorité fixe et RR avec quantum = 10 ms
A A A A A C C C C C C C C C C E E E D C C C C C B B B B B A A A A A

A B C D E

Que se passe si le temps d’exécution de E prend des heures ?? 44


Ordonnanceur basé sur les priorités avec
files d’attente à rétroaction ou retour (1/2)
Attribution et évolution des priorités
 Pour empêcher les processus de priorité élevée de s’exécuter
indéfiniment (privation de ressources ou famine), l’ordonnanceur
diminue régulièrement la priorité du processus en cours d’exécution.
 L’attribution et l’évolution des priorités dépendent des objectifs fixés et
de beaucoup de paramètres.
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. 45
Ordonnanceur Windows
 L’ordonnancement au niveau du SE Windows se base sur
l’algorithme priorité dynamique.
 Une priorité qui évolue au cours de l’exécution du processus.
 L’ordonnanceur parcourt chaque file en utilisant l’algorithme
du Tourniquet

46
Ordonnanceur Linux
 Une priorité est affectée à chaque processus
 La priorité la plus importante est celle qui est la plus élevée
 Un quantum est affecté à un processus selon sa priorité
 Un processus ayant une priorité de 10 aura un quantum de 100
ms.
 Après 10 ms, le quantum diminue de 1 ms
 Le processus ayant la note la plus élevée sera exécuté en
premier
 Note= priorité + quantum E

47
Exercice d’application
Soient trois processus A, B et C. Le processus A arrive en premier suivi
de B (20 msec après), puis C (46 msec après A). On suppose que
l’exécution du processus A nécessite 80 msec de temps d’exécution.
L’exécution du processus B nécessite d’abord 50 msec de temps
d’exécution, bloquera ensuite durant 20 msec pour une entrée/sortie,
puis exigera finalement 30 msec de temps d’exécution. L’exécution du
processus C nécessite 40 msec de temps d’exécution. Le temps de
changement de contexte est de 1 msec.
 Dessiner le diagramme de GANTT pour l’ordonnancement Round
Robin en considérant quantum = 30 msec, 50 msec et 20 msec.
 Calculer le temps de séjour de chaque processus A, B et C, le temps
moyen de séjour, le temps d’attente, le temps moyen
d’attente, et le nombre de changements de contexte
48

Vous aimerez peut-être aussi