Vous êtes sur la page 1sur 10

Systmes dexploitation des Ordinateurs

19

CHAPITRE III : GESTION DES PROCESSUS

3.1 CONCEPT DE PROCESSUS :


On peut trouver plusieurs appellations possibles des activits que peut avoir un processeur.
Un systme de traitement par lots excute des travaux, tandis que un systme en temps
partag possde des programmes utilisateurs ou des tches.

3.1.1 Dfinition :
On peut dfinir un processus (process) comme un programme en excution. Autrement dit,
un programme par lui-mme nest pas un processus. Un programme est une entit passive,
comme le contenu dun fichier stock sur disque, tandis quun processus est une entit
active, avec un compteur dinstructions spcifiant linstruction suivante excuter et un
ensemble de ressources associes.
Evidemment, il est possible davoir plusieurs processus diffrents associs un mme
programme. Cest le cas , par exemple, de plusieurs utilisateurs qui excutent chacun une
copie du programme de messagerie. Il est galement courant quun processus gnre son
tour plusieurs processus lors de son excution.

3.1.2 Etats dun processus :


Durant son sjour dans un SE, un processus peut changer dtat plusieurs reprises. Ces
tats peuvent tre rsums dans le schma suivant :

Nouveau

Termin
admis
lu
Prt

Terminaison dun
vnement ou E/S

interrompu

exit
En excution

Attente dun vnement ou E/S


En Attente
Fig. 3.1 Etats dun processus.

Voici une brve explication de chacun de ces tats :

LOUKAM Mourad

20

Nouveau : Le processus vient dtre cr.

Prt : le processus est plac dans la file dattente des processus prts, en attente
daffectation du processeur.

En excution : le processus a t affect un processeur libre. Ses instructions sont en


excution.

En attente : Le processus attend quun vnement se produise, comme lachvement


dune opration dE/S ou la rception dun signal.

Termin : le processus a termin son excution.

3.1.3 Bloc de contrle de processus :


Pour suivre son volution, le SE maintient pour chaque processus une structure de donnes
particulire appele bloc de contrle de processus (PCB : Process Control Bloc) et dont le
rle est de reconstituer tout le contexte du processus.

Numro de processus
Etat du processus
Compteur dinstruction

Registres

Limites de la mmoire
Liste des fichiers ouverts

Fig. 3.2 Bloc de contrle de processus.

Les informations contenues dans le PCB, et permettant de reconstituer le contexte dun


processus, sont multiples. On peut citer entre autres :

Ltat du processus : Il peut avoir lune des valeurs suivantes : Nouveau, Prt, en
excution ou en attente.

Le compteur dinstructions : Le compteur indique ladresse de la prochaine instruction


excuter par le processus.

Les registres du processeur : Les registres varient en nombre et en type en fonction de


larchitecture de lordinateur. Ils englobent des accumulateurs, des registres dindex, des
pointeurs de pile et des registres usage gnral. Ces informations doivent tre
sauvegardes avec le compteur dinstructions quand il se produit une interruption, afin
de permettre au processus de poursuivre correctement son excution aprs la reprise.

Informations sur le scheduling du processeur : Ces informations comprennent la priorit


du processus, les pointeurs sur les files dattente de scheduling,

Systmes dexploitation des Ordinateurs

21

Informations sur la gestion de la mmoire : Ces informations peuvent inclure les valeurs
de registres de base et limites, les tables de pages ou les tables de segments selon le
systme de mmoire utilis.

Informations sur ltat des E/S : Les fichiers ouverts, la liste des priphriques dE/S.

3.2 SCHEDULING DE PROCESSUS :


3.2.1 Files dattentes de scheduling :
Pour grer les processus durant leur sjour, le SE maintient plusieurs files dattente. On peut
citer entre autres :

File dattente des processus prts : Cette file contient tous les processus en attente du
processeur.

File dattente de priphrique : Pour rguler les demandes dallocation des diffrents
priphriques, on peut imaginer une file dattente pour chaque priphrique. Quand un
processus demande une opration dE/S, il est mis dans la file dattente concerne.

Concrtement une file dattente est reprsente par une liste chane de PCB, comme le
montre le schma suivant.

File dattente des processus prts :


PCB

PCB

PCB

PCB

PCB

PCB

PCB

Tte
Queue

File dattente dun priphrique :


PCB
Tte
Queue

Fig. 3.3 Files dattente de scheduling.

LOUKAM Mourad

22

Un nouveau processus est initialement plac dans la file dattente des processus prts. Il
attend dans cette file jusqu ce quil soit slectionn pour son excution et quon lui accorde
le processeur. Une fois quon a allou le processeur au processus et que celui-ci est en
cours dexcution, il pourrait se produire lun des vnements suivants :

Le processus pourrait mettre une requte dE/S et ensuite plac dans une file dattente
dE/S.

Le processus pourrait crer un nouveau processus et attendre la fin de celui-ci.

Le processus pourrait tre enlev du processeur ; on dit aussi que le processeur a t


rquisitionn. Dans ce cas, le processus est remis dans la file dattente des processus
prts.

Le processus pourrait se terminer.

Les diffrents tats de transition du processus entre les files dattente sont rsums par la
figure suivante.

File dattente des


processus prts

Processeur

E/S

File dattente dE/S

Requte dE/S

Tranche de temps expir

Le fils termine

Le fils sexcute

Le signal arrive

Cration dun fils

En attente dun signal

Fig. 3.4 Files dattente de scheduling des processus.

3.2.2 Le scheduler :
Le scheduler est un programme du SE qui soccupe de choisir , selon une politique de
schedulind donne, un processus parmi les processus prts pour lui affecter le processeur.

3.2.3 Commutation de contexte :


Le fait de commuter le processeur sur un autre processus demande de sauvegarder ltat de
lancien processus et de charger ltat sauvegard par le nouveau processus. Cette tche
est connue sous le nom de commutation de contexte.

Systmes dexploitation des Ordinateurs

23

3.2.4 Les critres de scheduling :


Les divers algorithmes de scheduling du processeur possdent des proprits diffrentes et
peuvent favoriser une classe de processus plutt quune autre. Pour choisir quel algorithme
utiliser dans une situation particulire, nous devons tenir compte des proprits des divers
algorithmes.
Plusieurs critres ont t proposs pour comparer et valuer les performances des
algorithmes de scheduling du processeur. Les critres les plus souvent utiliss sont :

Utilisation du processeur : Un bon algorithme de scheduling sera celui qui maintiendra le


processeur aussi occup que possible.

Capacit de traitement : Cest la quantit de processus termins par unit de temps.

Temps de restitution : Cest le temps scoulant entre la soumission du travail et sa


terminaison.

Temps dattente : Cest le temps pass attendre dans la file dattente des processus
prts.

Temps de rponse : Cest le temps pass dans la file dattente des processus prts
avant la premire excution.

3.3 LES ALGORITHMES DE SCHEDULING :


3.3.1 Lalgorithme du Premier Arriv Premier Servi (FCFS) :
Lalgorithme de schedulind du processeur le plus simple est lalgorithme du Premier Arriv
Premier Servi (First Come First Served : FCFS). Avec cet algorithme, on alloue le
processeur au premier processus qui le demande. Limplmentation de la politique FCFS est
facilement gre avec une file dattente FIFO. Quand un processus entre dans la file
dattente des processus prts, son PCB est enchane la queue de la file dattente. Quand
le processeur devient libre, il est allou au processeur en tte de la file dattente.
Exemple : Trois processus P1, P2 et P3 arrivent dans cet ordre au systme. Leurs dures
dexcution sont respectivement : 24, 3, 3 units de temps. Pour reprsenter lhistorique
doccupation du processeur, on utilise le diagramme suivant, appel diagramme de Gantt :
Diagramme de Gantt :
P1
0

P2
24

P3
27

30

Ce diagramme montre que le processus P1 occupe le processeur de linstant 0 jusqu


linstant 24. A linstant 24, le processeur devient occup par le processus P2, puis linstant
27 il sera suivi du processus P3.
Le temps dattente est gal 0 pour le processus P, 24 pour le processus P2 et 27 pour le
processus P3. Le temps dattente moyen est gal : (0+24+27)/3, soit 17 units de temps.

LOUKAM Mourad

24

Si les processus taient arrivs dans lordre P2, P3 et P1, les rsultats seraient diffrents :
Diagramme de Gantt :
P2
0

P3

P1

30

Le temps moyen dattente serait : (0+3+6)/3=3 units.


Ainsi le temps moyen dattente avec une politique FCFS nest gnralement pas minimal et
peut varier substantiellement si les dures dexcution des processus varient beaucoup.
Critique de la mthode :
La mthode FCFS tend pnaliser les travaux courts : Lalgorithme du FCFS neffectue pas
de rquisition. Cest dire quune fois que le processeur a t allou un processus, celuici le garder jusqu ce quil le libre, soit en terminant, soit aprs avoir demand une E/S.
Lalgorithme FCFS est particulirement incommode pour les systmes temps partag, o il
est important que lutilisateur obtienne le processeur des intervalles rguliers. Il peut
paratre dsastreux de permettre quun processus garde le processeur pendant une priode
tendue.

3.3.2 Lalgorithme du Plus Court dabord (SJF) :


Cet algorithme (en anglais Shortest Job First : SJF) affecte le processeur au processus
possdant le temps dexcution le plus court. Si plusieurs processus ont la mme dure, une
politique FIFO sera alors utilise pour les dpartager.
Exemple : On soumet au systme quatre processus P1, P2, P3 et P4 dont les dures
dexcution sont donnes par le tableau suivant :
Processus
P1
P2
P3
P4

Dure dexcution
6
8
7
3

Lalgorithme du travail le plus court donnera alors le rsultat suivant :


Diagramme de Gantt :
P4
0

P1
3

P3
9

P2
16

24

Le temps moyen dattente est = (0+3+9+16)/4=7. Alors que si on avait choisi une politique
FCFS, le temps moyen serait de : 10.25 units de temps.
Critique de la mthode :

Systmes dexploitation des Ordinateurs

25

Il a t prouv que lalgorithme SJF est optimal dans le temps dans le sens quil obtient le
temps dattente le plus court pour un ensemble de processus donn. Toutefois, cet
algorithme est difficile implmenter pour une raison simple : Comment peut-on connatre le
temps dexcution dun processus lavance ?.

3.3.3 Scheduling avec priorit :


Cet algorithme associe chaque processus une priorit, et le processeur sera affect au
processus de plus haute priorit. Cette priorit varie selon les systmes et peut aller de 0
127.
Les priorits peuvent tre dfinies en fonction de plusieurs paramtres : le type de
processus, les limites de temps, les limites mmoires, etc.
Exemple : On dispose de 5 processus ayant des priorits diffrentes, comme le montre ce
tableau :
Processus
P1
P2
P3
P4
P5

Dure dexcution
10
1
2
1
5

Priorit
2
4
2
1
3

Diagramme de Gantt :
P2
0

P5
1

P1
6

P3
16

P4
18

19

Le temps moyen dattente est = (0+1+6+16+18)/5=8.2 units de temps.


Critique de la mthode :
Une situation de blocage peut survenir si les processus de basse priorit attendent
indfiniment le processeur, alors que des processus de haute priorit continuent affluer.
Pour viter une telle situation, on peut utiliser la technique dite du vieillissement. Elle
consiste incrmenter graduellement la priorit des processus attendant dans le systme
pendant longtemps. Par exemple, nous pourrions incrmenter de 1 la priorit dun processus
en attente toutes les 15 minutes. En fin de compte, mme un processus ayant une priorit
initiale gale 0 aurait la plus haute priorit dans le systme et serait excut.

3.3.4 Lalgorithme de Round Robin (Tourniquet) :


Lalgorithme de scheduling du tourniquet, appel aussi Round Robin, a t conu pour des
systmes temps partag. Il alloue le processeur aux processus tour de rle , pendant
une tranche de temps appele quantum.
Dans la pratique le quantum stale entre 10 et 100 ms.

LOUKAM Mourad

26

Exemple : On dispose de 3 processus P1, P2 et P3 ayant comme dure dexcution,


respectivement 24, 3 et 3 ms. En utilisant un algorithme Round Robin, avec un quantum de
4 ms, on obtient le diagramme de Gantt suivant :
Diagramme de Gantt :
P1
0

P2
4

P3
7

P1
10

P1
17

P1
18

P1
22

P1
26

30

Le temps moyen dattente est de : (6+4+7)/3 = 17/3 = 5.66 ms

La performance de lalgorithme de Round Robin dpend largement de la taille du quantum.


Si le quantum est trs grand , la politique Round Robin serait similaire celle du FCFS. Si le
quantum est trs petit, la mthode Round Robin permettrait un partage du processeur :
Chacun des utilisateurs aurait limpression de disposer de son propre processeur .
Cependant le quantum doit tre choisi de sorte ne pas surcharger le systme par de
frquentes commutations de contexte.
Exemple : On dispose dun processus P dont le temps dexcution est de 10 ms. Calculons
le nombre de commutations de contexte ncessaires pour un quantum gal respectivement
: 12, 6 et 1.
Quantum=12

Nombre de commutations de contexte = 1


Quantum=6

Nombre de commutations de contexte = 2


Quantum=1

Nombre de commutations de contexte = 9

3.3.5 Scheduling avec files dattente multiniveaux :


Une autre classe dalgorithmes de scheduling a t dveloppe pour des situations o on
peut facilement classer les processus dans des groupes diffrents. Par exemple, il serait
intressant de faire une distinction entre les processus de premier plan (interactifs) et les
processus darrire plan (traitement par lot). En effet, ces deux types de processus
possdent des besoins diffrents en ce qui concerne le temps de rponse et ils pourraient
donc devoir tre scheduls diffremment. De plus les processus de premier plan peuvent
tre prioritaires par rapport aux processus darrire plan.

Systmes dexploitation des Ordinateurs

27

Ainsi, un algorithme de scheduling avec des files dattente multiniveaux dcoupe la file
dattente des processus prts en plusieurs files dattentes spares. La figure suivante
doonn un exemple de dcoupage de ces files dattente :

Processus systme
Priorit

Processus interactifs
Processus batch
Processus utilisateurs

Fig. 3.5 Sheduling avec files dattente multiniveaux.

Les processus sont en permanence assigns une file dattente en se basant gnralement
sur certaines proprits du processus, comme : le type de processus, la taille de la
mmoire, la priorit, etc. Chaque file dattente possde son propre algorithme de
scheduling. Par exemple , la file dattente des processus systmes est schedule selon
algorithme de plus haute priorit, celles des processus interactifs est gre selon
lalgorithme Round Robin et la file des processus batch est gre selon lalgorithme FCFS.
Dautre part, il doit y avoir un scheduling entre les files dattente elles-mme.
Observons par exemple, lensemble des files dattente multiniveaux suivants :
1.
2.
3.
4.

Processus systmes
Processus interactifs
Processus batch
Processus utilisateurs

Chaque file dattente est absolument prioritaire par rapport aux files dattente de niveau
infrieur. Par exemple, aucun processus de la file dattente des processus batch ne pourra
sexcuter moins les files dattente des processus systme et interactifs ne soient toutes
vides. De plus, si un processus interactif arrive au systme, alors quun processus batch est
en train de sexcuter, celui-ci doit tre interrompu.
Une autre manire de procder serait daffecter des tranches de temps aux files dattente.
Chaque file dattente obtient une certaine partie du temps processeur, lequel doit se
scheduler entre les diffrents processus qui la composent. Par exemple, on peut attribuer
80% du temps processeur la file dattente des processus de premier plan et 20% pour la
file dattente des processus darrire plan.

3.3.6 Scheduling avec files dattente multiniveaux et feedback :

LOUKAM Mourad

28

Normalement, dans un algorithme avec des files dattente multiniveaux, les processus sont
assigns en permanence une file dattente ds quils rentrent dans le systme. Les
processus ne se dplacent pas entre les files dattente. Cette organisation possde
lavantage dune basse surcharge due au scheduling, mais elle manque de souplesse.
Ainsi, le scheduling avec des files dattente feedback multiniveaux permet aux processus de
se dplacer entre les files dattente. Lide revient sparer les processus en fonction de
lvolution de leurs caractristiques dans le systme.
Exemple : Un systme est dot de 3 files dattentes mutiniveaux : File 0, File 1 et File 2. La
file 0 est la plus prioritaire. Les files 0 et 1 sont gres selon la politique Round Robin. La file
2 est gre selon la technique FCFS.

File dattente 0 Quantum = 8


Priorit
File dattente 1 Quantum = 16

File dattente 2 FCFS

Un processus entrant dans le systme sera rang dans la file dattente 0. On donne une
tranche de temps de 8 ms au processus. Sil ne finit pas, il est dplac vers la file dattente
1. Si la filme dattente 0 est vide, on donne une tranche de temps de 16 ms au processus en
tte de la file 1. Sil ne termine pas, il est interrompu et il est mis dans la file dattente 2. Les
processus de la file dattente 2 sont excutes seulement quand les files 0 et 1 sont vides.