SlideShare une entreprise Scribd logo
1  sur  6
Télécharger pour lire hors ligne
Chapitre 7
L’ordonnancement des processus
La s´election dans le temps des processus pouvant acc`eder `a une ressource est un probl`eme dit
d’ordonnancement. Nous pr´esentons ici :
– le cas g´en´eral
– les besoins et les probl`emes
et nous d´ecrirons des solutions que l’on trouve sous UNIX pour diff´erents probl`emes d’ordonnan-
cement.
Les algorithmes d’ordonnancement r´ealisent la s´election parmi les processus actifs de celui
qui va obtenir l’utilisation d’une ressource, que ce soit l’unit´e centrale, ou bien un p´eriph´erique
d’entr´ee-sortie.
Pour l’unit´e centrale notre but est de maximiser d´ebit et taux utile de l’unit´e centrale :
le d´ebit est le nombre moyen de processus ex´ecut´es en un temps donn´e.
le taux utile est la proportion de temps r´eellement utilis´ee pour ex´ecuter des processus utilisa-
teurs.
Un exemple :
Soient 2 processus A et B de mˆeme comportement 30 p´eriodes de deux seconde :
1 seconde d’activit´e
1 seconde d’inactivit´e
AIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAI
Si l’on ex´ecute les deux processus cons´ecutivement on obtient un d´ebit de 1 processus par
minute, et un taux utile de 50%. Si l’on entrelace les p´eriodes actives et inactives des deux processus
on obtient un d´ebit de 2 processus par minute et un taux d’utilisation de 100%.
Pour une autre ressource d’autres crit`eres seront utilis´es.
7.1 Le partage de l’unit´e centrale
Ce partage doit ˆetre fait non seulement entre les processus utilisateurs mais aussi entre les
diff´erentes tˆaches du syst`eme, scheduler, entr´ees-sorties, gestion des interruptions, etc.
Nous demandons de plus `a l’algorithme d’ordonnancement de nous assurer l’exclusion mu-
tuelle et l’absence de famine, qui sont les points-clefs de la plupart des probl`emes d’ordonnan-
cement. L’invention d’un algorithme d’ordonnancement se base en g´en´erale sur des remarques
statistique sur le comportement des processus :
– Le couple UC/ES (cpu/io), les processus ont tendance `a basculer constamment entre des
phases d’entr´ees-sorties et des phases de calcul sur l’unit´e centrale.
– Les processus consommant de longues p´eriodes d’U.C. sont proportionnellement rares.
55
56 CHAPITRE 7. L’ORDONNANCEMENT DES PROCESSUS
1 4 8 12 16 20 24
0
50
100
150
200
Fig. 7.1 – Histogramme de r´epartition de la dur´ee de la p´eriode d’utilisation de l’unit´e centrale
A court termeA long terme
éligibles pour l’U.C. U.C.
Files (FIFO) des
périphériques
d’entrées/sorties
E/S
Fig. 7.2 – Strat´egie globale d’ordonnancement.
7.1.1 Famine
Notre premi`ere tˆache est d’affecter une ressource (l’UC par exemple) `a un unique processus `a
la fois (exclusion mutuelle) et s’assurer de l’absence de famine.
famine : un processus peut se voir refuser l’acc`es `a une ressource pendant un temps ind´etermin´e,
il est dit alors que le processus est en famine.
Un syst`eme qui ne cr´ee pas de cas de famine : fournira toujours la ressource demand´ee par un
processus, au bout d’un temps fini.
Si on prend le cas des p´eriph´eriques (tels que les disques) l’ordonnancement peut se faire de
fa¸con simple avec par exemple une file d’attente (FIFO).
Pour l’unit´e centrale on va devoir utiliser des structures de donn´ees plus complexes car nous
allons avoir besoin de g´erer des priorit´es. C’est par exemple, autoriser l’existence de processus qui
´evitent la file d’attente. La structure de donn´ees utilis´ee peut parfaitement ˆetre une file, une liste,
un arbre ou un tas, ceci en fonction de l’´el´ement-clef de notre algorithme de s´election (ˆage, priorit´e
simple, priorit´e `a plusieurs niveaux, etc).
Cette structure de donn´ees doit nous permettre d’acc´eder `a tous les processus prˆets (´eligibles).
7.1.2 Strat´egie globale
On peut repr´esenter l’ordonnancement global avec le sch´ema 7.2
Les ordonnancements `a court terme doivent ˆetre tr`es rapides, en effet le processus ´elu ne va
utiliser l’unit´e centrale que pendant un tr`es court laps de temps ( 10 milli-secondes par exemple).
7.2. ORDONNANCEMENT SANS PR´EEMPTION. 57
Si on utilise trop de temps (1 milli-seconde) pour s´electionner cet ´elu, le taux utile d´ecroˆıt tr`es
rapidement (ici on perd 9% du temps d’unit´e centrale).
Par contre l’ordonnancement `a long terme peut ˆetre plus long car il a lieu moins souvent (toutes
les secondes par exemple). La conception de l’ordonnanceur `a long terme est faite dans l’optique
d’obtenir un ordonnanceur `a court terme rapide.
7.1.3 Crit`eres de performance
Les crit`eres de performance des algorithmes d’ordonnancement
– Taux d’utilisation de l’unit´e centrale
– D´ebit
– Temps r´eel d’ex´ecution
– Temps d’attente
– Temps de r´eponse
Ces cinq crit`eres sont plus ou moins mutuellement exclusifs.
Les comparaisons des diff´erents algorithmes se fait donc sur une s´election de ces crit`eres.
7.2 Ordonnancement sans pr´eemption.
– FCFS : First Come First served
Facile `a ´ecrire et `a comprendre, peu efficace ...
– SJF : Shortest Job First
le plus petit en premier.
Optimal pour le temps d’attente moyen ...
– A priorit´e :
L’utilisateur donne des priorit´es aux diff´erents processus et ils sont activ´es en fonction de
cette priorit´e.
probl`eme −→ famine possible des processus peu prioritaires
Solution −→ faire augmenter la priorit´e avec le temps d’attente :
plus un processus attend, plus sa priorit´e augmente ainsi au bout d’un certain temps le
processus devient n´ecessairement le plus prioritaire.
re-probl`eme −→ si le processus en question (le tr`es vieux tr`es gros) est ex´ecut´e alors que de
nombreux utilisateurs sont en mode interactif chute catastrophique du temps de r´eponse et
du d´ebit
solution −→ pr´eemption.
La pr´eemption est la possibilit´e qu’a le syst`eme de reprendre une ressource `a un processus sans
que celui-ci ait lib´er´e cette ressource.
Ceci est impossible sur bon nombre de ressources. Lesquelles ?
7.3 Les algorithmes pr´eemptifs
FCFS ne peut ˆetre pr´eemptif ...
SJF peut ˆetre pr´eemptif : si un processus plus court que le processus actif arrive dans la queue,
le processus actif est pr´eempt´e.
Dans des syst`emes interactifs en temps partag´e un des crit`eres est le temps de r´eponse, c’est `a
dire que chaque utilisateur dispose de l’unit´e centrale r´eguli`erement. Heureusement, les processus
interactifs utilisent l’UC pendant de tr`es courts intervalles `a chaque fois.
58 CHAPITRE 7. L’ORDONNANCEMENT DES PROCESSUS
7.3.1 Round Robin (tourniquet)
Cet algorithme est sp´ecialement adapt´e aux syst`emes en temps partag´e.
On d´efinit un quantum de temps (time quantum) d’utilisation de l’unit´e centrale.
La file d’attente des processus ´eligibles est vue comme une queue circulaire (fifo circulaire).
Tout nouveau processus est plac´e `a la fin de la liste.
De deux choses l’une, soit le processus actif rend l’Unit´e Centrale avant la fin de sa tranche de
temps (pour cause d’entr´ee/sortie) soit il est pr´eempt´e, et dans les deux cas plac´e en fin de liste.
Un processus obtiendra le processeur au bout de (n -1)*q secondes au plus (n nombre de
processus et q longueur du quantum de temps), la famine est donc assur´ement ´evit´ee.
Remarquons que si le quantum de temps est trop grand, round-robin devient ´equivalent `a FCFS.
De l’autre cot´e si le quantum de temps est tr`es court, nous avons th´eoriquement un processeur n
fois moins rapide pour chaque processus (n nombre de processus).
Malheureusement si le quantum de temps est court, le nombre de changements de contexte dˆus
`a la pr´eemption grandit, d’o`u une diminution du taux utile, d’o`u un processeur virtuel tr`es lent.
Une r`egle empirique est d’utiliser un quantum de temps tel que 80 pourcent des processus
interrompent naturellement leur utilisation de l’unit´e centrale avant l’expiration du quantum de
temps.
7.3.2 Les algorithmes `a queues multiples
Nous supposons que nous avons un moyen de diff´erencier facilement les processus en plusieurs
classes de priorit´e diff´erentes (c’est le cas sous UNIX o`u nous allons diff´erencier les tˆaches syst`eme,
comme le swappeur, des autres tˆaches).
Pour s´electionner un processus, le scheduler parcourt successivement les queues dans l’ordre
d´ecroissant des priorit´es.
Un exemple de queues organis´ees en fonction du contenu des processus :
– les processus syst`emes
– les processus interactifs
– les processus ´edition
– les processus gros calcul
– les processus des ´etudiants
pour qu’un processus ´etudiant soit ex´ecut´e il faut que toutes les autres files d’attente soient vides ...
Une autre possibilit´e est de partager les quantums de temps sur les diff´erentes queues.
Il est aussi possible de r´ealiser diff´erents algorithmes de scheduling sur les diff´erentes queues :
– Round Robin sur les processus interactifs
– FCFS sur les gros calculs en tˆache de fond.
7.4 Multi-level-feedback round robin Queues
Le syst`eme d’ordonnancement des processus sous UNIX (BSD 4.3 et system V4) utilise plu-
sieurs files d’attente qui vont mat´erialiser des niveaux de priorit´e diff´erents et `a l’int´erieur de ces
diff´erents niveaux de priorit´e, un syst`eme de tourniquet.
7.4.1 Les niveaux de priorit´e
Le scheduler parcourt les listes une par une de haut en bas jusqu’`a trouver une liste contenant
un processus ´eligible. Ainsi tant qu’il y a des processus de cat´egorie sup´erieure `a ex´ecuter les autres
processus sont en attente de l’unit´e centrale.
7.4. MULTI-LEVEL-FEEDBACK ROUND ROBIN QUEUES 59
swapper
Disk I/O
Buffer
Inode
tty input
tty output
enfants
InterneauNoyau
non
interruptibles
interruptibles
Attentesde:
priorité limite
niveau 0
niveau N
Utilisateurs
niveau 1
Fig. 7.3 – Les queues multiples en tourniquet
Dans les listes internes au noyau, de simples files d’attente sont utilis´ees avec la possibilit´e de
doubler les processus endormis de la mˆeme liste (en effet seul le processus r´eveill´e par la fin de son
entr´ee/sortie est ´eligible).
Pour les processus utilisateurs, la mˆeme r`egle est utilis´ee mais avec pr´eemption et la r`egle du
tourniquet.
C’est `a dire, on calcul une priorit´e de base qui est utilis´ee pour placer le processus dans la
bonne file d’attente.
Un processus qui utilise l’unit´e centrale voit augmenter sa priorit´e.
Un processus qui lib`ere l’unit´e centrale pour demander une entr´ee/sortie ne voit pas sa priorit´e
changer.
Un processus qui utilise tout sont quantum de temps est pr´eempt´e et plac´e dans une nouvelle file
d’attente.
Attention : plus la priorit´e est grande moins le processus est prioritaire.
7.4.2 Evolution de la priorit´e
Regardons la priorit´e et l’´evolution de la priorit´e d’un processus utilisateur au cours du temps.
Les fonctions suivantes sont utilis´ees dans une impl´ementation BSD.
Pour calculer la priorit´e d’un processus utilisateur, le scheduler utilise l’´equation suivante qui
est calcul´ee tous les 4 clicks horloge (valeur pratique empirique) :
P usrpri = PUSER +
P cpu
4
+ 2 × P nice
cette valeur est tronqu´ee `a l’intervalle PUSER..127. En fonction de cette valeur le processus
est plac´e dans une des listes correspondant `a son niveau courant de priorit´e.
Ceci nous donne une priorit´e qui diminue lin´eairement en fonction de l’utilisation de l’unit´e
centrale (il advient donc un moment o`u le processus devient le processus le plus prioritaire !).
P nice est une valeur sp´ecifi´ee par le programmeur grˆace `a l’appel syst`eme nice. Elle varie entre
-20 et +20 et seul le super utilisateur peut sp´ecifier une valeur n´egative.
P cpu donne une estimation du temps pass´e par un processus sur l’unit´e centrale. A chaque click
d’horloge, la variable p cpu du processus actif est incr´ement´ee. Ce qui permet de mat´erialiser la
60 CHAPITRE 7. L’ORDONNANCEMENT DES PROCESSUS
consommation d’unit´e central du processus. Pour que cette valeur ne devienne pas trop p´enalisante
sur le long terme (comme pour un shell) elle est att´enu´ee toute les secondes grˆace `a la formule
suivante :
P cpu =
2 × load
2 × load + 1
× P cpu + P nice
la valeur de load (la charge) est calcul´ee sur une moyenne du nombre de processus actifs
pendant une minute.
Pour ne pas utiliser trop de ressources, les processus qui sont en sommeil (sleep) voient leur
P cpu recalcul´e uniquement `a la fin de leur p´eriode de sommeil grˆace `a la formule :
P cpu =
2 × load
2 × load + 1
sleep time
× P cpu
la variable sleep time ´etant initialis´ee `a z´ero puis incr´ement´ee une fois par seconde.
7.4.3 Les classes de priorit´e
La priorit´e des processus en mode syst`eme d´epend de l’action `a r´ealiser.
PSWAP 0 priorit´e en cours de swap
PINOD 10 priorit´e en attendant une lecture d’information sur le syst`eme de fichiers
PRIBIO 20 priorit´e en attente d’une lecture/´ecriture sur disque
PZERO 25 priorit´e limite
PWAIT 30 priorit´e d’attente de base
PLOCK 35 priorit´e d’attente sur un verrou
PSLEP 40 priorit´e d’attente d’un ´ev`enement
PUSER 50 priorit´e de base pour les processus en mode utilisateur
Le choix de l’ordre de ces priorit´es est tr`es important, en effet un mauvais choix peut entraˆıner
une diminution importante des performances du syst`eme.
Il vaut mieux que les processus en attente d’un disque soient plus prioritaires que les processus
en attente d’un buffer, car les premiers risquent fort de lib´erer un buffer apr`es leur acc`es disque
(de plus il est possible que ce soit exactement le buffer attendu par le deuxi`eme processus). Si la
priorit´e ´etait inverse, il deviendrait possible d’avoir un interblocage ou une attente tr`es longue si
le syst`eme est bloqu´e par ailleurs.
De la mˆeme fa¸cons, le swappeur doit ˆetre le plus prioritaire et non interruptible −→ Si un
processus est plus prioritaire que le swappeur et qu’il doit ˆetre swapp´e en m´emoire ...
En Demand-Paging le swappeur est aussi le processus qui r´ealise les chargements de page, ce
processus doit ˆetre le plus prioritaire.

Contenu connexe

Tendances

Tendances (20)

SdE 6 - Planification
SdE 6 - PlanificationSdE 6 - Planification
SdE 6 - Planification
 
Scheduling et gestion des ressources CPU sous Solaris
Scheduling et gestion des ressources CPU sous SolarisScheduling et gestion des ressources CPU sous Solaris
Scheduling et gestion des ressources CPU sous Solaris
 
Cours systèmes temps réel partie 2 Prof. Khalifa MANSOURI
Cours  systèmes temps réel partie 2 Prof. Khalifa MANSOURICours  systèmes temps réel partie 2 Prof. Khalifa MANSOURI
Cours systèmes temps réel partie 2 Prof. Khalifa MANSOURI
 
Cours systèmes temps réel partie 1 Prof. Khalifa MANSOURI
Cours  systèmes temps réel partie 1 Prof. Khalifa MANSOURICours  systèmes temps réel partie 1 Prof. Khalifa MANSOURI
Cours systèmes temps réel partie 1 Prof. Khalifa MANSOURI
 
Formation linux temps réel - Rennes 14 octobre 2014
Formation linux temps réel  - Rennes 14 octobre 2014Formation linux temps réel  - Rennes 14 octobre 2014
Formation linux temps réel - Rennes 14 octobre 2014
 
SdE2 - Planification, IPC
SdE2 - Planification, IPCSdE2 - Planification, IPC
SdE2 - Planification, IPC
 
Principes de fonctionnement unix
Principes de fonctionnement unixPrincipes de fonctionnement unix
Principes de fonctionnement unix
 
utilisation des core dump sous linux
utilisation des core dump sous linuxutilisation des core dump sous linux
utilisation des core dump sous linux
 
Systemes d'explotation: Synchronization de execution
Systemes d'explotation: Synchronization de executionSystemes d'explotation: Synchronization de execution
Systemes d'explotation: Synchronization de execution
 
Linux et le temps réel - Meetup du 15 octobre 2015
Linux et le temps réel - Meetup du 15 octobre 2015Linux et le temps réel - Meetup du 15 octobre 2015
Linux et le temps réel - Meetup du 15 octobre 2015
 
SdE 5 - Planification
SdE 5 - PlanificationSdE 5 - Planification
SdE 5 - Planification
 
L'art d'ordonner avec JobScheduler
L'art d'ordonner avec JobSchedulerL'art d'ordonner avec JobScheduler
L'art d'ordonner avec JobScheduler
 
L'art d'ordonner avec JobScheduler
L'art d'ordonner avec JobSchedulerL'art d'ordonner avec JobScheduler
L'art d'ordonner avec JobScheduler
 
SdE 4: Processus
SdE 4: ProcessusSdE 4: Processus
SdE 4: Processus
 
Boot
BootBoot
Boot
 
Linux et les systèmes embarqués
Linux et les systèmes embarquésLinux et les systèmes embarqués
Linux et les systèmes embarqués
 
Gestion et surveillance du reseau syslogng
Gestion et surveillance du reseau  syslogngGestion et surveillance du reseau  syslogng
Gestion et surveillance du reseau syslogng
 
Comment automatiser la supervision avec Puppet ?
Comment automatiser la supervision avec Puppet ?Comment automatiser la supervision avec Puppet ?
Comment automatiser la supervision avec Puppet ?
 
SdE 8 - Synchronization de execution
SdE 8 - Synchronization de executionSdE 8 - Synchronization de execution
SdE 8 - Synchronization de execution
 
Support systemes multitaches-tempsreel
Support systemes multitaches-tempsreelSupport systemes multitaches-tempsreel
Support systemes multitaches-tempsreel
 

En vedette

Pres f&w 3 31- 10
Pres f&w 3  31- 10Pres f&w 3  31- 10
Pres f&w 3 31- 10
osirispr
 
La Construcció FilosòFica De La Ciutadania
La Construcció FilosòFica De La CiutadaniaLa Construcció FilosòFica De La Ciutadania
La Construcció FilosòFica De La Ciutadania
jaume
 
Des gestes qui sauvent la vie (activité 3 slideshare)
Des gestes qui sauvent la vie (activité 3 slideshare)Des gestes qui sauvent la vie (activité 3 slideshare)
Des gestes qui sauvent la vie (activité 3 slideshare)
Francine Zou
 
La moral kantiana jaume moriel
La moral kantiana jaume morielLa moral kantiana jaume moriel
La moral kantiana jaume moriel
jaume
 
Unidad 1-continacion
Unidad 1-continacionUnidad 1-continacion
Unidad 1-continacion
detlefsen
 
Meetup juin2013
Meetup juin2013Meetup juin2013
Meetup juin2013
nperu
 
Fred Ooms - Du problème à la proposition de valeur - Workshop 1
Fred Ooms - Du problème à la proposition de valeur - Workshop 1Fred Ooms - Du problème à la proposition de valeur - Workshop 1
Fred Ooms - Du problème à la proposition de valeur - Workshop 1
Start Academy
 
Portfolio CQuéguiner conf IP
Portfolio CQuéguiner conf IPPortfolio CQuéguiner conf IP
Portfolio CQuéguiner conf IP
Charles QUEGUINER
 
FRANCAIS V. Ibarra, Ecuador,
FRANCAIS V. Ibarra, Ecuador, FRANCAIS V. Ibarra, Ecuador,
FRANCAIS V. Ibarra, Ecuador,
shaulrodriguez
 

En vedette (20)

Chocolate
ChocolateChocolate
Chocolate
 
Régate des touques 2013
Régate des touques 2013Régate des touques 2013
Régate des touques 2013
 
La Badminton stratégie
La Badminton stratégieLa Badminton stratégie
La Badminton stratégie
 
Pres f&w 3 31- 10
Pres f&w 3  31- 10Pres f&w 3  31- 10
Pres f&w 3 31- 10
 
La Construcció FilosòFica De La Ciutadania
La Construcció FilosòFica De La CiutadaniaLa Construcció FilosòFica De La Ciutadania
La Construcció FilosòFica De La Ciutadania
 
Des gestes qui sauvent la vie (activité 3 slideshare)
Des gestes qui sauvent la vie (activité 3 slideshare)Des gestes qui sauvent la vie (activité 3 slideshare)
Des gestes qui sauvent la vie (activité 3 slideshare)
 
Géoguichet urbanisme 2 - Actualiser un permis à l’aide de votre géoguichet Ur...
Géoguichet urbanisme 2 - Actualiser un permis à l’aide de votre géoguichet Ur...Géoguichet urbanisme 2 - Actualiser un permis à l’aide de votre géoguichet Ur...
Géoguichet urbanisme 2 - Actualiser un permis à l’aide de votre géoguichet Ur...
 
L'évolution des commerces parisiens de 2011 à 2014 - Synthèse
L'évolution des commerces parisiens de 2011 à 2014 - SynthèseL'évolution des commerces parisiens de 2011 à 2014 - Synthèse
L'évolution des commerces parisiens de 2011 à 2014 - Synthèse
 
Une introduction mise a jour aux produits rapides des paquets d'hotel et de vol
Une introduction mise a jour aux produits rapides des paquets d'hotel et de vol
Une introduction mise a jour aux produits rapides des paquets d'hotel et de vol
Une introduction mise a jour aux produits rapides des paquets d'hotel et de vol
 
Communauté onepoint - Architecture
Communauté onepoint - ArchitectureCommunauté onepoint - Architecture
Communauté onepoint - Architecture
 
Nevera Electrolux EN3886MOX
Nevera Electrolux EN3886MOXNevera Electrolux EN3886MOX
Nevera Electrolux EN3886MOX
 
Conférence ENOES : actualité fiscale 2016
Conférence ENOES : actualité fiscale 2016Conférence ENOES : actualité fiscale 2016
Conférence ENOES : actualité fiscale 2016
 
Business in vietnam french investments
Business in vietnam   french investmentsBusiness in vietnam   french investments
Business in vietnam french investments
 
40 propositions pour simplifier la vie des francais
40 propositions pour simplifier la vie des francais40 propositions pour simplifier la vie des francais
40 propositions pour simplifier la vie des francais
 
La moral kantiana jaume moriel
La moral kantiana jaume morielLa moral kantiana jaume moriel
La moral kantiana jaume moriel
 
Unidad 1-continacion
Unidad 1-continacionUnidad 1-continacion
Unidad 1-continacion
 
Meetup juin2013
Meetup juin2013Meetup juin2013
Meetup juin2013
 
Fred Ooms - Du problème à la proposition de valeur - Workshop 1
Fred Ooms - Du problème à la proposition de valeur - Workshop 1Fred Ooms - Du problème à la proposition de valeur - Workshop 1
Fred Ooms - Du problème à la proposition de valeur - Workshop 1
 
Portfolio CQuéguiner conf IP
Portfolio CQuéguiner conf IPPortfolio CQuéguiner conf IP
Portfolio CQuéguiner conf IP
 
FRANCAIS V. Ibarra, Ecuador,
FRANCAIS V. Ibarra, Ecuador, FRANCAIS V. Ibarra, Ecuador,
FRANCAIS V. Ibarra, Ecuador,
 

Similaire à Ordinnancement des processus

Ordonnanc-Proc_Threads (1).pdf
Ordonnanc-Proc_Threads (1).pdfOrdonnanc-Proc_Threads (1).pdf
Ordonnanc-Proc_Threads (1).pdf
MbarkiIsraa
 
Cour systeme d'exploitation sghaier anouar
Cour systeme d'exploitation sghaier anouarCour systeme d'exploitation sghaier anouar
Cour systeme d'exploitation sghaier anouar
Anouar Sghaier
 
Paris stormusergroup intrudocution
Paris stormusergroup intrudocutionParis stormusergroup intrudocution
Paris stormusergroup intrudocution
Paris_Storm_UG
 

Similaire à Ordinnancement des processus (20)

La gestion des processus
La gestion des processusLa gestion des processus
La gestion des processus
 
The supply chain is susceptible to market volatility, driven by changing cons...
The supply chain is susceptible to market volatility, driven by changing cons...The supply chain is susceptible to market volatility, driven by changing cons...
The supply chain is susceptible to market volatility, driven by changing cons...
 
Ordonnanc-Proc_Threads (1).pdf
Ordonnanc-Proc_Threads (1).pdfOrdonnanc-Proc_Threads (1).pdf
Ordonnanc-Proc_Threads (1).pdf
 
gestion de processus
gestion de processusgestion de processus
gestion de processus
 
Gestion des processus
Gestion des processusGestion des processus
Gestion des processus
 
Cours SE Ordonnancement des processus - IPSET.pdf
Cours SE Ordonnancement des processus - IPSET.pdfCours SE Ordonnancement des processus - IPSET.pdf
Cours SE Ordonnancement des processus - IPSET.pdf
 
coursystemedexploitaionsghaieranouar-150103105816-conversion-gate01.pdf
coursystemedexploitaionsghaieranouar-150103105816-conversion-gate01.pdfcoursystemedexploitaionsghaieranouar-150103105816-conversion-gate01.pdf
coursystemedexploitaionsghaieranouar-150103105816-conversion-gate01.pdf
 
Scheduler & SLA
Scheduler & SLAScheduler & SLA
Scheduler & SLA
 
ex6_solution.pdf
ex6_solution.pdfex6_solution.pdf
ex6_solution.pdf
 
SdE 5 - Communication entre processus et Planification
SdE 5 - Communication entre processus et PlanificationSdE 5 - Communication entre processus et Planification
SdE 5 - Communication entre processus et Planification
 
Cour systeme d'exploitation sghaier anouar
Cour systeme d'exploitation sghaier anouarCour systeme d'exploitation sghaier anouar
Cour systeme d'exploitation sghaier anouar
 
Gestion des threads
Gestion des threadsGestion des threads
Gestion des threads
 
1488135632336.pdf
1488135632336.pdf1488135632336.pdf
1488135632336.pdf
 
Apache Storm - Introduction au traitement temps-réel avec Storm
Apache Storm - Introduction au traitement temps-réel avec StormApache Storm - Introduction au traitement temps-réel avec Storm
Apache Storm - Introduction au traitement temps-réel avec Storm
 
Paris stormusergroup intrudocution
Paris stormusergroup intrudocutionParis stormusergroup intrudocution
Paris stormusergroup intrudocution
 
8.lesinterruptions
8.lesinterruptions8.lesinterruptions
8.lesinterruptions
 
Tp système écoulement
Tp système écoulementTp système écoulement
Tp système écoulement
 
rt-intro.pdf
rt-intro.pdfrt-intro.pdf
rt-intro.pdf
 
Cours d'algorithmique distribuée (2010-2011)
Cours d'algorithmique distribuée (2010-2011)Cours d'algorithmique distribuée (2010-2011)
Cours d'algorithmique distribuée (2010-2011)
 
Protocoles d'acces aleatoires
Protocoles d'acces aleatoiresProtocoles d'acces aleatoires
Protocoles d'acces aleatoires
 

Plus de Selman Dridi

Plus de Selman Dridi (7)

Systémes d'exploitation
Systémes d'exploitationSystémes d'exploitation
Systémes d'exploitation
 
Processus pére fils
Processus pére filsProcessus pére fils
Processus pére fils
 
Cours se chap3_2
Cours se chap3_2Cours se chap3_2
Cours se chap3_2
 
Cours se chap3
Cours se chap3Cours se chap3
Cours se chap3
 
Cours se chap1_2
Cours se chap1_2Cours se chap1_2
Cours se chap1_2
 
Cours se chap1
Cours se chap1Cours se chap1
Cours se chap1
 
Cmd dos sous windows
Cmd dos sous windowsCmd dos sous windows
Cmd dos sous windows
 

Ordinnancement des processus

  • 1. Chapitre 7 L’ordonnancement des processus La s´election dans le temps des processus pouvant acc`eder `a une ressource est un probl`eme dit d’ordonnancement. Nous pr´esentons ici : – le cas g´en´eral – les besoins et les probl`emes et nous d´ecrirons des solutions que l’on trouve sous UNIX pour diff´erents probl`emes d’ordonnan- cement. Les algorithmes d’ordonnancement r´ealisent la s´election parmi les processus actifs de celui qui va obtenir l’utilisation d’une ressource, que ce soit l’unit´e centrale, ou bien un p´eriph´erique d’entr´ee-sortie. Pour l’unit´e centrale notre but est de maximiser d´ebit et taux utile de l’unit´e centrale : le d´ebit est le nombre moyen de processus ex´ecut´es en un temps donn´e. le taux utile est la proportion de temps r´eellement utilis´ee pour ex´ecuter des processus utilisa- teurs. Un exemple : Soient 2 processus A et B de mˆeme comportement 30 p´eriodes de deux seconde : 1 seconde d’activit´e 1 seconde d’inactivit´e AIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAI Si l’on ex´ecute les deux processus cons´ecutivement on obtient un d´ebit de 1 processus par minute, et un taux utile de 50%. Si l’on entrelace les p´eriodes actives et inactives des deux processus on obtient un d´ebit de 2 processus par minute et un taux d’utilisation de 100%. Pour une autre ressource d’autres crit`eres seront utilis´es. 7.1 Le partage de l’unit´e centrale Ce partage doit ˆetre fait non seulement entre les processus utilisateurs mais aussi entre les diff´erentes tˆaches du syst`eme, scheduler, entr´ees-sorties, gestion des interruptions, etc. Nous demandons de plus `a l’algorithme d’ordonnancement de nous assurer l’exclusion mu- tuelle et l’absence de famine, qui sont les points-clefs de la plupart des probl`emes d’ordonnan- cement. L’invention d’un algorithme d’ordonnancement se base en g´en´erale sur des remarques statistique sur le comportement des processus : – Le couple UC/ES (cpu/io), les processus ont tendance `a basculer constamment entre des phases d’entr´ees-sorties et des phases de calcul sur l’unit´e centrale. – Les processus consommant de longues p´eriodes d’U.C. sont proportionnellement rares. 55
  • 2. 56 CHAPITRE 7. L’ORDONNANCEMENT DES PROCESSUS 1 4 8 12 16 20 24 0 50 100 150 200 Fig. 7.1 – Histogramme de r´epartition de la dur´ee de la p´eriode d’utilisation de l’unit´e centrale A court termeA long terme éligibles pour l’U.C. U.C. Files (FIFO) des périphériques d’entrées/sorties E/S Fig. 7.2 – Strat´egie globale d’ordonnancement. 7.1.1 Famine Notre premi`ere tˆache est d’affecter une ressource (l’UC par exemple) `a un unique processus `a la fois (exclusion mutuelle) et s’assurer de l’absence de famine. famine : un processus peut se voir refuser l’acc`es `a une ressource pendant un temps ind´etermin´e, il est dit alors que le processus est en famine. Un syst`eme qui ne cr´ee pas de cas de famine : fournira toujours la ressource demand´ee par un processus, au bout d’un temps fini. Si on prend le cas des p´eriph´eriques (tels que les disques) l’ordonnancement peut se faire de fa¸con simple avec par exemple une file d’attente (FIFO). Pour l’unit´e centrale on va devoir utiliser des structures de donn´ees plus complexes car nous allons avoir besoin de g´erer des priorit´es. C’est par exemple, autoriser l’existence de processus qui ´evitent la file d’attente. La structure de donn´ees utilis´ee peut parfaitement ˆetre une file, une liste, un arbre ou un tas, ceci en fonction de l’´el´ement-clef de notre algorithme de s´election (ˆage, priorit´e simple, priorit´e `a plusieurs niveaux, etc). Cette structure de donn´ees doit nous permettre d’acc´eder `a tous les processus prˆets (´eligibles). 7.1.2 Strat´egie globale On peut repr´esenter l’ordonnancement global avec le sch´ema 7.2 Les ordonnancements `a court terme doivent ˆetre tr`es rapides, en effet le processus ´elu ne va utiliser l’unit´e centrale que pendant un tr`es court laps de temps ( 10 milli-secondes par exemple).
  • 3. 7.2. ORDONNANCEMENT SANS PR´EEMPTION. 57 Si on utilise trop de temps (1 milli-seconde) pour s´electionner cet ´elu, le taux utile d´ecroˆıt tr`es rapidement (ici on perd 9% du temps d’unit´e centrale). Par contre l’ordonnancement `a long terme peut ˆetre plus long car il a lieu moins souvent (toutes les secondes par exemple). La conception de l’ordonnanceur `a long terme est faite dans l’optique d’obtenir un ordonnanceur `a court terme rapide. 7.1.3 Crit`eres de performance Les crit`eres de performance des algorithmes d’ordonnancement – Taux d’utilisation de l’unit´e centrale – D´ebit – Temps r´eel d’ex´ecution – Temps d’attente – Temps de r´eponse Ces cinq crit`eres sont plus ou moins mutuellement exclusifs. Les comparaisons des diff´erents algorithmes se fait donc sur une s´election de ces crit`eres. 7.2 Ordonnancement sans pr´eemption. – FCFS : First Come First served Facile `a ´ecrire et `a comprendre, peu efficace ... – SJF : Shortest Job First le plus petit en premier. Optimal pour le temps d’attente moyen ... – A priorit´e : L’utilisateur donne des priorit´es aux diff´erents processus et ils sont activ´es en fonction de cette priorit´e. probl`eme −→ famine possible des processus peu prioritaires Solution −→ faire augmenter la priorit´e avec le temps d’attente : plus un processus attend, plus sa priorit´e augmente ainsi au bout d’un certain temps le processus devient n´ecessairement le plus prioritaire. re-probl`eme −→ si le processus en question (le tr`es vieux tr`es gros) est ex´ecut´e alors que de nombreux utilisateurs sont en mode interactif chute catastrophique du temps de r´eponse et du d´ebit solution −→ pr´eemption. La pr´eemption est la possibilit´e qu’a le syst`eme de reprendre une ressource `a un processus sans que celui-ci ait lib´er´e cette ressource. Ceci est impossible sur bon nombre de ressources. Lesquelles ? 7.3 Les algorithmes pr´eemptifs FCFS ne peut ˆetre pr´eemptif ... SJF peut ˆetre pr´eemptif : si un processus plus court que le processus actif arrive dans la queue, le processus actif est pr´eempt´e. Dans des syst`emes interactifs en temps partag´e un des crit`eres est le temps de r´eponse, c’est `a dire que chaque utilisateur dispose de l’unit´e centrale r´eguli`erement. Heureusement, les processus interactifs utilisent l’UC pendant de tr`es courts intervalles `a chaque fois.
  • 4. 58 CHAPITRE 7. L’ORDONNANCEMENT DES PROCESSUS 7.3.1 Round Robin (tourniquet) Cet algorithme est sp´ecialement adapt´e aux syst`emes en temps partag´e. On d´efinit un quantum de temps (time quantum) d’utilisation de l’unit´e centrale. La file d’attente des processus ´eligibles est vue comme une queue circulaire (fifo circulaire). Tout nouveau processus est plac´e `a la fin de la liste. De deux choses l’une, soit le processus actif rend l’Unit´e Centrale avant la fin de sa tranche de temps (pour cause d’entr´ee/sortie) soit il est pr´eempt´e, et dans les deux cas plac´e en fin de liste. Un processus obtiendra le processeur au bout de (n -1)*q secondes au plus (n nombre de processus et q longueur du quantum de temps), la famine est donc assur´ement ´evit´ee. Remarquons que si le quantum de temps est trop grand, round-robin devient ´equivalent `a FCFS. De l’autre cot´e si le quantum de temps est tr`es court, nous avons th´eoriquement un processeur n fois moins rapide pour chaque processus (n nombre de processus). Malheureusement si le quantum de temps est court, le nombre de changements de contexte dˆus `a la pr´eemption grandit, d’o`u une diminution du taux utile, d’o`u un processeur virtuel tr`es lent. Une r`egle empirique est d’utiliser un quantum de temps tel que 80 pourcent des processus interrompent naturellement leur utilisation de l’unit´e centrale avant l’expiration du quantum de temps. 7.3.2 Les algorithmes `a queues multiples Nous supposons que nous avons un moyen de diff´erencier facilement les processus en plusieurs classes de priorit´e diff´erentes (c’est le cas sous UNIX o`u nous allons diff´erencier les tˆaches syst`eme, comme le swappeur, des autres tˆaches). Pour s´electionner un processus, le scheduler parcourt successivement les queues dans l’ordre d´ecroissant des priorit´es. Un exemple de queues organis´ees en fonction du contenu des processus : – les processus syst`emes – les processus interactifs – les processus ´edition – les processus gros calcul – les processus des ´etudiants pour qu’un processus ´etudiant soit ex´ecut´e il faut que toutes les autres files d’attente soient vides ... Une autre possibilit´e est de partager les quantums de temps sur les diff´erentes queues. Il est aussi possible de r´ealiser diff´erents algorithmes de scheduling sur les diff´erentes queues : – Round Robin sur les processus interactifs – FCFS sur les gros calculs en tˆache de fond. 7.4 Multi-level-feedback round robin Queues Le syst`eme d’ordonnancement des processus sous UNIX (BSD 4.3 et system V4) utilise plu- sieurs files d’attente qui vont mat´erialiser des niveaux de priorit´e diff´erents et `a l’int´erieur de ces diff´erents niveaux de priorit´e, un syst`eme de tourniquet. 7.4.1 Les niveaux de priorit´e Le scheduler parcourt les listes une par une de haut en bas jusqu’`a trouver une liste contenant un processus ´eligible. Ainsi tant qu’il y a des processus de cat´egorie sup´erieure `a ex´ecuter les autres processus sont en attente de l’unit´e centrale.
  • 5. 7.4. MULTI-LEVEL-FEEDBACK ROUND ROBIN QUEUES 59 swapper Disk I/O Buffer Inode tty input tty output enfants InterneauNoyau non interruptibles interruptibles Attentesde: priorité limite niveau 0 niveau N Utilisateurs niveau 1 Fig. 7.3 – Les queues multiples en tourniquet Dans les listes internes au noyau, de simples files d’attente sont utilis´ees avec la possibilit´e de doubler les processus endormis de la mˆeme liste (en effet seul le processus r´eveill´e par la fin de son entr´ee/sortie est ´eligible). Pour les processus utilisateurs, la mˆeme r`egle est utilis´ee mais avec pr´eemption et la r`egle du tourniquet. C’est `a dire, on calcul une priorit´e de base qui est utilis´ee pour placer le processus dans la bonne file d’attente. Un processus qui utilise l’unit´e centrale voit augmenter sa priorit´e. Un processus qui lib`ere l’unit´e centrale pour demander une entr´ee/sortie ne voit pas sa priorit´e changer. Un processus qui utilise tout sont quantum de temps est pr´eempt´e et plac´e dans une nouvelle file d’attente. Attention : plus la priorit´e est grande moins le processus est prioritaire. 7.4.2 Evolution de la priorit´e Regardons la priorit´e et l’´evolution de la priorit´e d’un processus utilisateur au cours du temps. Les fonctions suivantes sont utilis´ees dans une impl´ementation BSD. Pour calculer la priorit´e d’un processus utilisateur, le scheduler utilise l’´equation suivante qui est calcul´ee tous les 4 clicks horloge (valeur pratique empirique) : P usrpri = PUSER + P cpu 4 + 2 × P nice cette valeur est tronqu´ee `a l’intervalle PUSER..127. En fonction de cette valeur le processus est plac´e dans une des listes correspondant `a son niveau courant de priorit´e. Ceci nous donne une priorit´e qui diminue lin´eairement en fonction de l’utilisation de l’unit´e centrale (il advient donc un moment o`u le processus devient le processus le plus prioritaire !). P nice est une valeur sp´ecifi´ee par le programmeur grˆace `a l’appel syst`eme nice. Elle varie entre -20 et +20 et seul le super utilisateur peut sp´ecifier une valeur n´egative. P cpu donne une estimation du temps pass´e par un processus sur l’unit´e centrale. A chaque click d’horloge, la variable p cpu du processus actif est incr´ement´ee. Ce qui permet de mat´erialiser la
  • 6. 60 CHAPITRE 7. L’ORDONNANCEMENT DES PROCESSUS consommation d’unit´e central du processus. Pour que cette valeur ne devienne pas trop p´enalisante sur le long terme (comme pour un shell) elle est att´enu´ee toute les secondes grˆace `a la formule suivante : P cpu = 2 × load 2 × load + 1 × P cpu + P nice la valeur de load (la charge) est calcul´ee sur une moyenne du nombre de processus actifs pendant une minute. Pour ne pas utiliser trop de ressources, les processus qui sont en sommeil (sleep) voient leur P cpu recalcul´e uniquement `a la fin de leur p´eriode de sommeil grˆace `a la formule : P cpu = 2 × load 2 × load + 1 sleep time × P cpu la variable sleep time ´etant initialis´ee `a z´ero puis incr´ement´ee une fois par seconde. 7.4.3 Les classes de priorit´e La priorit´e des processus en mode syst`eme d´epend de l’action `a r´ealiser. PSWAP 0 priorit´e en cours de swap PINOD 10 priorit´e en attendant une lecture d’information sur le syst`eme de fichiers PRIBIO 20 priorit´e en attente d’une lecture/´ecriture sur disque PZERO 25 priorit´e limite PWAIT 30 priorit´e d’attente de base PLOCK 35 priorit´e d’attente sur un verrou PSLEP 40 priorit´e d’attente d’un ´ev`enement PUSER 50 priorit´e de base pour les processus en mode utilisateur Le choix de l’ordre de ces priorit´es est tr`es important, en effet un mauvais choix peut entraˆıner une diminution importante des performances du syst`eme. Il vaut mieux que les processus en attente d’un disque soient plus prioritaires que les processus en attente d’un buffer, car les premiers risquent fort de lib´erer un buffer apr`es leur acc`es disque (de plus il est possible que ce soit exactement le buffer attendu par le deuxi`eme processus). Si la priorit´e ´etait inverse, il deviendrait possible d’avoir un interblocage ou une attente tr`es longue si le syst`eme est bloqu´e par ailleurs. De la mˆeme fa¸cons, le swappeur doit ˆetre le plus prioritaire et non interruptible −→ Si un processus est plus prioritaire que le swappeur et qu’il doit ˆetre swapp´e en m´emoire ... En Demand-Paging le swappeur est aussi le processus qui r´ealise les chargements de page, ce processus doit ˆetre le plus prioritaire.