Vous êtes sur la page 1sur 40

Gestion des processus I Ordonnancement

HACHEM EL YOUSFI ALAOUI ENSET DE RABAT 1 GLR 2010 -2011

Concepts lmentaires
Programme: Un programme est une suite fige d'instructions, un ensemble statique. Processus: cest l'instance d'excution d'un programme dans un certain contexte pour un ensemble particulier de donnes. Espace adresse dun processus: ensembles des locations en mmoire auxquelles le processus est autoris accder = = = > Espace virtuel Temps partag: dans un espace multiprogramm, les diffrents processus doivent se partager laccs aux ressources (UCT, mmoire et priphriques) Une fraction de temps doit tre accord chacun des processus

Contexte dun processus


Contexte d'un processus: Le contexte d'un vnement inclut les circonstances et conditions qui l'entourent Cest lensemble des conditions sous lesquelles un dispositif est en train d'tre utilis. Il existe deux contextes : le contexte matriel et le contexte logiciel. Le contexte matriel: Etat des registres un instant t : Le contexte logiciel contient des informations sur les conditions et droits d'accs aux ressources de la machine . Le bloc de contrle d'un processus (en anglais Process Control Block ou PCB) est une structure de donnes qui contient toutes les informations relatives au contexte d'un processus.

PCB - Dtails
Le PCB est compos des lments fondamentaux suivants: Un tat Un espace d'adressage Gestion de la mmoire Table de fichiers ouverts Un ou plusieurs contexte(s) d'xecution Un compteur ordinal (PC) Des registres de donnes Une pile

Etats dun processus


Un processus peut tre dans lun des cinq :tats diffrents: nouveau, prt, lu(en excution), en attente, fini.

Processus Etats et transitions

Mcanisme de changement de contexte

Mcanisme de gestion des processus


Un processus est constitu dune alternance de sections durant lesquelles il est actif, en contrle de lUCT et en attente dE/S. Nous allons nous intresser deux mcanismes de gestion des processus Ordonnancement (Scheduling): Effectu par un rpartiteur quidcide quels processus doivent tre admis, lequel doit tre activ; etc. Synchronisation: certains procesus peuvent avoir accder aux mmes ressources et il faut grer les droits daccs.

Ordonnanceurs (schedulers)
Programmes qui grent lutilisation de ressources de l`ordinateur Dans un systme multiprogramm, n processus sont en concurrence pour laccs aux ressources. Un (au plus) de ces processus peut tre dans lUCT Plusieurs processeurs pourront tre en attente dE/S Dautres seront prts occuper lUCT. File dattente :
Une file dattente pour les processus prts pour accder lUCT. Une file dattente pour les processus en attente dun priphrique ou E/S

Ordonnancement de processus
(court terme)

Dans le cas 1 et 4 il y a ordonnancement de processus et l'ordonnancement est dit non-premptif Dans le cas 2 et 3il peut y avoir ordonnancement de processus et l'ordonnancement est dit premptif

Ordonnancement 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

Ordonnanceurs court et moyen terme

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).

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

Ordonnancement : Critres
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 processus 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

Ordonnancement : Critres

Utilisation UCT: pourcentage dutilisation

ceci est maximiser

Dbit = Throughput: nombre de processus qui compltent dans l unit de temps

ceci est maximiser

Temps de rotation (turnaround): temps terminaison moins temps arrive

minimiser minimiser

Temps dattente: attente dans la file prt

Temps de rponse (pour les systmes interactifs): le temps entre une demande et la rponse

minimiser

Ordonnancement: Algorithmes
FCFS ou PAPS First Come First Served SJF ou Plus court dabord Shortest Job First RR ou le tourniquet Round-Robin Ordonnancement par priorit avec/sans files d'attente multiples

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 24 P2 27 P3 30

Temps dattente pour P1= 0; P2= 24; P3= 27 Temps attente moyen: (0 + 24 + 27)/3 = 17

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 24

P2
27

P3
30

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

20

FCFS Scheduling (Cont.)

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


21

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

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

22

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

23

Example de SJF sans premption


Processus Arrive Cycle

P1 P2 P3 P4

0 2 4 5

7 4 1 4

SJF (sans premption)


P1 P3 P2 P4

3
P2 arr. P3 arr.

7 P4 arr

12

16

Temps dattente moyen = (0 + 6 + 3 + 7)/4 = 4

24

Exemple de SJF avec premption SRTF


Processus Arrive Cycle

P1 P2 P3 P4 SJF (premptive)
P1 0 P2 P3 P2

0 2 4 5

7 4 1 4

P4 11

P1 16

P2 arr. P3 arr. P4 arr

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

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

25

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

26

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[6] P[5] P[4]
27

P[2] P[3]

La file prt est un cercle (dont RR)

Exemple: Tourniquet Quantum = 20


Processus Cycle

P1 P2 P3 P4

53 17 68 24

P1

P2

P3

P4

P1

P3

P4

P1

P3

P3

20

37

57

77

97 117

121 134 154 162

Normalement, temps de rotation (turnaround) plus lv que SJF mais temps attente moyen meilleur contrlez!

28

Un petit quantum augmente les commutations de contexte (temps de SE)

29

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

30

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)

31

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

32

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

33

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

34

Ordonnancement avec files multiples

35

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

36

Files multiples et retour

PRIO = 0

PRIO = 1

PRIO = 2

37

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

38

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.

39

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

40

Vous aimerez peut-être aussi