Vous êtes sur la page 1sur 98

Ordonnancement Processus

Chapitre 6

http://w3.uqo.ca/luigi/

1
Aperçu du chapitre

Concepts de base

Critères d’ordonnancement

Algorithmes d’ordonnancement

Ordonnancement de multiprocesseurs

Ordonnancement temps réel

Évaluation d’algorithmes

Ch. 6 2
Importance des concepts de ce chapitres

Les méthodes d’ordonnancement ont des
nombreuses applications
 Et ont été très étudiées,surtout avec des
méthodes probabilistes et de simulation

Non seulement en informatique, mais aussi
en gestion:
 Supposons qu’on parle de différents tâches à
exécuter dans une usine dans laquelle il y a
des ressources qui sont des ouvriers et des
outils

Ch. 6 3
Importance dans l’informatique

L’utilisation de critères d’ordonnancement
efficaces est surtout importante pour les grands
centres d’informatique qui sont très chargés
 Chiffres recueillies dans le web: Google, Microsoft:
bien plus d’1M de serveurs chaque
 Une petite épargne en pourcentage dans cette
situation peut économiser des sommes
considérables (électricité, chauffage etc.)
 Il est important de garder les serveurs saturés de travail

Ch. 6 4
Diagramme de transition d’états d`un processus

Ch. 6 5
Files d’attente de processus pour
ordonnancement

file prêt

Nous ferons l’hypothèse que le premier processus dans une file est celui
qui utilise la ressource: ici, proc7 exécute sur UCT
Nous débuterons avec l’hypothèse qu’il n’y a qu’une seule UCT
Ch. 6 6
Concepts de base

La multiprogrammation vise à obtenir une
 utilisation optimale des ressources
 et aussi un bon temps de réponse pour l’usager

L’UCT est la ressource la plus précieuse dans un
ordinateur, donc nous parlons d’elle
 cependant, les principes que nous verrons s’appliquent
aussi à l’ordonnancement des autres ressources (unités
E/S, etc).

L’ordonnanceur UCT est la partie du SE qui décide
quel processus dans la file ready/prêt obtient
l’UCT quand elle devient libre

Ch. 6 7
Les cycles d’un processus

Ou autre service du SE


Cycles (bursts) d’UCT et E/S: l’activité d’un processus
consiste de séquences d’exécution sur UCT et d’attentes: -
d’E/S ou de synchronisation avec autres processus
Ch. 6 8
Durée normale des cycles

Étant donné la grande vitesse de l’UCT par
rapport aux périphériques, la plupart des
cycles d’UCT seront très courts

Cependant il pourrait y avoir des longs
cycles d’UCT quand on demandera des
calculs poussés
 Calculs scientifiques etc.

Ch. 6 9
Durée typique des cycles UCT


Observation expérimentale:
 dans un système typique, nous observerons un grand nombre de
court cycles d’UCT, et un petit nombre de long cycles

Les programmes tributaires de l’UCT auront normalem. un
petit nombre de long cycles UCT

Les programmes tributaires de l’E/S auront normalem. un
grand nombre de court cycles UCT
Ch. 6 10
Quand exécuter l’ordonnanceur UCT


L ’ordonnanceur UCT doit prendre sa décision chaque fois que le
processus exécutant est interrompu, ce qui peut avoir les causes
les plus variées

1. Clique de l’usager sur la souris ou clavier

2. Un autre processus se présente en tant que nouveau ou se
termine

3. Le proc exécutant demande un service du SE

¸ (E/S, communication entre processus, plus de mémoire …)

4. Une E/S se termine

5. Interruption de minuterie (en Linux, plus. fois p. sec.)

Préemption: on a préemption si on enlève l’UCT à un processus
qui l’avait et ne l’a pas laissée de propre initiative
 P.ex. préemption dans le cas 1, 2, 4, 5 mais pas 3.

Ch. 6 11
Ordonnanceur d’UCT

L’UCT est interrompue
 Le proc exécutant perd l’UCT
 L’interruption est traitée
 L’UCT doit être affectée à un proc.

Il y a une ou plusieurs files d’attente de
processus pour l’UCT
 Files de proc en état prêt

L’ordonnanceur choisit quel processus en
attente reçoit l’UCT

Ch. 6 12
Dispatcheur (meilleur français: répartiteur)


Le dispatcheur met en exécution le
processus choisi. Il doit se préoccuper de:
 changer de contexte
 reprendre le processus choisi
 changer à mode usager

Ch. 6 13
Critères d’ordonnancement

Il y aura normalement plusieurs processus
dans la file prêt


Quand l’UCT devient disponible, lequel choisir?


Critères généraux:
 Bonne utilisation de l’UCT
 Réponse rapide à l’usager


Mais ces critères peuvent être jugés
différemment...

Ch. 6 14
Defs à utiliser pour les exercices
Critères spécifiques d’ordonnancement

Utilisation UCT: pourcentage d’utilisation

Débit = Throughput: nombre de processus
qui complètent dans l’unité de temps

Temps de rotation = turnaround: le temps
pris par un proc de son arrivée à sa termin.

Temps d’attente: attente dans la file prêt
(somme de tout le temps passé en file prêt sans
exécuter)

Temps de réponse: le temps entre une
demande de l’usager et la réponse

Ch. 6 15
Critères d’ordonnancement: maximiser/minimiser

Utilisation UCT: pourcentage d’utilisation
 à maximiser

Débit = Throughput: nombre de processus qui complètent
dans l ’unité de temps
 à maximiser

Temps de rotation (turnaround): temps terminaison moins
temps arrivée
 à minimiser

Temps d’attente: attente dans la file prêt sans exécuter
 à minimiser

Temps de réponse (pour les systèmes interactifs): le temps
entre une demande et la réponse
 à minimiser

Ch. 6 16
Examinons maintenant plusieurs méthodes
d’ordonnancement et voyons comment elles se
comportent par rapport à ces critères

nous étudierons des cas concrets


l’étude du cas général demanderait recours à techniques probabilistes ou de
simulation

Ch. 6 17
Premier arrivé, premier servi (PAPS)
= First come first serve (FCFS)

Ch. 6 18
Premier arrivé, 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 l’ordre: P1 , P2 , P3
Le diagramme Gantt pour l’utilisation de l’UCT est:

P1 P2 P3

0 24 27 30

Temps d’attente pour P1= 0; P2= 24; P3= 27


Temps attente moyen: (0 + 24 + 27)/3 = 17
Ch. 6 19
Premier arrive, premier servi, dans ce cas

Utilisation UCT = 100%

Débit = 3/30 = 0,1
 3 processus complétés en 30 unités de temps

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

P1 P2 P3

0 24 27 30

Ch. 6 20
Tenir compte du temps d’arrivée!

Dans le cas où les processus arrivent à moment
différents, il faut soustraire les temps d’arrivée

Exercice: répéter les calculs si:
 P1 arrive à temps 0 et dure 24
 P2 arrive à temps 2 et dure 3
 P3 arrive à temps 10 et dure 3

Donc P1 attend 0 comme avant

Mais P2 attend 24-2, etc.

P1 P2 P3

0 24 27 30
arr P2 arr P3
Ch. 6 21
FCFS Scheduling (Cont.)
Si les mêmes processus arrivent à 0 mais dans l’ordre
P2 , P3 , P1 .
Le diagramme de Gantt est:

P2 P3 P1

0 3 6 30

Temps d’attente pour P1 = 6 P2 = 0 P3 = 3

Temps moyen d’attente: (6 + 0 + 3)/3 = 3 était 17

Temps de rotation moyen: (3+6+30)/3 = 13 était 27

Beaucoup mieux!

Donc pour FCFS, les temps peuvent varier grandement par
rapport à l’ordre d’arrivée de différent processus

Exercice: calculer aussi le débit, etc.

Ch. 6 22
Problème: Effet d’accumulation ou effet convoi

Quand il y a une voiture lente qui ne peut
pas être doublée, elle crée un entassement
après elle

Dès qu’elle peut être doublée, les autres
voitures passent toutes ensemble
 créant un vide après la voiture lente

Ceci se répète chaque fois qu’on rencontre
une voiture lente

Ch. 6 23
Effet d’accumulation (effet convoi) dans FCFS

Supposons (situation normale)
 un processus tributaire de l’UCT qui exécute (cycles longs)
 et plusieurs tributaires de l`E/S en attente (cycles courts)

Les processus tributaires de l’E/S attendent l’UCT: E/S sous-
utilisée (*)

Le processus tributaire de l’UCT fait une E/S: les procs tributaires
de l’UCT exécutent rapidement leur cycle UCT et retournent sur
l’attente E/S (convoi qui passe): UCT sous-utilisée

Processus tributaire de l’UCT finit son E/S, puis les autres aussi:
retour à la situation (*)

Donc dans ce sens FCFS favorise les procs tributaires de l’UCT

Et peut conduire à une mauvaise utilisation des ressources s’il y a
apport continu de procs longs=tributaires de l’UCT
 Tant d’UCT que de périphériques

Une possibilité: interrompre de temps en temps les proc tributaires
de l’UCT pour permettre aux autres procs d’exécuter (préemption)
 On fait ça

Ch. 6 24
Exemple

Supposons
 P1: tributaire de l’UCT
On se retrouve à la
 P2, P3: tributaires de l’E/S situation initiale avec P1 en
tête et probabl. P2 et P3
après

P1 P2 P3 UCT libre P1

P1 demande une E/S Le convoi qui passe L’E/S de P1 a terminé mais


pendant que P1 fait les E/S de P2 et P3
son E/S continuent

Ch. 6 25
Plus court servi (PCS)
= Shortest Job First (SJF)

Ch. 6 26
Plus Court d’abord = Shortest Job First (SJF)

Le processus qui demande moins d’UCT part le premier

Optimal du point de vue du temps d’attente moyen
 (v. exemple précédent)

P2 P3 P1

0 3 6 30


Temps moyen d’attente: (6 + 0 + 3)/3 = 3 était 17 pour PAPS

Temps de rotation moyen: (3+6+30)/3 = 13 était 27 pour PAPS

Beaucoup mieux que PAPS!
Mais comment savons-nous quel processus demande moins
d’UCT!
 Supposons pour l’instant qu’on puisse

Ch. 6 27
PCS avec préemption ou non

Avec préemption:
 si un processus qui dure moins que le restant
du processus courant se présente plus tard,
 l’UCT est enlevée au proc courant et donnée à
ce nouveau processus
 SRTF: shortest remaining-time first

Sans préemption: on permet au processus
courant de terminer son cycle

Ch. 6 28
Example de PCS sans préemption
Processus Arrivée Cycle UCT
P1 0 7
P2 2 4
P3 4 1
P4 5 4


PCS (sans préemption)

P1 P3 P2 P4

0 7 8 12 16

P2 arr. P3 arr. P arr


4

Temps d’attente moyen = (0+(8-2)+(7-4)+(12-5))/4
– (0 + 6 + 3 + 7)/4 = 4

Temps de rotation moyen = (7+(12-2)+(8-4)+(16-5)) /4 = 8
Ch. 6 Exercice: calculer avec PAPS 29
Exemple de PCS avec préemption
Processus ArrivéeCycle
P1 0 7
P2 2 4
P3 4 1
P4 5 4

PCS (préemptive)

P1 P2 P3 P2 P4 P1

0 2 4 5 7 11 16

P2 arr. P3 arr. P4 arr



Temps moyen d`attente = (9 + 1 + 0 +2)/4 = 3 était 4
 P1 attend de 2 à 11, P2 de 4 à 5, P3 n’attend pas, P4 de 5 à 7

Temps de rotation moyen = 16+ (7-2) + (5-4) + (11-5) = 7 était 8
Ch. 6 30
Calcul + détaillé Processus Arrivée Cycle
P1 0 7
P2 2 4
P3 4 1
P4 5 4
Files
P1=5 P1=5
attente P1=5
P2=4
P2=2 P2=2 P1=5
P1=5
P1=7 P3=1 P4=4 P4=4

P1 P2 P3 P2 P4 P1

0 2 4 5 7 11 16

P2 arr. P3 arr. P4 arr

Ch. 6 31
Préemption ou non

La préemption est le cas normal pour l’UCT
car un événement quelconque cause une
interruption et à ce moment là
 l’ordonnanceur devra prendre une décision sur
le prochain proc à exécuter

Mais pour la plupart des périphériques la
préemption est impossible:
 P.ex. dans une imprimante il faut toujours
terminer l’impression courante avant d’en
amorcer une nouvelle
 Pareillement pour un disque
Ch. 6 32
Comment déterminer la longueur des cycles à l’avance?

Quelques méthodes proposent de
déterminer le comportement futur d’un
processus sur la base de son passé
 p.ex. méthode de la moyenne exponentielle

Ch. 6 33
Estimation d’une tendance
Jean me demande des prêts. Dans le passé il me demandait souvent 10$,
puis 6$ et 4$, plus récemment il m’a demandé plusieurs fois 13$.
Combien me demandera-t-il la prochaine fois?!

tendance
13 13

6 6
4 4

Ch. 6 34
Différentes méthodes en principe

Comportement constant d’un processus:
 Un processus qui a eu des cycles d’UCT autour de
5 millisecondes en moyenne continuera comme ça

Comportement variable d’un processus:
 Un processus qui avant avait des cycles d’UCT de
10ms en moyenne, maintenant a allongé ces
cycles, qui sont plutôt de 13ms
 La durée des cycles les plus récents doit être
considérée plus importante pour la prévision des
prochains cycles

Ch. 6 35
Estimation de la durée du prochain cycle
hypothèse de comportement constant
 Ti : la durée du ième cycle de l’UCT pour ce
processus
 Si : la valeur estimée du ième cycle de l’UCT pour
ce processus.
 Sn+1 l’estimée courante
 Sn l’estimée précédente

Un choix simple est:
 Sn+1 = (1/n) S{i=1 à n} Ti (une simple moyenne)

Ceci donne un poids identique à chaque cycle

Ch. 6 36
Estimation de la durée du prochain cycle
hypothèse de comportement variable

Nous devons décider quelle importance
donner
 Aux changements plus récents
 Par rapport aux observations précédentes

Ch. 6 37
Coefficient α pour le poids

0 1

α 1-α
Importance du cycle Importance de l’estim.
le plus récent précédente

Pex. si α = 0,7, alors 1-α = 0,3

Ch. 6 38
Estimation de la durée du prochain cycle
hypothèse de comportement variable

Les cycles récents peuvent être plus
représentatifs des comportements futurs

La moyenne exponentielle permet de donner
différents poids aux cycles plus ou moins
récents:
 Sn+1 = a Tn+ (1-a) Sn ; 0 <= a <= 1


a : le coéfficient d’importance

Tn: la durée du cycle le plus récent

S: l’estimation
 S
n+1 l’estimation courante (après le cycle Tn)
 S l’estimation précédente
n

Ch. 6 39
Pourquoi ‘exponentielle’

Par expansion, nous voyons que le poids de
chaque cycle décroît exponentiellement
 Sn+1 = aTn + (1-a)aTn-1 + ... (1-a)i aTn-i +
... + (1-a)n S1

la valeur estimée S1 du 1er cycle peut être
fixée à 0 pour donner priorité max. aux
nouveaux processus

Ch. 6 40
aImportance de différents valeurs de coefficients [Stallings]

Peu d’import. aux cycles récents

Beaucoup d’import. aux cycles récs

1=la plus récente

La durée des vieux cycles perd d’importance rapidement si on donne beaucoup


d’importance aux cycles récents, et aussi le converse…
Ch. 6 Stallings 41
Importance de différents valeurs de coefficients [Stallings]

 S1 = 0 (priorité aux nouveaux processus)



Un coefficient plus élevé réagit plus rapidement aux
changements de comportement
Ch. 6 Stallings 42
Un deuxième exemple [Stallings]

Stallings
Ch. 6 43
Comment choisir le coefficient a

Un petit a assouplit les changements de comportement
d’un processus
 Il donne moins d’importance aux cycles récents
 Il est avantageux quand un processus peut avoir des
anomalies de comportement, après lesquelles il reprend son
comportement précédent
 Cas limite: a = 0
 on reste sur l’estimée initiale

Un gros a réagit rapidement aux changements
 Il donne plus d’importance aux cycles récents
 Est avantageux quand un processus est susceptible de
changer rapidement de type d’activité et il reste sur ça
 Cas limite: a = 1: S
n+1 = Tn
 Le dernier cycle est le seul qui compte

Ch. 6 44
Exercice: Travailler cet exemple dans le manuel
faire un calcul plus précis - aussi essayer des coefficients différents

estim.

réel

α=0,5

Ch. 6 45
Le Plus Court d’Abord SJF: critique


Difficulté d’estimer la longueur à l’avance

Plus pratique pour l’ordonnancement travaux que
pour l’ordonnancement processus
 Normal. on peut plus facilement estimer la durée d’un
travail entier que la durée d’un seul cycle

Il y a assignation implicite de priorités: préférences
aux travaux plus courts
 Famine possible pour les travaux aux cycles longs
 S’il y a apport continu de travaux aux cycles courts

Ch. 6 46
Difficultés majeures avec les méthodes discutées

Premier arrivé, premier servi, FCFS:
 Temps moyen d’attente non-optimal
 Mauvaise utilisation des ressources s’il y a apport
continu de processus aux cycles longs (v. effet
d’accumulation)

Plus court servi, SJF:
 Difficulté d’estimer les cycles
 Famine possible s’i y a apport continu de processus aux
cycles courts

Donc besoin d’une méthode systématiquement préemptive
 Le tourniquet

 si vous faites toujours les devoirs les plus courts en premier, vous pourriez avoir
l’impression de faire beaucoup mais vous pourriez ne jamais arriver aux plus longs…
 si vous faites les devoirs dans l’ordre d’arrivée, les longs pourraient vous bloquer pour
longtemps
Ch. 6  donc votre solution est de donner un peu de temps à chacun, cycliquement 47
Le tourniquet = Round-Robin (RR)

Ch. 6 48
Le tourniquet

Si j’ai une seule grande pizza et plusieurs
personnes affamées, je pourrais:
 L’offrir à chacun à son tour: attendre que
chacun ait fini avant de passer au suivant
 (méthodes précédentes)
 Ou sinon offrir une tranche à la fois à chacun et
permettre de revenir

Ch. 6 49
Tourniquet = Round-Robin (RR)
Le plus utilisé en pratique

Chaque processus est alloué une tranche de
temps (p.ex. 10-100 millisecs.) pour exécuter
 Tranche aussi appelée quantum

S’il exécute pour tranche entière sans autres
interruptions, il est interrompu par la minuterie et
l ’UCT est donnée à un autre processus

Le processus interrompu redevient prêt (à la fin de la file)

Méthode préemptive
P[0] P[1]
La file prêt est un
P[7] P[2]
cercle (dont RR)
P[6] P[3]

P[5] P[4]
Ch. 6 50
Exemple: Tourniquet tranche = 20

Processus Cycle
P1 53
P2 17
P3 68
P4 24

P1 P2 P3 P4 P1 P3 P4 P1 P3 P3

0 20 37 57 77 97 117 121 134 154 162


Observez
 temps de rotation et temps d’attente moyens beaucoup plus
élevés que PCS (exercice: calculez-les…)
Ch. 6  mais aucun processus n’est favorisé 51
Performance de tourniquet

S’il y a n processus dans la file prêt et la
tranche est t, alors chaque processus
reçoit 1/n du temps UCT dans unités de
durée max. t

Si t grand  FCFS

Si t petit... prochaine planche

Ch. 6 52
Une petite tranche augmente les commutations
de contexte (temps de SE)

Ch. 6 53
Exemple pour voir l’importance d’un bon choix
de tranche (à développer comme exercice)

Trois cycles:
 A, B, C, tous de 10

Essayer avec:
 t=1
 t=10

Dans ce deuxième cas, tourniquet
fonctionne comme PAPS-FIFO et le temps
de rotation moyen est meilleur

Ch. 6 54
Le temps de rotation (turnaround) varie avec la
tranche (exemple à travailler)

= PAPS

Exemple qui montre que le temps de rotation moyen n ’améliore pas


nécessairement en augmentant la tranche (sans considérer les temps de
commutation contexte)
Ch. 6 55
Choix de la tranche pour le tourniquet

doit être beaucoup plus grande que le temps requis pour exécuter le changement de
contexte

devrait permettre le complètement d’approx. 80% des cycles

pour donner le temps à la plupart des proc de terminer leur cycle, mais pas trop pour éviter de pénaliser les
processus courts

(Stallings)

Ch. 6 V. ex. prec. où les tranches optimales sont 6 et 7 56


Critère approximé

Considérer la durée médiane des temps
demandés par les processus en exécution

La durée de la tranche devrait être
approximativement plus grande ou égale à
la durée médiane de 80% de ces procs

De manière que approx. 80% des procs
puissent compléter dans leur tranches

Ch. 6 57
Comment déterminer la tranche en pratique


Évidemment la durée médiane des cycles
des processus en attente est impossible à
déterminer avec certitude!

En pratique, les observations passées
peuvent être utilisées:
 le SE peut garder une trace des durées des
cycles des processus récemment exécutés et
ajuster la tranche périodiquement

Ch. 6 58
Détail:
où mettre les processus qui arrivent au fur et à mesure

Solution du manuel – à utiliser pour les
exercices, examen etc.
 Les nouveaux procs sont mis après ceux qui
sont déjà dans la file
 Leur premier tour sera après le tour de tous les
autres

(Cependant on pourrait aussi les mettre
*avant* pour lui donner une chance tout de
suite)

Ch. 6 59
Comparaison finale

La méthode du tourniquet n’est *pas* la
meilleure si on considère les temps
d’exécution

Son avantage est qu’elle permet un
progrès constant à tous les processus

Ch. 6 60
Méthodes avec priorités

Ch. 6 61
Priorités

Affectation d’une priorité à chaque
processus (p.ex. un nombre entier)
 souvent les petits chiffres dénotent des hautes
priorités
 0 la plus haute

L’UCT est donnée au processus prêt avec
la plus haute priorité
 avec ou sans préemption
 il y a une file prêt pour chaque priorité

Ch. 6 62
Problème possible avec les priorités

Famine: les processus moins prioritaires
n’arrivent jamais à exécuter

Solution: vieillissement:
 modifier la priorité d ’un processus en fonction
de son âge et de son historique d ’exécution
 le processus change de file d`attente

Plus en général, la modification dynamique
des priorités est une politique souvent
utilisée (v. files à rétroaction ou retour)

Ch. 6 63
Files à plusieurs niveaux (multiples)

La file prêt est séparée en plusieurs files, p.ex.
 travaux `d’arrière-plan` (background - batch)
 travaux `de premier plan` (foreground - interactive)

Chaque file a son propre algorithme
d’ordonnancement, p.ex.
 FCFS pour arrière-plan
 tourniquet pour premier plan

Comment ordonnancer entre files?
 Priorité fixe à chaque file  famine possible, ou
 Chaque file reçoit un certain pourcentage de temps UCT,
p.ex.
 80% pour arrière-plan
 20% pour premier plan

Ch. 6 64
Ordonnancement avec files multiples
(ex.: serveur principal d’une université)

Un proc peut être servi seulement si toutes les files de priorités plus
Ch. 6
élevées sont vides 65
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

À déterminer:
 nombre de files
 algorithmes d’ordonnancement pour chaque file
 algorithmes pour décider quand un proc doit passer
d ’une file à l`autre
 algorithme pour déterminer, pour un proc qui devient
prêt, sur quelle file il doit être mis

Ch. 6 66
Files multiples et à retour

PRIO = 0
la + élevée

PRIO = 1

PRIO = 2

Ch. 6 67
Exemple de files multiples à retour

Trois files:
 P0: tourniquet, tranche = 8 msecs
 P1: tourniquet, tranche = 16 msecs
 P2: FCFS

Ordonnancement:
 Un nouveau processus entre dans Q0, il reçoit 8 msecs
d’UCT
 S’il ne finit pas dans les 8 msecs, il est mis dans Q1, il
reçoit 16 msecs additionnels
 S’il ne finit pas encore, il est interrompu et mis dans Q2
 Si plus tard il commence à avoir des cycles plus courts,
il pourrait retourner à Q0 ou Q1

Ch. 6 68
Exercice

Exemple concret
 Dans un système avec files multiples, un
processus a besoin de 50 secondes d’UCT
(sans appels au SE) .
 Dans la première file on lui donne 5 secondes
et à chaque file successive on lui donne le
double (10, 20, 40 …)
 Combien de fois sera-t-il interrompu et dans
quelle file se trouvera-t-il quand il terminera?

Ch. 6 69
En pratique …

Ch. 6 70
En pratique...

Les méthodes que nous avons vu sont toutes
utilisées (sauf plus court servi pur qui est
pratiquement impossible pour l’UCT, pourquoi?)

Les SE sophistiqués fournissent aux gérants de
grands systèmes des librairies de méthodes,
qu’ils peuvent choisir et combiner au besoin après
avoir observé le comportement du système

Pour chaque méthode, plusieurs params sont
disponibles: p.ex. durée des tranches,
coefficients, etc.

Ces méthodes évidemment sont importantes
surtout pour les grands ordis qui ont des fortes
charges de travail

Ch. 6 71
Aussi…

Notre étude des méthodes d’ordonnancement est théorique,
ne considère pas en détail tous les problèmes qui se
présentent dans l’ordonnancement UCT

P.ex. les ordonnanceurs UCT ne peuvent pas donner l’UCT à
un processus pour tout le temps dont il a besoin
 Car en pratique, l’UCT sera souvent interrompue par quelque
événement externe avant la fin de son cycle

Cependant les mêmes principes d’ordonnancement
s’appliquent à unités qui ne peuvent pas être interrompues,
comme une imprimante, une unité disque, etc.

Dans le cas de ces unités, on pourrait avoir des infos
complètes concernant le temps de cycle prévu, etc.

Aussi, cette étude ne considère pas du tout les temps
d’exécution de l’ordonnanceur, du dispatcheur, etc.

Ch. 6 72
Plusieurs UCTs

Dans le passé, la vitesse des UCT augmentait
rapidement avec chaque génération d’ordinateurs

Aujourd’hui, l’ingénierie rencontre des limites
pour augmenter la vitesse des UCTs

Donc on se dirige vers la production de plus
d’UCTs par ordinateur

Cependant, augmenter le nombre d’UCT
n’implique pas une augmentation proportionnelle
de la puissance de l’ordi, pour des raisons que
nous verrons
 Surtout, la charge de gestion de ces UCTs ralentit
l’ordinateur

Ch. 6 73
Ordonnancement avec plusieurs UCTs
identiques: homogénéité

Méthodes symétriques: UCT
chaque UCT peut exécuter
UCT
l’ordonnancement et la
répartition UCT
 Une seule liste prêt pour
toutes les UCTs (division UCT
travail = load sharing)

Méthodes asymétriques:
UCT
certaines fonctions sont
réservées à des UCT UCT
spécifiques
 Files d’attentes séparées UCT
pour chaque UCT
UCT

Ch. 6 74
Symétrique ou non?

La manière la plus normale de gérer
plusieurs UCT est la symétrique
 Plus simple à gérer

Cependant l’asymétrique a un avantage :
 ???

Ch. 6 75
Symétrique ou non?

La manière la plus normale de gérer
plusieurs UCT est la symétrique
 Plus simple à gérer

Cependant l’asymétrique a un avantage :
 Étant donné que chaque UCT exécute des
fonctionnalités indépendantes, le temps perdu
en synchronisation entre UCT est réduit!
 Chapitre suivant

Ch. 6 76
Tableau de comparaison

Le tableau suivant fait une comparaison


globale des différentes techniques étudiées
Assurez-vous de comprendre chaque case

Ch. 6 77
Critère Préempt Motivation Temps de Temps de Effect sur Famine
sélection rotat. et atten. système processus

PAPS Max [w] non Simplicité Variable Minim. Favor. proc. Non
trib. UCT
FCFS
Bon pour
Optimisation Optimal, mais Peut être proc.
PCS Min[s] non souffre si des élevé (pour courts, Possible
des temps procs longs estimer les
SJF arrivent au début longs. des pénalise
trames) proc. longs

PCS Min[s-e] oui Évite le problème


de procs longs au
Meilleur, même si
des procs longs
Peut être Pénalise
élevé plus encore
SJF début arrivent au début Possible
proc. longs
préemp.

Variable selon Élevé si


Equité tranche, tranches
Tourniq. Tour fixe oui Équitable Non
Normalement courtes
élevé

Varie la longueur Peut être Variable


Files v. détails oui des tranches en Variable Peut être
élévé
multiniv fonction des
évitée
besoins
.

w: temps total dans file prêt jusqu’à présent; e: temps en exec jusqu’à présent
s: temps demandé;
Ch. 6
Famine est ‘renvoi infini’ 78
Exemple: Temps plus court restant
Processus Temps Temps Priorité
Arrivée Cycle (0 est la plus haute)
A 0 6 3

Temps 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
A=6 A=5 B=3 B=2 B=1 A=4 A=3 A=2 A=1     C=5 C=4 C=3 C=2 C=1 D=3 D=2 D=1
UCT
File Prêt A=6 A=5 B=3
A=4
B=2
A=4
B=1
A=4
                D=3 D=3 D=3 D=3 D=2 D=1

B 2 3 1
C 11 5 2
D 13 3 0

Ch. 6 79
Exemple: tourniquet avec tranche = 4
Processus Temps Temps Priorité
Arrivée Cycle (0 est la plus haute)
A 0 6 3

Temps 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
UCT A=6 A=5 A=4 A=3 B=3 B=2 B=1 A=2 A=1     C=5 C=4 C=3 C=2 D=3 D=2 D=1 C=1

A=6 A=5 A=4 A=3 A=2 A=2 A=2         C=5 C=4 C=3 C=2 D=3 D=2 D=1 C=1
File B=3 B=3 D=3 D=3 C=1 C=1 C=1
Prêt

B 2 3 1
C 11 5 2
D 13 3 0

Ch. 6 80
Exemple: Avec 2 UCT, tranche = 5

Processus Temps de cycle Arrivée


A 20 0
B 10 4
C 3 2
D 15 8

Temps 0 1 2 3 4 5 6 7 8 9 10 11 12 1 14 15 16 17 18 19 20 21 22 23 24
3

UCT1 A A A A A A A A A A D D D D D D D D D D D D D D D

UCT2     C C C B B B B B B B B B B A A A A A A A A A A

File Prêt A A A A A B B B B B D D D D D A A A A A A A A A A
C C C A A A A A B B B B B D D D D D D D D D D
B   D D A A A A A              

Ch. 6 81
Exercice 2: deux UCT, une seule file et tranche=4

Processus Temps de cycle Arrivée


A 8 0
B 6 1
C 3 2
D 12 3

Temps 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
UCT1 A C A D D
UCT2 B D B
File A A A A B C D A D
Prêt B B B C D A B
C C D A B D
D A B

Ch. 6 82
Quelques formules pour le tourniquet

Soit :
 s le temps pour une commutation de contexte
 q la tranche
 r le temps de cycle moyen d’un processus

Quelle est l’efficacité E d’utilisation de l’UCT dans les cas suivants:
 q=∞
 Identique à PAPS
 E = r/(r+s)
 q>r
 Les cycles qui excèdent q seront interrompus, cependant en moyenne E sera le
même que dans le cas précédent
 C’est le cas de q idéal mentionné avant (où la grande majorité des cycles n’est pas
interrompue)
 s<q<r
 Un proc moyen subira r/q changements de contexte, donc
• E = r/(r+sr/q) = q/(q+s)
 s=q<r
 Comme le cas précédent, mais avec s=q, E = ½
 q presque 0
 Supposant que encore s<q, nous sommes dans le cas s<q<r, mais E s’approche
de 0

Ch. 6 83
MATÉRIAUX SUPPLÉMENTAIRES

Ch. 6 84
Méthode d’évaluation et comparaison
d’algorithmes (section plutôt à lire)


Modélisation déterministe

Modèles de files d’attente (queuing theory)

Simulation

Implantation

Ch. 6 85
Modélisation déterministe

Essentiellement, ce que nous avons déjà
fait en étudiant le comportement de
plusieurs algorithmes sur plusieurs
exemples

Ch. 6 86
Utilisation de la théorie des files (queuing th.)


Méthode analytique basée sur la théorie
des probabilités

Modèle simplifié: notamment, les temps du
SE sont ignorés

Cependant, elle rend possibles des
estimées

Ch. 6 87
Théorie des files: la formule de Little

Un résultat important:
n=  W
 n: longueur moyenne de la file d ’attente
  : débit d ’arrivée de travaux dans file
 W: temps d ’attente moyen dans la file (temps de service)

P. ex.
  si les travaux arrivent 3 par sec.
 W et il restent dans la file 2 secs
 n la longueur moyenne de la file sera ???

Exercice: Résoudre aussi pour  et W

Observer que afin que n soit stable,   W doit être stable
 Un débit d’arrivée plus rapide doit impliquer un temps de
service mineur, et vice-versa
 Si n doit rester 6 et  monte à 4, quel sera W

Utile entre autres pour déterminer l’espace à allouer pour la
file
Ch. 6 88
Simulation

Construire un modèle (simplifié...) de la
séquence d’événements dans le SE

Attribuer une durée de temps à chaque
événement

Supposer une certaine séquence
d’événements extérieurs (p.ex. arrivée de
travaux, etc.)

Exécuter le modèle pour cette séquence
afin d’obtenir des stats

Ch. 6 89
Implémentation

Implémenter l’algorithme

Exécuter dans le système réel ou des
mélanges de travaux typiques (benchmark)

Obtenir des statistiques,
 en tirer des conclusions...

Ch. 6 90
Points importants dans ce chapitre

Files d’attente pour UCT

Critères d’ordonnancement

Algorithmes d’ordonnancement
 FCFS: simple, non optimal
 PCS: optimal, implantation difficile
 moyenne exponentielle
 Priorités
 Tourniquet: sélection du quantum

Évaluation des méthodes, théorie des files,
 formule de Little

Ch. 6 91
Manuel: Pas sujet d’examen

Sections 6.6, 6.7, 6.8

Ch. 6 92
Question sur tourniquet (Round Robin)

Lorsque un processus a un temps de cycle inferieur au quantum ou
simplement finit son exécution à l'intérieure du quantum, l'UCT assigne le
temps restant pour le prochain processus disponible ou bien attend-elle la
fin du quantum (restant de cette façon du temps dans lequel l'UCT est libre).
Je vous pose cette question, car j'ai trouvé des réponses diverses dans la
littérature.

-----------

Réponse

Il faudrait des raisons très particulières pour laisser l’UCT libre (idle) en
attente que le temps du quantum passe. Je ne doute pas que ces raisons
pourraient exister (p.ex. ordonnanceur rigide qui ne peut intervenir qu’à
intervalles fixes, possiblement dans un système à temps réel). Cependant la
solution normale est que quand un processus laisse l’UCT, normalement
pour un appel au système, alors l’ordonnanceur trouve tout de suite un
autre processus à exécuter, s’il y en a un. C’est la solution utilisée dans
mes notes de cours, v. l’exemple.

Ch. 6 93
Systèmes temps réel

systèmes temps réel rigides (hard):
 les échéances sont critiques (p.ex. contrôle d’une chaîne
d`assemblage, animation graphique)
 il est essentiel de connaître la durée des fonctions
critiques
 il doit être possible de garantir que ces fonctions sont
effectivement exécutées dans ce temps (réservation de
ressources)
 ceci demande une structure de système très particulière


systèmes temps réel souples (soft):
 les échéances sont importantes, mais ne sont pas
toujours critiques (p.ex. systèmes téléphoniques )
 les processus critiques reçoivent la priorité

Ch. 6 94
Systèmes temps réel:
Problèmes d’attente dans plus. systèmes (ex. UNIX)


Dans UNIX ‘classique’ il n’est pas permis
d’effectuer changement de contexte pendant un
appel du système - et ces appels peuvent être longs

Pour le temps réel il est nécessaire de permettre la
préemption des appels de systèmes ou du noyau
en général

Donc Unix ‘classique’ n’est pas considéré
approprié pour le temps réel

Mais des variétés appropriées de UNIX ont été
conçues

Ch. 6 95
Inversion de priorité et héritage de priorités

Quand un processus de haute priorité doit
attendre pour des processus de moindre
priorité (p.ex. a besoin de données produites par
ces derniers)


Pour permettre à ces derniers de finir
rapidement, on peut lui faire hériter la
priorité du processus plus prioritaire

Ch. 6 96
Solaris 2: lire dans le manuel pour voir l’application pratique
de plusieurs concepts discutés

Priorités et préemption

Files multiniveau à retour avec
changement de priorité

Tranches plus grandes pour les processus
moins prioritaires

Les procs interactifs sont plus prioritaires
que les les procs tributaires de l’UCT

La plus haute priorité aux procs temps réel

Tourniquet pour les fils de priorités égales

Ch. 6 97
Ordonnancement et priorités en Solaris 2

Ch. 6 98

Vous aimerez peut-être aussi