Vous êtes sur la page 1sur 25

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

3 cas déclenchant un changement de contexte :


Restaurer l’état de PCB1
• Les interruptions
• Les déroutements
• Appel système 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
(lecture/écriture). 14
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)
 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

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
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
 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

Vous aimerez peut-être aussi