You are on page 1of 58

Chapitre 2

Systme dExploitation
Gestion des Processus

Concepts importants

Processus

tats et transitions dtat des processus


Process Control Block
Commutation de processus

Cration, terminaison, hirarchie

Sauvegarde, rechargement de PCB

Files dattente de processus et PCB


Ordonnanceurs court, moyen, long terme
Processus communicants

Processus et terminologie

(aussi appel job, task, user program)


Concept de processus: un programme en
excution

Possde des ressources de mmoire, priphriques, etc

Ordonnancement de processus

Oprations sur les processus

Processus cooprants

Processus communicants
3

Espace de travail

Les processus sont


composs dun
espace de travail en
mmoire form de 3
segments :

Pile d'excution

Donnes
Code

Cration de processus

Les processus peuvent crer dautres


processus, formant une hirarchie
(instruction fork ou semblables)

Arbre de
processus
en UNIX

Terminaison de processus

Un processus excute sa dernire


instruction
pourrait passer des donnes son parent
ses ressources lui sont enleves

Le parent termine lexcution dun fils


(avortement) pour raisons diffrentes
le fils a excd ses ressources
le fils n`est plus requis

etc.

tat de processus

IMPORTANT

Au fur et a mesure quun processus


sexcute, il change dtat
nouveau: le processus vient dtre cr
excutant-running: le processus est en train
dtre excut par l UCT
attente-waiting: le processus est en train
dattendre un vnement (p.ex. la fin d une
opration dE/S)
prt-ready: le processus est en attente dtre
excut par l UCT
terminated: fin dexcution

Diagramme de transition d`tats d`un processus

Ordonnanceur = angl. scheduler

tats Nouveau, Termin:

Nouveau

Le SE a cr le processus

mais ne sest pas encore engag excuter le


processus (pas encore admis)

a construit un identificateur pour le processus


a construit les tableaux pour grer le processus

pas encore allou des ressources

La file des nouveaux travaux est souvent appele


spoule travaux (job spooler)

Termin:

Le processus n est plus excutable, mais ses donnes


sont encore requises par le SE (comptabilit, etc.)

Transitions entre processus

Prt Excution

Lorsque l ordonnanceur UCT choisit un


processus pour excution

Excution Prt

Rsultat dune interruption cause par un


vnement indpendant du processus

Il faut traiter cette interruption, donc le


processus courant perd lUCT
Cas important: le processus puis son intervalle
de temps (minuterie)

10

Transitions entre processus

Excution Attente

Lorsquun processus fait requte dun service


du SE que le SE ne peut offrir immdiatement
(interruption cause par le processus lui-mme)

un accs une ressource pas encore disponible


initie une E/S: doit attendre le rsultat
a besoin de la rponse dun autre processus

Attente Prt

lorsque l'vnement attendu se produit

11

Sauvegarde dinformations processus

En multiprogrammation, un processus excute


sur lUCT de faon intermittente
Chaque fois quun processus reprend lUCT
(transition prt excution) il doit la reprendre
dans la mme situation o il la laisse (mme
contenu de registres UCT, etc.)
Donc au moment o un processus sort de ltat
excution il est ncessaire de sauvegarder ses
informations essentielles, quil faudra rcuprer
quand il retourne cet tat

12

PCB = Process Control Block:

Reprsente
la situation
actuelle
dun
processus,
pour le
reprendre
plus tard

Registres UCT

13

Process Control Block (PCB)

IMPORTANT

pointeur: les PCBs sont rangs dans des


listes enchanes ( voir)
tat de processus: ready, running, waiting
compteur programme: le processus doit
reprendre l instruction suivante
autres registres UCT
bornes de mmoire
fichiers quil a ouvert
etc.,

14

Commutation de processus

Aussi appel commutation de contexte ou


context switching
Quand lUCT passe de lexcution dun
processus 0 lexcution dun proc 1, il faut
mettre jour le PCB de 0
sauvegarder le PCB de 0
reprendre le PCB de 1, qui avait t
sauvegard avant
remettre les registres d UCT, compteur
d instructions etc. dans la mme situation
qui est dcrite dans le PCB de 1
15

Commutation de processeur (context


switching)

Il se peut que beaucoup de temps passe avant le retour au


processus 0, et que beaucoup dautres proc soient excuts dans
entre temps

16

Le PCB n est pas la seule information


sauvegarder

Il faut aussi sauvegarder ltat des


donnes du programme
Ceci se fait normalement en gardant
limage du programme en mmoire
primaire ou secondaire
Le PCB pointera cette image

17

La pile dun processus aussi sauvegarder

Quand un processus fait appel une procdure, une mthode,


etc., il est ncessaire de mettre dans une pile ladresse laquelle
le processus doit retourner aprs avoir termin cette procdure,
mthode, etc.
Aussi on met dans cette pile les variables locales de la procdure
quon quitte, les paramtres, etc., pour les retrouver au retour
Chaque lment de cette pile est appel stack frame ou cadre de
pile
Donc il y a normalement une pile dadresses de retour aprs
interruption et une pile dadresses de retour aprs appel de
procdure
Ces deux piles fonctionnent de faon semblable, mais sont
normalement spares
Les informations relatives ces piles (base, pointeur) doivent
aussi tre sauvegardes au moment de la commutation de
contexte

18

La Pile dun processus


P

Appel A

A
Appel B

B
Donnes B

Donnes A

Donnes P
PILE

19

Commutation de processus
Comme lordinateur na, la plupart du temps,
quun processeur, il rsout ce problme grce
un pseudo-paralllisme
P2
P1
systme

Figure 1 Le multi-tche

20

Files dattente

IMPORTANT

Les ressources dordinateur sont souvent


limites par rapport aux processus qui en
demandent
Chaque ressource a sa propre file de
processus en attente
En changeant dtat, les processus se
dplacent d une file l`autre
File prt: les processus en tat prt=ready
Files associs chaque unit E/S
etc.

21

Files dattente
Ce sont les PCBs qui sont dans les files dattente
file prt

Nous ferons lhypothse que le premier processus dans une file est celui
qui utilise la ressource: ici, proc7 excute, proc3 utilise disque 0, etc.

22

Les PCBs
Les PCBs ne sont pas dplacs en mmoire pour
tre mis dans les diffrentes files:
ce sont les pointeurs qui changent.
term. unit 0

ready

. . . PCB2 PCB3 PCB4 PCB5 PCB6 PCB7

. . .

PCB14

disk unit 0
23

Ordonnanceurs (schedulers)

Programmes qui grent lutilisation de


ressources de l`ordinateur
Trois types d`ordonnanceurs :
court terme = ordonnanceur processus:
slectionne quel processus doit excuter la
transition prt excution
long terme = ordonnanceur travaux:
slectionne quels processus peuvent excuter
la transition nouveau prt (vnement
admitted) (de spoule travaux file prt)
moyen terme: nous verrons

24

Ordonnanceur travaux = long terme


et ordonnanceur processus = court terme
Ordonnanceur travaux

Ordonnanceur processus

25

Ordonnanceurs

Lordonnanceur court terme est excut


trs souvent (millisecondes)

doit tre trs efficace

Lordonnanceur long terme doit tre


excut beaucoup plus rarement: il
contrle le niveau de multiprogrammation
doit tablir une balance entre travaux lis
l UCT et ceux lis l E/S
de faon que les ressources de l ordinateur
soient bien utilises

26

Ordonnancement de processus (court terme)

Disponibilit Ress.

27

Ordonnanceur moyen terme

Le manque de ressources peut parfois


forcer le SE suspendre des processus
ils seront plus en concurrence avec les autres
pour des ressources
ils seront repris plus tard quand les ressources
deviendront disponibles

Ces processus sont enlevs de mmoire


centrale et mis en mmoire secondaire,
pour tre repris plus tard

swap out, swap in , va-et-vient


28

Ordonnanceurs court et moyen terme


moyen

court

29

Ordonnancement Processus : Concepts de


base

La multiprogrammation est conue pour obtenir


une utilisation maximale des ressources, surtout
lUCT
Lordonnanceur UCT est la partie du SE qui dcide
quel processus dans la file ready/prt obtient
l UCT quand elle devient libre

doit viser une utilisation optimale de l UCT

lUCT est la ressource la plus prcieuse dans un


ordinateur, donc nous parlons delle

Cependant, les principes que nous verrons sappliquent


aussi l ordonnancement des autres ressources
(units E/S, etc).

30

Les cycles dun processus

Cycles (bursts) dUCT et E/S: lexcution dun processus


consiste de squences dexcution sur UCT et dattentes
E/S

31

Quand invoquer lordonnanceur

L ordonnanceur doit prendre sa dcision chaque fois


que le processus excutant est interrompu, c-.-d.

un processus se se prsente en tant que nouveau ou se


termine ou
un processus excutant devient bloqu en attente
un processus change dexcutant/running prt/ready
un processus change de attente prt/read
en conclusion, tout vnement dans un systme cause une
interruption de lUCT et lintervention de lordonnanceur, qui
devra prendre une dcision concernant quel proc ou fil aura
lUCT aprs

Premption: on a premption dans les derniers deux cas si on


enlve lUCT un processus qui lavait et peut continuer sen
servir
Dans les 1ers deux cas, il ny a pas de premption

32

Critres dordonnancement

Il y aura normalement plusieurs processus


dans la file prt
Quand lUCT devient disponible, lequel choisir?
Lide gnrale est deffectuer le choix dans
lintrt de lefficacit dutilisation de la
machine
Mais cette dernire peut tre juge selon
diffrents critres
33

Critres dordonnancement

Utilisation UCT: pourcentage dutilisation


Dbit = Throughput: nombre de processus qui
compltent dans l unit de temps
Temps de rotation = turnaround: le temps pris
par le proc de son arrive sa terminaison.
Temps dattente: attente dans la file prt
(somme de tout le temps pass en file prt)

Temps de rponse (pour les systmes


interactifs): le temps entre une demande et la
rponse

34

Critres dordonnancement: maximiser/minimiser

Utilisation UCT: pourcentage dutilisation

Dbit = Throughput: nombre de processus qui


compltent dans l unit de temps

minimiser

Temps dattente: attente dans la file prt

ceci est maximiser

Temps de rotation (turnaround): temps terminaison


moins temps arrive

ceci est maximiser

minimiser

Temps de rponse (pour les systmes interactifs): le


temps entre une demande et la rponse

minimiser

35

Premier arrive, premier servi (First come, first serve, FCFS)


Exemple:

Processus
Temps de cycle
P1
24
P2
3
P3
3
Si les processus arrivent au temps 0 dans lordre: P1 , P2 , P3
Le diagramme Gantt est:
P1
0

P2
24

P3
27

30

Temps dattente pour P1= 0; P2= 24; P3= 27


Temps attente moyen: (0 + 24 + 27)/3 = 17
36

Premier arrive, premier servi

Utilisation UCT = 100%


Dbit = 3/30 = 0,1

3 processus complts en 30 units de temps

Temps de rotation moyen: (24+27+30)/3 = 27

P1
0

P2
24

P3
27

30

37

Tenir compte du temps darrive!

Dans le cas o les processus arrivent


moment diffrents, il faut soustraire les
temps darrive
Exercice: rpter les calculs si:
P0 arrive temps 0
P1 arrive temps 2
P3 arrive temps 5

38

FCFS Scheduling (Cont.)


Si les mmes processus arrivent 0 mais dans lordre
P2 , P3 , P1 .
Le diagramme de Gantt est:
P2
0

P3
3

P1
6

30

Temps dattente pour P1 = 6 P2 = 0 P3 = 3


Temps moyen dattente: (6 + 0 + 3)/3 = 3
Beaucoup mieux!
Donc pour cette technique, le temps dattente
moyen peut varier grandement
39

Plus Court dabord = Shortest Job First (SJF)

Le processus le plus court part le


premier
Optimal en principe du point de vue
du temps dattente moyen
(v.

le dernier exemple)

Mais comment savons-nous

40

SJF avec premption (rquisition) ou non

Avec premption: si un processus qui dure


moins que le restant du processus courant
se prsente plus tard, lUCT est donne
ce nouveau processus

SRTF: shortest remaining-time first

Sans premption: on permet au processus


courant de terminer son cycle

Observation: SRTF est plus logique car de toute faon le


processus excutant sera interrompu par larrive du
nouveau processus

Il est retourn ltat prt

41

Example de SJF sans premption


ProcessusArrive

Cycle

P1

P2

P3

P4

SJF (sans premption)

P1
0

P3
7

P2
8

P4
12

16

P2 arr
. P3 arr. moyen
P4 arr = (0 + 6 + 3 + 7)/4 = 4
Temps
dattente

42

Exemple de SJF avec premption SRTF


ProcessusArrive

P1

P2

P3

P4

SJF (premptive)

P1
0

Cycle

P2
2

P3
4

P2
5

P4
7

P1
11

16

Temps
moyen d`attente = (9 + 1 + 0 +2)/4 = 3
P arr. P arr. P arr

P1 attend de 2 11, P2 de 4 5, P4 de 5 7

43

Le plus court dabord SJF: critique

Difficult destimer la longueur lavance


Les processus longs souffriront de famine lorsquil
y a un apport constant de processus courts
La premption est ncessaire pour environnements
temps partag
Un processus long peut monopoliser lUCT sil est le
1er entrer dans le systme et il ne fait pas dE/S

Il y a assignation implicite de priorits:


prfrences aux travaux plus courts

44

Tourniquet = Round-Robin (RR)


Le plus utilis en pratique

Chaque processus est allou un quantum de


temps (p.ex. 10-100 millisecs.) pour sexcuter

(tranche de temps)

Sil sexcute pour un quantum entier sans autres


interruptions, il est interrompu par la minuterie et
l UCT est donne un autre processus
Le processus interrompu redevient prt ( la fin de la file)
Mthode premptive
P[0] P[1]
P[7]

P[2]

P[6]

P[3]

La file prt est un


cercle (dont RR)

P[5] P[4]

45

Exemple: Tourniquet Quantum = 20


Processus
P1

53

P2

17

P3

68

P4

24

P1

Cycle

P2

P3

P4

P1

P3

P4

P1

P3

P3

Normalement,
0
20 37
57
77 97 117 121 134 154 162
temps de rotation (turnaround) plus lv que SJF
mais temps attente moyen meilleur contrlez!

46

Un petit quantum augmente les commutations


de contexte (temps de SE)

47

Exemple pour voir limportance dun bon choix


de quantum

Trois cycles:

A, B, C, toutes de 10

Essayer avec:
q=1
q=10

Dans ce deuxime cas, tourniquet


fonctionne comme FIFO et le temps de
rotation moyen est meilleur

48

Choix du quantum pour le tourniquet

doit tre beaucoup plus grand que le temps


requis pour excuter le changement de
contexte
doit tre un peu plus grand que le cycle
typique (pour donner le temps la plupart des processus
de terminer leur cycle, mais pas trop pour viter de pnaliser
les processus courts)

49

Priorits

Affectation dune priorit chaque


processus (p.ex. un nombre entier)

souvent les petits chiffres dnotent des hautes


priorits

0 la plus haute

LUCT est donne au processus prt avec


la plus haute priorit
avec ou sans premption
il y a une file prt pour chaque priorit

50

Problme possible avec les priorits

Famine: les processus moins prioritaires


narrivent jamais excuter
Solution: vieillissement:
modifier la priorit dun processus en fonction
de son ge et de son historique dexcution
le processus change de file d`attente

Plus en gnral, la modification dynamique


des priorits est une politique souvent
utilise

51

Files plusieurs niveaux (multiples)

La file prt est spare en plusieurs files, p.ex.


travaux darrire-plan (background - batch)
travaux de premier plan (foreground - interactive)
Chaque file a son propre algorithme d ordonnancement,
p.ex.
FCFS pour arrire-plan
tourniquet pour premier plan
Comment ordonnancer entre files?
Priorit fixe chaque file famine possible, ou
Chaque file reoit un certain pourcentage de temps UCT, p.ex.

80% pour arrire-plan

20% pour premier plan

52

Ordonnancement avec files multiples

53

Files multiples et retour

Un processus peut passer d une file


l autre, p.ex. quand il a pass trop de
temps dans une file
dterminer:

nombre de files
algorithmes d ordonnancement pour chaque file
algorithmes pour dcider quand un proc doit passer
d une file l`autre
algorithme pour dterminer, pour un proc qui devient
prt, sur quelle file il doit tre mis

54

Files multiples et retour


PRIO = 0

PRIO = 1

PRIO = 2

55

Exemple de files multiples retour

Trois files:

Q0: tourniquet, quantum 8 msecs


Q1: tourniquet, quantum 16 msecs
Q2: FCFS

Ordonnancement:

Un nouveau processus entre dans Q0, il reoit 8 msecs


d UCT
S il ne finit pas dans les 8 msecs, il est mis dans Q1, il
reoit 16 msecs additionnels
S il ne finit pas encore, il est interrompu et mis dans Q2
Si plus tard il commence demander des quantums
plus petits, il pourrait retourner Q0 ou Q1

56

En pratique...

Les mthodes que nous avons vu sont


toutes utilises en pratique (sauf plus
court servi pur qui est impossible)
Les SE sophistiqus fournissent au grant
du systme une librairie de mthodes, quil
peut choisir et combiner au besoin aprs
avoir observ le comportement du systme
Pour chaque mthode, plusieurs params
sont disponibles: p.ex. dure du quantum,
coefficients, etc.
57

Aussi

Notre tude des mthodes dordonnancement est thorique,


ne considre pas en dtail tous les problmes qui se
prsentent dans lordonnancement UCT
P.ex. les ordonnanceurs UCT ne peuvent pas donner lUCT
un processus pour tout le temps dont il a besoin
Car en pratique, lUCT sera souvent interrompue par quelque
vnement externe avant la fin de son cycle
Cependant les mmes principes dordonnancement
sappliquent units qui ne peuvent pas tre interrompues,
comme une imprimante, une unit disque, etc.
Dans le cas de ces units, on pourrait avoir aussi des infos
compltes concernant le temps de cycle prvu, etc.
Aussi, cette tude ne considre pas du tout les temps
dexcution de lordonnanceur

58

You might also like