64
1 Module 4 - Ordonnancement Processus Module 4 - Ordonnancement Processus Lecture: Chapitre 5 Lecture: Chapitre 5

Lecture: Chapitre 5

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Lecture: Chapitre 5

1

Module 4 - Ordonnancement ProcessusModule 4 - Ordonnancement Processus

Lecture: Chapitre 5Lecture: Chapitre 5

Page 2: Lecture: Chapitre 5

Ch. 5

2

Aperçu du moduleAperçu du module

Concepts de base Critères d’ordonnancement Algorithmes d’ordonnancement Ordonnancement de multiprocesseurs Évaluation d’algorithmes

Page 3: Lecture: Chapitre 5

Ch. 5

3

Diagramme de transition d`états d`un processusDiagramme de transition d`états d`un processus

Page 4: Lecture: Chapitre 5

Ch. 5

4

Files d’attente de processus pour Files d’attente de processus pour ordonnancementordonnancement

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

Page 5: Lecture: Chapitre 5

Ch. 5

5

Concepts de baseConcepts de base

La multiprogrammation est conçue pour obtenir une utilisation maximale des ressources, surtout l’UCT

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 doit viser à une utilisation optimale de l ’UCT

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

Doit comprendre le comportement des processus Pour faire de bonne décision d’ordonnancement

Page 6: Lecture: Chapitre 5

Ch. 5

6

Les cycles d’un processusLes cycles d’un processus

Cycles (bursts) d’UCT et E/S: l’exécution d’un processus consiste de séquences d’exécution sur UCT et d’attentes E/S

Page 7: Lecture: Chapitre 5

Ch. 5

7

Observation expérimentale: dans un système typique, nous observerons un grand nombre de

court cycles, et un petit nombre de long cycles Les programmes tributaires de l ’UCT auront normalm. un

petit nombre de long cycles UCT Les programmes tributaires de l ’E/S auront normalm. un

grand nombre de court cycles UCT

Histogramme de durée des cycles UCTHistogramme de durée des cycles UCT

Page 8: Lecture: Chapitre 5

Ch. 5

8

Quand invoquer l’ordonnanceurQuand invoquer l’ordonnanceur L ’ordonnanceur doit prendre sa décision chaque fois que le

processus exécutant est interrompu, c’e-à.-d. un processus se présente en tant que nouveau ou se termine ou un processus exécutant devient bloqué en attente un processus change d’exécutant/running à prêt/ready un processus change de attente à prêt/read en conclusion, tout événement dans un système cause une

interruption de l’UCT et l’intervention de l’ordonnanceur, qui devra prendre une décision concernant quel proc ou fil aura l’UCT après

Préemption: on a préemption dans les derniers deux cas si on enlève l’UCT à un processus qui l’avait et peut continuer à s’en servir

Dans les 1ers deux cas, il n’y a pas de préemption Plusieurs pbs à résoudre dans le cas de préemption

Page 9: Lecture: Chapitre 5

Ch. 5

9

DispatcheurDispatcheur

Le code du SE qui donne le contrôle au processus choisi par l’ordonnanceur. Il doit se préoccuper de: changer de contexte changer à mode usager réamorcer le processus choisi

Attente de dispatcheur (dispatcher latency) le temps nécessaire pour exécuter les

fonctions du dispatcheur il est souvent négligé, il faut supposer qu’il soit

petit par rapport à la longueur d’un cycle

Page 10: Lecture: Chapitre 5

Ch. 5

10

Critères d’ordonnancementCritères d’ordonnancement

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

Quand l’UCT devient disponible, lequel choisir?

L’idée générale est d’effectuer le choix dans l’intérêt de l’efficacité d’utilisation de la machine

Mais cette dernière peut être jugée selon différents critères…

Page 11: Lecture: Chapitre 5

Ch. 5

11

Critères d’ordonnancementCritères d’ordonnancement

Raison principale pour l’ordonnancement Pourcentage d ’utilisation: garder UCT et modules E/S

occupés Systèmes à temps partagés?

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

Serveurs? Débit = Throughput: nombre de processus qui complètent

dans l ’unité de temps Systèmes de traitement par lots (batch)?

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

Systèmes chargés? Temps d’attente: attente dans la file prêt (somme de tout le

temps passé en file prêt)

Page 12: Lecture: Chapitre 5

Ch. 5

12

Critères d’ordonnancement: Critères d’ordonnancement: maximiser/minimisermaximiser/minimiser

À maximiser Utilisation UCT: pourcentage d’utilisation Débit = Throughput: nombre de processus qui

complètent dans l ’unité de temps À minimiser

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

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

Temps d’attente: attente dans la file prêt

Page 13: Lecture: Chapitre 5

Ch. 5

13

Exemple de mesure des critères d’ordonnancementExemple de mesure des critères d’ordonnancement

Utilisation de l’UCT: 100%

Temps de réponse (P3, P2): P3: 3 P2: 1

Débit : 4/24

Temps de rotation (P3, P2): P3: 5 P2: 20

Temps d’attente (P2): P2: 13

P1 P2 P3 P4 P1 P2

P1

0         4 5   7     10,11,12                  20    22   24 

P2 P3 P4

Time

Process arrival

Page 14: Lecture: Chapitre 5

Ch. 5

14

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

nous étudierons des cas spécifiquesnous étudierons des cas spécifiques

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

Page 15: Lecture: Chapitre 5

Ch. 5

15

Premier arrivé, premier servi Premier arrivé, premier servi (First come, first serve, FCFS)(First come, first serve, FCFS)

• Notez, aucune préemption

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 est:

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

P1 P2 P3

24 27 300

Page 16: Lecture: Chapitre 5

Ch. 5

16

Premier arrivé, premier serviPremier arrivé, premier servi

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

24 27 300

Page 17: Lecture: Chapitre 5

Ch. 5

17

Ordonnancement FCFS (suite)Ordonnancement FCFS (suite)

Si les mêmes processus arrivent à 0 mais dans l’ordre P2 , P3 , P1 .

Le diagramme de Gantt est:

Temps d’attente pour P1 = 6 P2 = 0 P3 = 3 Temps moyen d’attente: (6 + 0 + 3)/3 = 3 Beaucoup mieux! Donc pour cette technique, le temps d’attente moyen

peut varier grandement Exercice: calculer aussi le temps moyen de rotation, débit, etc.

P1P3P2

63 300

Page 18: Lecture: Chapitre 5

Ch. 5

18

Tenir compte du temps d’arrivée!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: P2 arrive à temps 0 P1 arrive à temps 2 P3 arrive à temps 5

Page 19: Lecture: Chapitre 5

Ch. 5

19

Effet d’accumulation Effet d’accumulation (convoy effect)(convoy effect) dans FCFS dans FCFS

Supposons un processus tributaire de l’UCT et plusieurs tributaires de l`E/S (situation assez normale)

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

Le processus tributaire de l’UCT fait une E/S: les autres proc exécutent rapidement leur cycle UCT et retournent sur l’attente E/S: UCT sous-utilisée

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

Une possibilité: interrompre de temps en temps le proc tributaires de l’UCT pour permettre aux autres procs d’exécuter (préemption)

Page 20: Lecture: Chapitre 5

Ch. 5

20

Plus Court d’abord = Shortest Job First (SJF)Plus Court d’abord = Shortest Job First (SJF)

Le processus le plus court part le premier

Optimal en principe du point de vue du temps d’attente moyen (v. le dernier exemple)

Mais comment savons-nous

Page 21: Lecture: Chapitre 5

Ch. 5

21

SJF avec préemption ou nonSJF 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 donnée à ce nouveau processus SRTF: shortest remaining-time first

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

Observation: SRTF est plus logique car de toute façon le processus exécutant sera interrompu par l’arrivée du nouveau processus

Il est retourné à l’état prêt

Page 22: Lecture: Chapitre 5

Ch. 5

22

ProcessusArrivée Cycle

P1 0 7

P2 2 4

P3 4 1

P4 5 4

SJF (sans préemption)

Temps d’attente moyen = (0 + 6 + 3 + 7)/4 = 4

Exemple de SJF sans préemptionExemple de SJF sans préemption

P1 P3 P2

73 160

P4

8 12

P2 arr. P3 arr. P4 arr

Page 23: Lecture: Chapitre 5

Ch. 5

23

Exemple de SJF avec préemptionExemple de SJF avec préemption

ProcessusArrivée Cycle

P1 0 7

P2 2 4

P3 4 1

P4 5 4 SJF (préemptive)

Temps moyen d`attente = (9 + 1 + 0 +2)/4 = 3 P1 attend de 2 à 11, P2 de 4 à 5, P4 de 5 à 7

P1 P3P2

42 110

P4

5 7

P2 P1

16

P2 arr. P3 arr. P4 arr

Page 24: Lecture: Chapitre 5

Ch. 5

24

Comment déterminer la longueur des cycles à l’avance?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. moyenne exponentielle

Page 25: Lecture: Chapitre 5

Ch. 5

25

Estimation de la durée du prochain cycleEstimation de la durée du prochain cycle

Ti : la durée du ième cycle de l’UCT pour ce processus

Si : la valeur estimée du le ième cycle de l’UCT pour ce processus. Un choix simple est: S n+1 = (1/n) (une simple

moyenne) Nous pouvons éviter de recalculer la

somme en récrivant: Sn+1 = (1/n) Tn + ((n-1)/n) Sn

Ceci donne un poids identique à chaque cycle

n

iiT

1

Page 26: Lecture: Chapitre 5

Ch. 5

26

Estimation de la durée du prochain cycleEstimation de la durée du prochain cycle

Mais les cycles récents sont plus représentatifs des comportements à venir

La moyenne exponentielle permet de donner plus de poids aux cycles récents: Sn+1 = Tn+ (1-) Sn ; 0 <= <= 1 plus de poids est mis aux cycles récents

lorsque > 1/n Par expansion, nous voyons que le poids de

chaque cycle décroît exponentiellement Sn+1 = Tn + (1-)Tn-1 + ... (1-)i Tn-i + ... + (1-)n S1

la valeur estimée S1 du 1er cycle est fixée à 0 pour donner priorité aux nouveaux processus

Page 27: Lecture: Chapitre 5

Ch. 5

27

Décroissance Exponentielle des Coefficients Décroissance Exponentielle des Coefficients [Stallings][Stallings]

Stallings

Page 28: Lecture: Chapitre 5

Ch. 5

28

Décroissance Exponentielle des Coefficients Décroissance Exponentielle des Coefficients [Stallings][Stallings]

S1 = 0 (priorité aux nouveaux processus) Un coefficient plus élevé réagit plus rapidement aux

changements de comportement Stallings

Page 29: Lecture: Chapitre 5

Ch. 5

29

Un deuxième exemple Un deuxième exemple [Stallings][Stallings]

Stallings

Page 30: Lecture: Chapitre 5

Ch. 5

30

Comment choisir le coefficient Comment choisir le coefficient

Un petit coefficient est avantageux quand un processus peut avoir des anomalies de comportement, après lesquelles il reprend son comportement précédent (il faut ignorer son comportement récent) cas limite: = 0 on reste sur l ’estimée initiale

Un coefficient élevé est avantageux quand un processus est susceptible de changer rapidement de type d ’activité et il reste sur ça cas limite: S n+1 = Tn

Le dernier cycle est le seul qui compte

Page 31: Lecture: Chapitre 5

Ch. 5

31

Le plus court d’abord SJF: critiqueLe plus court d’abord SJF: critique

Difficulté d’estimer la longueur à l’avance Les processus longs souffriront de famine lorsqu’il

y a un apport constant de processus courts La préemption est nécessaire pour environnements

à temps partagé Un processus long peut monopoliser l’UCT s’il est le

1er à entrer dans le système et il ne fait pas d’E/S Il y a assignation implicite de priorités:

préférences aux travaux plus courts

Page 32: Lecture: Chapitre 5

Ch. 5

32

PrioritésPriorités

Affectation d’une priorité à chaque processus (p.ex. un nombre entier)

souvent les petits chiffres dénotent des hautes priorités (dans UNIX)

0 la plus haute Windows fait l’inverse – donne un plus haute priorité aux plus

grands chiffres 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é

Priorités sont explicites Pour raisons politiques ou techniques

Priorités implicites Voir SJF - critiques

Page 33: Lecture: Chapitre 5

Ch. 5

33

Problème possible avec les prioritésProblè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)

Que faire avec les processus de même priorités?

FCFS Ajoutons la préemption -> le Tourniquet

Page 34: Lecture: Chapitre 5

Ch. 5

34

Tourniquet = Round-Robin (RR)Tourniquet = Round-Robin (RR)Le plus utilisé en pratiqueLe plus utilisé en pratique

Chaque processus est alloué un quantum de temps (p.ex. 10-100 millisecs.) pour s’exécuter (terminologie du livre: tranche de temps)

S’il s’exécute pour un quantum entier 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]

P[7] P[2]

P[6] P[3]

P[4]P[5]

La file prêt est un cercle (dont RR)

Page 35: Lecture: Chapitre 5

Ch. 5

35

Performance de tourniquetPerformance de tourniquet

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

Si q grand FCFS Si q petit... nous verrons

Page 36: Lecture: Chapitre 5

Ch. 5

36

Exemple: Tourniquet Quantum = 20Exemple: Tourniquet Quantum = 20

Processus Cycle

P1 53

P2 17

P3 68

P4 24

Normalement, temps de rotation (turnaround) plus élevé que SJF mais temps attente moyen meilleur – contrôlez!

P1 P2 P3 P4 P1 P3 P4 P1 P3 P3

0 20 37 57 77 97 117 121 134 154 162

Page 37: Lecture: Chapitre 5

Ch. 5

37

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

Page 38: Lecture: Chapitre 5

Ch. 5

38

Exemple pour voir l’importance d’un bon choix Exemple pour voir l’importance d’un bon choix de quantum de quantum (à développer comme exercice)(à développer comme exercice)

Trois cycles: A, B, C, toutes de 10

Essayer avec: q=1 q=10

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

Page 39: Lecture: Chapitre 5

Ch. 5

39

Le temps de rotation (turnaround) varie avec le Le temps de rotation (turnaround) varie avec le quantumquantum

Exemple qui montre que le temps de rotation moyen n ’améliore pas nécessairement en augmentant le quantum (sans considérer les temps de commutation contexte)

= FIFO

Page 40: Lecture: Chapitre 5

Ch. 5

40

Choix du quantum pour le tourniquet Choix du quantum pour le tourniquet [Stallings][Stallings]

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

doit être un peu plus grand que le cycle typique (pour donner le temps à la plupart des proc de terminer leur cycle, mais pas trop pour éviter de pénaliser les processus courts)

Stallingsv. ex. prec. où les point optimaux sont 6 et 7, et il a deux cycles de 6 et 7

Page 41: Lecture: Chapitre 5

Ch. 5

41

Exercices d’ordonnancementExercices d’ordonnancement

Trois processus P1, P2, P3 arrivent au temps 0 dans la file prêt Cycles UCT de P1: 14,12,17 Cycles UCT de P2: 2,2,2,3,2,2,2,3,2,2,2,3,2,2,2,3 Cycles UCT de P3: 6,3,8,2,1,3,4,1,2,9,7 Opération E/S de 6 unités de temps entre chaque cycle UCT

(en parallèle) Algorithmes d’ordonnancement

FCFS Tourniquet (quantum de 5) Non-preemptive SJF ou Preemptive SJF Tourniquet avec priorité: P2=P3>P1

Page 42: Lecture: Chapitre 5

Ch. 5

42

Files à plusieurs niveaux (multiples)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. tourniquet pour premier plan FCFS pour arrière-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 premier plan 20% pour arrière-plan

Page 43: Lecture: Chapitre 5

Ch. 5

43

Ordonnancement avec files multiplesOrdonnancement avec files multiples

Page 44: Lecture: Chapitre 5

Ch. 5

44

Files multiples et à retourFiles 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

Page 45: Lecture: Chapitre 5

Ch. 5

45

Files multiples et à retour (trois files)Files multiples et à retour (trois files)

PRIO = 0

PRIO = 1

PRIO = 2

Page 46: Lecture: Chapitre 5

Ch. 5

46

Exemple de files multiples à retourExemple de files multiples à retour

Trois files: Q0: tourniquet, quantum 8 msecs Q1: tourniquet, quantum 16 msecs Q2: FCFS

Ordonnancement: Un nouveau processus entre dans Q0, il 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 à demander des quantums

plus petits, il pourrait retourner à Q0 ou Q1

Page 47: Lecture: Chapitre 5

Ch. 5

47

Discussion de filesDiscussion de files multiples à retour multiples à retour

Le choix de paramètres affectent la performance. Assez flexible pour répondre au besoins de la majorité des

situations. Composer avec l’effet de l’accumulation (convoy effect):

Un processus tributaire de l’UCT avec de long temps de traitement

Plusieurs processus tributaires de l’E/S ayant petit temps de traitement

Même si tous les processus débutent au même niveau, le processus tributaire de l’UCT se déplace rapidement à la file ayant moins de priorité

Les processus tributaires de l’E/S demeurent dans les files de hautes priorités, ce qui permet un service rapide et de garder les modules E/S occupés

Page 48: Lecture: Chapitre 5

Ch. 5

48

En pratique...En pratique...

Les méthodes que nous avons vu sont toutes utilisées en pratique (sauf plus court servi pur qui est impossible)

Les SE sophistiqués fournissent au gérant du système une librairie de méthodes, qu’il peut 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 du quantum, coefficients, etc.

Page 49: Lecture: Chapitre 5

Ch. 5

49

Aussi…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 aux 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 aussi 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

Page 50: Lecture: Chapitre 5

Ch. 5

50

Résumé des algorithmes d’ordonnancementRésumé des algorithmes d’ordonnancement

Premier arrivé, premier servi (FCFS) simple, petit temps de système (overhead), qualités faibles

Plus court d’abords (SJF) Doit savoir les temps de traitements (pas pratique) Doit prédire en utilisant la moyenne exponentielle du passé

Ordonnancement avec priorité Un classe d’algorithmes

Tourniquet FCFS avec préemption

Files à plusieurs niveaux (Multilevel Queues) Possible d’utilisé différents algorithmes avec chaque file

Files multiples à retour (Multilevel Feedback Queues) Combine plusieurs techniques

Page 51: Lecture: Chapitre 5

Ch. 5

51

Survol des sujets avancés de l’ordonnancementSurvol des sujets avancés de l’ordonnancement

L’ordonnancement avec plusieurs UCTs identiques

Ordonnancement de fils Modèle d’évaluation

Page 52: Lecture: Chapitre 5

Ch. 5

52

Ordonnancement avec plusieurs UCTs Ordonnancement avec plusieurs UCTs identiques: identiques: homogénéitéhomogénéité

Une seule liste prêt pour toutes les UCTs (division travail = load sharing)

une liste séparée pour chaque UCT ne permettrait pas ça

méthodes symétriques: chaque UCT peut exécuter l ’ordonnancement et la répartition

méthodes asymétriques: ces fonctions sont réservées à une seule UCT

Page 53: Lecture: Chapitre 5

Ch. 5

53

Ordonnancement de threadsOrdonnancement de threads

Local: la librairie des threads pour une application donnée décide quel thread usager obtient un LWP disponible

Modèle « many to many »

Global: le noyau décide quel fil de noyau exécute sur l’UCT Modèle un à un

Exemple librarie Pthreads (Solaris)/* get the default attributes */pthread attr init(&attr);/* set the scheduling algorithm to PROCESS or SYSTEM */pthread attr setscope(&attr, PTHREAD_SCOPE_SYSTEM);/* set the scheduling policy - FIFO, RR, or OTHER */pthread attr setschedpolicy(&attr, SCHED_OTHER);

Page 54: Lecture: Chapitre 5

Ch. 5

54

Ordonnancement et priorités en Solaris 2Ordonnancement et priorités en Solaris 2

Page 55: Lecture: Chapitre 5

Ch. 5

55

Solaris 2: Solaris 2: lire dans le livre pour voir l’application pratique de lire dans le livre pour voir l’application pratique de plusieurs concepts discutésplusieurs concepts discutés

Priorités et préemption Files multiniveau à retour avec changement de

priorité Différentes quantums pour les différentes priorités

(plus grands pour priorités plus élevées) Priorité élevée pour les procs interactifs, plus

petite pour les procs tributaires de l’UCT La plus haute priorité aux procs temps réel Tourniquet pour les fils de priorités égales

Page 56: Lecture: Chapitre 5

Ch. 5

56

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

Modélisation déterministe

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

Simulation

Implantation

Page 57: Lecture: Chapitre 5

Ch. 5

57

Modélisation déterministeModélisation déterministe

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

Page 58: Lecture: Chapitre 5

Ch. 5

58

Utilisation de la théorie des files (queuing th.)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

Page 59: Lecture: Chapitre 5

Ch. 5

59

Théorie des files: la formule de LittleThé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

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 etW 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 doit être W?

Page 60: Lecture: Chapitre 5

Ch. 5

60

SimulationSimulation

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

Page 61: Lecture: Chapitre 5

Ch. 5

61

Implémentation 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...

Page 62: Lecture: Chapitre 5

Ch. 5

62

Tableau de comparaisonTableau de comparaison

Le tableau suivant fait une comparaison Le tableau suivant fait une comparaison globale des différentes techniques étudiéesglobale des différentes techniques étudiées

Page 63: Lecture: Chapitre 5

Ch. 5

63

Sélection Préem. Débit Réponse Temps de système

Effect sur processus

Famine

FCFS Max [w] Non p Variable Variable Minim. Favor. proc. trib. UCT

Non

Tourniq. Const. pVarie selon quantum

Bon pour proc courts

Minim. Juste Non

SJF Min[s] Non p ÉlévéBon pour proc courts

Peut être élévé

Pénalise proc. longs Possible

SJF préemp.

Min[s-e] p Élévé BonPeut être élévé

Pénalise proc. longs Possible

Files multiniv.

v. détails p Variable VariablePeut être élévé

VariablePossible

w: temps total dans système jusqu’à présent; e: temps en exec jusqu’à présent;

s: temps demandé; p: préemption

Page 64: Lecture: Chapitre 5

Ch. 5

64

Points importants dans ce chapitrePoints importants dans ce chapitre

Files d ’attente pour UCT Critères d ’ordonnancement Algorithmes d ’ordonnancement

FCFS: simple, non optimal SJF: optimal, implantation difficile

moyennage exponentiel Priorités Tourniquet: sélection du quantum

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