Você está na página 1de 10

Gestion des processus

4.1 Introduction
Dans un systme multitche, la ressource la plus importante dune machine est le processeur. Cette
ressource est alloue un et un processus slectionn parmi un ensemble des processus ligibles. Par
consquent, il convient bien grer ce dernier afin de le rendre plus productif. En effet, un systme
dexploitation dispose dun module qui soccupe de lallocation du processeur en loccurrence le
Dispatcheur. Ce module est excut chaque fois quun processus se termine ou se bloque dans le but
de rquisitionner le processeur pour un autre processus. En plus de ce Dispatcheur, un systme
dexploitation dispose dun autre module permettant ainsi la mise en ordre des processus qui
demandent le processeur.

4.2 Notion de processus


Un processus est une entit dynamique qui matrialise un programme en cours d'excution avec ses
propres ressources physiques (mmoire, processeur, entre/sortie, ) et logiques (donnes, variables,
). Contrairement un programme (texte excutable) qui a une existence statique.
Le systme dexploitation manipule deux types de processus :
- Processus systme : processus lanc par le systme (init processus pre des tous les
processus du systme)
- Processus utilisateur : processus lance par lutilisateur (commande utilisateur)

Ds sa cration, un processus reoit les paramtres suivants :


PID : identificateur du processus (numro unique)
PPID : identificateur du processus pre
UID : identificateur de lutilisateur qui a lanc le processus
GID : identificateur du groupe de lutilisateur qui a lanc le processus

P1

N1

P2

N2

N3

P4

P7

Processus pre

P3

P5

P6

- Il existe des appels systme permettant de crer un processus,


charger son contexte et lancer son excution (fork, exec sous Unix).
- Un processus peut (pre) crer dautres processus (fils) qui hrite
les descripteurs de son pre. Ce dernier son tour cre dautres
processus. Un processus a un seul pre mais peut avoir plusieurs
fils
- Les processus peuvent se terminer ou ils peuvent tre limins par
dautres processus (la primitive kill). A la destruction dun
processus, on libre toutes les ressources quil avait.
- Dans certains cas, la destruction dun processus entrane
llimination de ces descendants ; cette opration naffecte pas les
processus qui peuvent continuer indpendamment de leur pre
(processus orphelins).

Chapitre 4

Gestion des processus

4.2.1 Etats dun processus


Dans les systmes mono programms, un programme ne quitte pas lunit centrale avant de terminer
son excution. Pendant cette priode, il dispose de toutes les ressources de la machine. Par contre, ce
nest pas le cas dans les systmes multiprogramms et temps-partag, un processus peut se trouver
dans lun des tats suivants :
1 Elu : (en cours dexcution) : si le processus est en cours d'excution
2- Bloqu : attente quun vnement se produit ou bien ressource pour pouvoir continuer
3- Prt : si le processus dispose de toutes les ressources ncessaires son excution l'exception
du processeur.

Fin dexcution

ELU

1
2

BLOQUE

Destruction

PRET
4

Cration

Figure 4.1 : Diagramme de transition dun processus

Smantique des Transitions


(1) : Allocation du processeur au processus slectionn
(2) : Rquisition du processeur aprs expiration de la tranche du temps par exemple
(3) : Blocage du processus lu dans lattente dun vnement (E/S ou autres)
(4) : Rveil du processus bloqu aprs disponibilit de lvnement bloquant (Fin E/S, etc)

Notons que nous avons omis les tats Cration et Terminaison de processus puisquils
ninterviennent pas dans cette tude.
4.2.2 Cycle dexcution dun processus

Lexcution dun processus peut tre vue comme une squence de phases. Chaque phase
comprend deux cycles : un cycle dexcution (ou calcul) ralis par le processeur et un cycle
dentre sortie assur par le canal. La dernire phase de tout processus doit comprendre
obligatoirement un seul cycle dans lequel sera excut la requte informant le systme
dexploitation sur la terminaison du processus. Cet appel permet au systme de restituer les
ressources utilises par le processus qui vient de terminer.
Chargement de P1

Chargement

Changement du contexte

Sauvegarde
P1

P2

P3

Figure 4.2 : Cycle dexcution dun processus


4.2.3 Bloc de contrle dun processus (PCB)
Lorsquun processus est temporairement suspendu, il faut quil puisse retrouver ltat o il se trouvait
au moment de suspension, il faut que toutes les informations dont il a besoin soient sauvegardes
pendant sa mise en attente.
2

Chapitre 4

Gestion des processus

Notons que le contexte dun processus dpend du systme, mais dans tous les cas cest un
bloc de contrle de processus (BCP) qui contient toute information ncessaire la reprise
dun processus interrompu : Etat du processus (prt, suspendu, ..), quantit de mmoire, temps
CPU (utilis, restant), priorit, etc.
Les BCP sont rangs dans une table (table des processus) qui se trouve dans lespace mmoire
du systme (figure 4.5)

Figure 4.3 : Bloc de contrle de processus (PCB)

4.3 Ordonnancement des processus


Chaque fois, que le processeur devient inactif, le systme dexploitation doit slectionner un processus
de la file dattente des processus prts, et lui passe le contrle. Dune manire plus concrte, cette
tche est prise en charge par deux routines systme en loccurrence le Dispatcheur et le Scheduleur
(Ordonnanceur).

4.3.1 Le Dispatcheur
Il soccupe de lallocation du processeur un processus slectionn par lOrdonnanceur du
processeur. Une fois allouer, le processeur doit raliser les tches suivantes :
Commutation de contexte : sauvegarder le contexte du processus qui doit relcher le
processeur et charger le contexte de celui qui aura le prochain cycle processeur
Commutation du mode dexcution : basculer du mode Matre (mode dexcution du
dispatcheur) en mode utilisateur (mode dexcution du processeur utilisateur)
Branchement : se brancher au bon emplacement dans le processus utilisateur pour le
faire dmarrer.
4.3.2 LOrdonnanceur
Certains systmes dexploitation utilisent une technique dordonnancement deux niveaux
qui intgre deux types dOrdonnanceurs :
Ordonnanceur du processeur : cest un Ordonnanceur court terme opre sur une ensemble
du processus prsents en mmoire. Il soccupe de la slection du processus qui aura le
prochain cycle processeur, partir de la file dattente des processus prts.
Ordonnanceur de travail : ou Ordonnanceur long terme, utilis en cas dinsuffisance de
mmoire, son rle est de slectionn le sous ensemble de processus stocks sur un disque et
qui vont tre chargs en mmoire. En suite, il retire priodiquement de la mmoire les
3

Chapitre 4

Gestion des processus

processus qui sont rests assez longtemps et les remplace par des processus qui sont sur le
disque depuis trop de temps.
Nous distinguons plusieurs algorithmes dordonnancement, les plus rpandus sont :
Ordonnancement Premier Arriv Premier Servi
Ordonnancement du plus court dabord
Ordonnancement circulaire : Tourniquet
Ordonnancement circulaire plusieurs niveaux
Ordonnancement avec priorit
4.3.3 Algorithmes dordonnancement
L'ordonnancement est la partie du systme d'exploitation qui dtermine dans quel ordre les
processus prts s'excuter (prsents dans la file des prts) seront lus.
Ses objectifs sont :
- Assurer le plein usage du CPU (agir en sorte quil soit le moins souvent possible inactifs);
- Rduire le temps d'attente des utilisateurs.
- Assurer l'quit entre les utilisateurs.
Un algorithme dordonnancement permet doptimiser une des grandeurs temporelles
suivantes :
- Le temps de rponse moyen dcrit la moyenne des dates de fin dexcution :
n

TRM= TRi n , avec TRi=date fin date arrive.


i=1
- Le temps dattente moyen est la moyenne des dlais dattente pour commencer une
excution :
n

, avec TAi =TRi - temps dexcution


n
Les algorithmes dordonnancement se distinguent les uns des autres du fait que certains
autorisent la rquisition de lunit centrale alors que dautres linterdisent. La rquisition est
la possibilit de retirer nimporte quel instant le processeur un processus mme si ce
dernier est en cours dexcution.
TAM=

TAi
i=1

Remarque :
Pour reprsenter schmatiquement lvolution dans le temps des processus, on recourt
habituellement des diagrammes de Gantt.
4.3.3.1 Ordonnancement FCFS (first come first Served)
Dans cet algorithme ; connu sous le nom FIFO (First In, First Out) ; les processus sont rangs
dans la file dattente des processus prts selon leur ordre darriver. Les rgles rgissant cet
ordonnancement sont :
2. Quand un processus est prt sexcuter, il est mis en queue de la file dattente des
processus prts.
3. Quand le processeur devient libre, il est allou au processus se trouvant en tte de file
dattente des processus prts.
4. Le processus lu relche le processeur sil se termine ou sil demande une entre sortie

Chapitre 4

Gestion des processus

Caractristiques de lOrdonnanceur

Ordonnanceur sans rquisition


Ordonnanceur non adapt un systme temps partag car dans un systme pareil,
chaque utilisateur obtienne le processeur des intervalles rguliers.

Exemple dalgorithme FCFS :

processus
P1
P2
P3
P4

Dure Estim
8
4
5
9

Date Arrive
0
1
2
3

Diagramme de Gantt :

TRM
TAM

4.3.3.2 Ordonnancement SJF (Shortest Job First) (Plus Cours temps d'Excution en
Premier)
SJF choisit de faon prioritaire les processus ayant le plus court temps dexcution sans
rellement tenir compte de leur date darrive.
Dans cet algorithme les diffrents processus sont rangs dans la file d'attente des processus
prts selon un ordre croissant de leur temps d'excution (cycle de calcul). Les rgles rgissant
cet ordonnancement sont :
1. Quand un processus est prt sexcuter, il est insr dans la file dattente des
processus prts sa position approprie.
2. Quand le processeur devient libre, il est assign au processus se trouvant en tte de la
file dattente des processus prts (ce processus possde le plus petit cycle
processeur.). Si deux processus ont la mme longueur de cycle, on applique
dans ce cas lalgorithme FCFS.
3. Si le systme ne met pas en oeuvre la rquisition, le processus lu relche le
processeur sil se termine ou sil demande une entre sortie. Dans le cas contraire, le
processus lu perd le processeur galement. Quand un processus ayant un cycle
dexcution infrieur au temps processeur restant du processus lu, vient dentrer dans
la file dattente des prts. Le processus lu dans ce cas sera mis dans la file dattente
des ligibles, et le processeur est allou au processus qui vient dentrer.
Caractristiques de lOrdonnanceur

Cet Ordonnanceur peut tre avec ou sans rquisition

Chapitre 4

Gestion des processus

Implmentation difficile, car il nexiste aucune manire pour connatre le cycle


suivant du processeur.

Exemple dalgorithme SJF :


processus
P1
P2
P3
P4

Dure Estim
10
05
15
03

Date Arrive
0
2
3
4

Diagramme de Gantt ( t = 5) :

TRM
TAM

4.3.3.3 Ordonnancement RR (round robin)


Dans cet algorithme les processus sont rangs dans une file d'attente des ligibles, le
processeur est allou successivement aux diffrents processus pour une tranche de temps fixe
Q appel Quantum.
Cet Ordonnancement est rgit par les rgles suivantes :
1. Un processus qui rentre dans ltat ligible est mis en queue de la file d'attente des
prts.
2. Si un processus lu se termine ou se bloque avant de consommer son quantum de
temps, le processeur est immdiatement allou au prochain processus se trouvant
en tte de la file d'attente des prts.
3. Si le processus lu continue de s'excuter au bout de son quantum, dans ce cas le
processus sera interrompu et mis en queue de la file d'attente des prts et le processeur
est rquisitionn pour tre rallou au prochain processus en tte de cette mme file
dattente.
Caractristiques de lOrdonnanceur

Avec rquisition
Adapt aux systmes temps partag.
La stratgie du tourniquet garantit que tous processus est servis au bout dun temps
fini. Son avantage est dviter la famine. On dit qu'un processus est en famine
lorsqu'il est prt tre excut et se voit refuser l'accs une ressource (ici le
processeur) pendant un temps indtermin
Lefficacit de cet ordonnanceur dpend principalement de la valeur du quantum Q:
o Le choix d'un Q assez petit augmente le nombre de commutation.
o Le choix d'un Q assez grand augmente le temps de rponse du systme

Exemple dalgorithme RR :
processus
P1
P2
P3

Dure Estim
30
05
02

Date Arrive
0
1
2

Diagramme de Gantt (quantum = 1) :

Chapitre 4

Gestion des processus

Quantum = 1

Quantum = 10

Diagramme de Gantt (quantum = 10) :

TRM
TAM

4.3.3.4 Ordonnacement SRTF (Shortest Remaining Time first) (plus court temps
dexcution restant PCTER)
SRTF choisit le processus dont le temps dexcution restant est le plus court. Cest une
variante de lalgorithme SJF
Cet algorithme est non implantable parce quil suppose, entre autres, connu le temps
dexcution rel de chaque processus pour pouvoir calculer le temps restant
Exemple SRTF :
processus
P1
P2
P3
P4

Dure Estim
8
5
5
2

Diagramme de Gantt :

Date Arrive
0
2
3
4

TRM
TAM

4.3.3.5 Ordonnancement
priorits

bas

sur

les

Dans cet algorithme, les processus sont rangs dans la file dattente des processus prt par
ordre dcroissant de priorit. Lordonnancement dans ce cas est rgit par les rgles suivantes :
1. Quand un processus est admis par le systme, il est insr dans la file dattente des
processus prts sa position approprie (dpend de la valeur de priorit).
2. Quand le processeur devient libre, il est allou au processus se trouvant en tte de file
dattente des processus prts (le plus prioritaire).
3. Un processus lu relche le processeur sil se termine ou se bloque (E/S ou autre).
Remarque :
Si le systme met en oeuvre la rquisition, quand un processus de priorit suprieure celle
du processus lu entre dans ltat prt ; le processus lu sera mis dans la file dattente des
ligibles la position approprie, et le processeur est allou au processus qui vient dentrer.
Caractristiques de lOrdonnanceur
Les principales caractristiques sont :
Peut tre avec ou sans rquisition
Un processus de priorit basse risque de ne pas tre servi (problme de famine) do
la ncessit dajuster priodiquement les priorits des processus prts. Lajustement
consiste incrmenter graduellement la priorit des processus de la file dattente des
7

Chapitre 4

Gestion des processus

ligibles (par exemple chaque 15 mn on incrmente dune unit la priorit des


processus prts)

Exemple dalgorithme de PRIO :


Diagramme de Gantt :

processus
P1
P2
P3

Dure Estim
5
8
4

Priorit
1
5
3

TRM
TAM

Remarque : la priorit adopte est celle la plus leve.


4.4 Etude de cas: Gestion des processus UNIX
4.4.1 Les caractristiques d'un processus
On a vu auparavant, qu'on pouvait un moment donn avoir plusieurs processus en cours,
un temps donn. Le systme doit tre capable de les identifier. Pour cela il attribue chacun
d'entre eux, un numro appel PID (Process Identification).
Un processus peut lui mme crer un autre processus, il devient donc un processus parent ou
pre, et le nouveau processus, un processus enfant. Ce dernier est identifi par son PID, et le
processus pre par son numro de processus appel PPID (Parent Process Identification).
Tous les processus sont ainsi identifis par leur PID, mais aussi par le PPID du processus qui
la cr, car tous les processus ont t crs par un autre processus. Oui mais dans tout a, c'est
qui a cr le premier processus ? Le seul qui ne suit pas cette rgle est le premier processus
lanc sur le systme le processus init qui n'a pas de pre et qui a pour PID 1.
4.4.2 Visualiser les processus
On peut visualiser les processus qui tournent sur une machine avec la commande : ps
(options), les options les plus intressantes sous HP-UX sont -e (affichage de tous les
processus) et -f (affichage dtaille). La commande ps -ef donne un truc du genre :
UID

PID

PPID

C STIME

TTY

TIME

COMMAND

UID nom de l'utilisateur qui a lanc le process


PID correspond au numro du process
PPID correspond au numro du process parent
C au facteur de priorit : plus la valeur est grande, plus
le processus est prioritaire
STIME correspond l'heure de lancement du processus
TTY correspond au nom du terminal
TIME correspond la dure de traitement du processus
COMMAND correspond au nom du processus.

Chapitre 4

Gestion des processus

Pour l'exemple donn, partir d'un shell vous avez lanc la commande ps -ef, le premier
processus pour PID 321, le deuxime 324. Vous noterez que le PPID du process " ps -ef "
est 321 qui correspond au shell, par consquent le shell est le process parent, de la commande
qu'on vient de taper.
Certains processus sont permanents, c'est dire qu'ils sont lancs au dmarrage du systme et
arrts uniquement l'arrt du systme. On appelle ces process des daemons, le terme dmon
est une francisation, daemon sont des abrviations.
Pour voir les process d'un seul utilisateur, vous pouvez taper :
$ ps -u olivier

D'un UNIX l'autre la sortie peut changer. Sous LINUX par exemple ps -Al permet une
sortie assez riche, en faisant un man ps, vous aurez l'ventail de tous les paramtres possibles.
4.4.3 Commandes de gestion des processus
4.4.3.1 Changer la priorit d'un processus
Les processus tournent avec un certain degr de priorit, un processus plus prioritaire aura
tendance s'accaparer (monopoliser) plus souvent les ressources du systme pour arriver le
plus vite possible au terme de son excution. C'est le rle du systme d'exploitation de grer
ces priorits.
Vous disposez de la commande nice pour modifier la priorit d'un processus. La syntaxe est la
suivante :
$ nice -valeur commande

Plus le nombre est grand, plus la priorit est faible. Par exemple une valeur de 0 donne, la
priorit la plus haute 20 donne la priorit la plus faible.
La fourchette de valeur dpend de l'UNIX qu'on utilise.
Par exemple :
$ nice -5 ps -ef

4.4.3.2 Arrter un processus


Vous disposez de la commande kill pour arrter un processus, on doit aussi tuer un
processus. Si vous voulez arrter un processus, vous devez connatre son PID (commande ps),
puis vous tapez :
$ kill -9 PID

4.4.3.3 Lancer un processus en arrire plan


Pour lancer une commande quelconque, vous en saisissez le nom aprs le prompt du shell,
tant que la commande n'est pas termine, vous n'avez plus la main au niveau du shell, vous ne
disposez plus du prompt. Si la commande prend un certain temps, votre shell ne vous donnera
pas la main tant que la commande n'est pas termine, vous tes oblig de lancer un autre shell,
pour taper une autre commande.
Vous disposez d'une technique simple qui permet de lancer une commande partir d'un shell,
et de reprendre aussitt la main. Il vous suffit de rajouter un & la fin de commande. Celle-ci
se lancera en " tche de fond ", et vous reviendrez directement au prompt du shell.
En tapant une commande en tche de fond, vous aurez l'affichage :
$ ps ef &
6677
9

(PID du processus ramen en arrire plan)

Chapitre 4

Gestion des processus

En lanant une commande partir du shell sans le & la fin, et si celle-ci prend du temps
vous rendre la main, vous pouvez faire en sorte qu'elle bascule en tche de fond, pour que
vous repreniez la main.
$ netscape

-7 cette commande lance un processus qui prend du temps et ne rend pas la

main. On peut lancer ce processus en arrire plan avec


$ nestcape &

Pour visualiser ltat dexcution dune commande lance en arrire plan, on utilise la
commande
$ jobs

-7 cette commande donne le [ numro de tche] (job), son

[PID,son tat

dexcution (stopped, running, ) et le nom de la commande

4.4.3.4 Ramener un processus en arrire/avant plan :


$ fg [Ntche] -7 fg (foreground) permet de reprendre lexcution de la tche en
premier plan
$ bg [Ntche] -7 bg (background) permet de ramener lexcution de la tche en arrire
plan

10

Adnen . A Institut Suprieur dInformatique et des Technologies de Communication

AU : 2009-2010

Você também pode gostar