Escolar Documentos
Profissional Documentos
Cultura Documentos
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.
P1
N1
P2
N2
N3
P4
P7
Processus pre
P3
P5
P6
Chapitre 4
Fin dexcution
ELU
1
2
BLOQUE
Destruction
PRET
4
Cration
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
Chapitre 4
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)
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
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
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
Caractristiques de lOrdonnanceur
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
Chapitre 4
Dure Estim
10
05
15
03
Date Arrive
0
2
3
4
Diagramme de Gantt ( t = 5) :
TRM
TAM
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
Chapitre 4
Quantum = 1
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
processus
P1
P2
P3
Dure Estim
5
8
4
Priorit
1
5
3
TRM
TAM
PID
PPID
C STIME
TTY
TIME
COMMAND
Chapitre 4
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
Chapitre 4
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
Pour visualiser ltat dexcution dune commande lance en arrire plan, on utilise la
commande
$ jobs
[PID,son tat
10
AU : 2009-2010