Ordonnancement Processus Chapitre 6 http w 3 uqo

  • Slides: 98
Download presentation
Ordonnancement Processus Chapitre 6 http: //w 3. uqo. ca/luigi/ 1

Ordonnancement Processus Chapitre 6 http: //w 3. uqo. ca/luigi/ 1

Aperçu du chapitre n n n Ch. 6 Concepts de base Critères d’ordonnancement Algorithmes

Aperçu du chapitre n n n Ch. 6 Concepts de base Critères d’ordonnancement Algorithmes d’ordonnancement Ordonnancement de multiprocesseurs Ordonnancement temps réel Évaluation d’algorithmes 2

Importance des concepts de ce chapitres n Les méthodes d’ordonnancement ont des nombreuses applications

Importance des concepts de ce chapitres n Les méthodes d’ordonnancement ont des nombreuses applications u Et ont été très étudiées, surtout avec des méthodes probabilistes et de simulation n Non seulement en informatique, mais aussi en gestion: u 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 n L’utilisation de critères d’ordonnancement efficaces est surtout importante pour les

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

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

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

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, proc 7 exécute sur UCT Ch. 6 6

Concepts de base n La multiprogrammation vise à obtenir une utilisation optimale des ressources

Concepts de base n La multiprogrammation vise à obtenir une utilisation optimale des ressources u et aussi un bon temps de réponse pour l’usager u n L’UCT est la ressource la plus précieuse dans un ordinateur, donc nous parlons d’elle u n Ch. 6 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 7

Les cycles d’un processus Ou autre service du SE n Ch. 6 Cycles (bursts)

Les cycles d’un processus Ou autre service du SE n Ch. 6 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 8

Durée normale des cycles n n Étant donné la grande vitesse de l’UCT par

Durée normale des cycles n n É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 u Calculs scientifiques etc. Ch. 6 9

Durée typique des cycles UCT n Observation expérimentale: u n n Ch. 6 dans

Durée typique des cycles UCT n Observation expérimentale: u n n Ch. 6 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 10

Quand exécuter l’ordonnanceur UCT n n n n Ch. 6 L ’ordonnanceur UCT doit

Quand exécuter l’ordonnanceur UCT n n n n Ch. 6 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 u P. ex. préemption dans le cas 1, 2, 4, 5 mais pas 3. 11

Ordonnanceur d’UCT n L’UCT est interrompue u Le proc exécutant perd l’UCT u L’interruption

Ordonnanceur d’UCT n L’UCT est interrompue u Le proc exécutant perd l’UCT u L’interruption est traitée u L’UCT doit être affectée à un proc. n Il y a une ou plusieurs files d’attente de processus pour l’UCT u Files de proc en état prêt n Ch. 6 L’ordonnanceur choisit quel processus en attente reçoit l’UCT 12

Dispatcheur (meilleur français: répartiteur) n Le dispatcheur met en exécution le processus choisi. Il

Dispatcheur (meilleur français: répartiteur) n Le dispatcheur met en exécution le processus choisi. Il doit se préoccuper de: u changer de contexte u reprendre le processus choisi u changer à mode usager Ch. 6 13

Critères d’ordonnancement n Il y aura normalement plusieurs processus dans la file prêt n

Critères d’ordonnancement n Il y aura normalement plusieurs processus dans la file prêt n Quand l’UCT devient disponible, lequel choisir? n Critères généraux: Bonne utilisation de l’UCT u Réponse rapide à l’usager u n Ch. 6 Mais ces critères peuvent être jugés différemment. . . 14

Defs à utiliser pour les exercices Critères spécifiques d’ordonnancement n n Utilisation UCT: pourcentage

Defs à utiliser pour les exercices Critères spécifiques d’ordonnancement n n 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) n Ch. 6 Temps de réponse: le temps entre une demande de l’usager et la réponse 15

Critères d’ordonnancement: maximiser/minimiser n n n Ch. 6 Utilisation UCT: pourcentage d’utilisation u à

Critères d’ordonnancement: maximiser/minimiser n n n Ch. 6 Utilisation UCT: pourcentage d’utilisation u à maximiser Débit = Throughput: nombre de processus qui complètent dans l ’unité de temps u à maximiser Temps de rotation (turnaround): temps terminaison moins temps arrivée u à minimiser Temps d’attente: attente dans la file prêt sans exécuter u à minimiser Temps de réponse (pour les systèmes interactifs): le temps entre une demande et la réponse u à minimiser 16

Examinons maintenant plusieurs méthodes d’ordonnancement et voyons comment elles se comportent par rapport à

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 (PAPS) = First come first serve (FCFS) Ch. 6 18

Premier arrivé, premier servi (First come, first serve, FCFS) Exemple: Processus Temps de cycle

Premier arrivé, premier servi (First come, first serve, FCFS) Exemple: Processus Temps de cycle P 1 24 P 2 3 P 3 3 Si les processus arrivent au temps 0 dans l’ordre: P 1 , P 2 , P Le diagramme Gantt pour l’utilisation de l’UCT est: P 1 0 P 2 24 P 3 27 30 Temps d’attente pour P 1= 0; P 2= 24; P 3= 27 Temps attente moyen: (0 + 24 + 27)/3 = 17 Ch. 6 19

Premier arrive, premier servi, dans ce cas n n Utilisation UCT = 100% Débit

Premier arrive, premier servi, dans ce cas n n Utilisation UCT = 100% Débit = 3/30 = 0, 1 u n 3 processus complétés en 30 unités de temps Temps de rotation moyen: (24+27+30)/3 = 27 P 1 0 Ch. 6 P 2 24 P 3 27 30 20

Tenir compte du temps d’arrivée! n n Dans le cas où les processus arrivent

Tenir compte du temps d’arrivée! n n 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: P 1 arrive à temps 0 et dure 24 u P 2 arrive à temps 2 et dure 3 u P 3 arrive à temps 10 et dure 3 u n n Donc P 1 attend 0 comme avant Mais P 2 attend 24 -2, etc. P 1 0 Ch. 6 arr P 2 arr P 3 P 2 24 P 3 27 30 21

FCFS Scheduling (Cont. ) Si les mêmes processus arrivent à 0 mais dans l’ordre

FCFS Scheduling (Cont. ) Si les mêmes processus arrivent à 0 mais dans l’ordre P 2 , P 3 , P 1. Le diagramme de Gantt est: P 2 0 n n n Ch. 6 P 3 3 P 1 6 30 Temps d’attente pour P 1 = 6 P 2 = 0 P 3 = 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. 22

Problème: Effet d’accumulation ou effet convoi n n Quand il y a une voiture

Problème: Effet d’accumulation ou effet convoi n n 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 u créant un vide après la voiture lente n Ch. 6 Ceci se répète chaque fois qu’on rencontre une voiture lente 23

Effet d’accumulation (effet convoi) dans FCFS n Supposons (situation normale) u u n n

Effet d’accumulation (effet convoi) dans FCFS n Supposons (situation normale) u u n n n Les processus tributaires de l’E/S attendent l’UCT: E/S sousutilisé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 u 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) u Ch. 6 un processus tributaire de l’UCT qui exécute (cycles longs) et plusieurs tributaires de l`E/S en attente (cycles courts) On fait ça 24

Exemple n Supposons u P 1: tributaire de l’UCT On se retrouve à la

Exemple n Supposons u P 1: tributaire de l’UCT On se retrouve à la situation initiale avec P 1 en tête et probabl. P 2 et P 3 après u P 2, P 3: tributaires de l’E/S P 1 demande une E/S Ch. 6 P 2 P 3 UCT libre Le convoi qui passe pendant que P 1 fait son E/S P 1 L’E/S de P 1 a terminé mais les E/S de P 2 et P 3 continuent 25

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

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

Plus Court d’abord = Shortest Job First (SJF) n n Le processus qui demande

Plus Court d’abord = Shortest Job First (SJF) n n Le processus qui demande moins d’UCT part le premier Optimal du point de vue du temps d’attente moyen u (v. exemple précédent) P 2 0 P 3 3 P 1 6 30 Temps moyen d’attente: (6 + 0 + 3)/3 = 3 était 17 pour PAPS n Temps de rotation moyen: (3+6+30)/3 = 13 était 27 pour PAPS n Beaucoup mieux que PAPS! Mais comment savons-nous quel processus demande moins d’UCT! u Supposons pour l’instant qu’on puisse n Ch. 6 27

PCS avec préemption ou non n Avec préemption: u si un processus qui dure

PCS avec préemption ou non n Avec préemption: u si un processus qui dure moins que le restant du processus courant se présente plus tard, u l’UCT est enlevée au proc courant et donnée à ce nouveau processus F SRTF: shortest remaining-time first n Ch. 6 Sans préemption: on permet au processus courant de terminer son cycle 28

 Example de PCS sans préemption n Processus Arrivée Cycle UCT P 1 P

Example de PCS sans préemption n Processus Arrivée Cycle UCT P 1 P 2 P 3 P 4 7 4 1 4 0 2 4 5 PCS (sans préemption) P 1 0 n n Ch. 6 P 3 7 P 2 8 P 4 12 16 P 2 arr. P 3 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 Exercice: calculer avec PAPS 29

Exemple de PCS avec préemption Processus n Arrivée Cycle 0 2 4 5 7

Exemple de PCS avec préemption Processus n Arrivée Cycle 0 2 4 5 7 4 1 4 P 1 P 2 P 3 P 4 PCS (préemptive) P 1 0 P 2 2 P 3 4 P 2 5 P 4 7 P 1 11 16 P 2 arr. P 3 arr. P 4 arr n Temps moyen d`attente = (9 + 1 + 0 +2)/4 = 3 était 4 u n Ch. 6 P 1 attend de 2 à 11, P 2 de 4 à 5, P 3 n’attend pas, P 4 de 5 à 7 Temps de rotation moyen = 16+ (7 -2) + (5 -4) + (11 -5) = 7 était 8 30

Processus Arrivée P 1 0 P 2 2 P 3 4 P 4 5

Processus Arrivée P 1 0 P 2 2 P 3 4 P 4 5 Calcul + détaillé Files attente P 1=7 P 1=5 P 2=4 P 1 0 P 1=5 P 2=2 P 3=1 P 4=4 P 2 2 P 3 4 P 1=5 P 4=4 P 2 5 P 1=5 P 4 7 Cycle 7 4 1 4 P 1 11 16 P 2 arr. P 3 arr. P 4 arr Ch. 6 31

Préemption ou non n La préemption est le cas normal pour l’UCT car un

Préemption ou non n La préemption est le cas normal pour l’UCT car un événement quelconque cause une interruption et à ce moment là u l’ordonnanceur devra prendre une décision sur le prochain proc à exécuter n Mais pour la plupart des périphériques la préemption est impossible: u P. ex. dans une imprimante il faut toujours terminer l’impression courante avant d’en amorcer une nouvelle u Pareillement pour un disque Ch. 6 32

Comment déterminer la longueur des cycles à l’avance? n Quelques méthodes proposent de déterminer

Comment déterminer la longueur des cycles à l’avance? n Quelques méthodes proposent de déterminer le comportement futur d’un processus sur la base de son passé u 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

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? ! 13 13 6 Ch. 6 4 6 tendance 4 34

Différentes méthodes en principe n n Ch. 6 Comportement constant d’un processus: u Un

Différentes méthodes en principe n n Ch. 6 Comportement constant d’un processus: u Un processus qui a eu des cycles d’UCT autour de 5 millisecondes en moyenne continuera comme ça Comportement variable d’un processus: u Un processus qui avant avait des cycles d’UCT de 10 ms en moyenne, maintenant a allongé ces cycles, qui sont plutôt de 13 ms u La durée des cycles plus récents doit être considérée plus importante pour la prévision des prochains cycles 35

Estimation de la durée du prochain cycle hypothèse de comportement constant n n Ti

Estimation de la durée du prochain cycle hypothèse de comportement constant n n 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. u Sn+1 l’estimée courante u n Sn l’estimée précédente Un choix simple est: S u Sn+1 = (1/n) {i=1 à n} Ti (une simple moyenne) n Ch. 6 Ceci donne un poids identique à chaque cycle 36

Estimation de la durée du prochain cycle hypothèse de comportement variable n Nous devons

Estimation de la durée du prochain cycle hypothèse de comportement variable n Nous devons décider quelle importance donner u Aux changements plus récents u Par rapport aux observations précédentes Ch. 6 37

Coefficient α pour le poids 0 1 α 1 -α Importance du cycle le

Coefficient α pour le poids 0 1 α 1 -α Importance du cycle le plus récent Importance de l’estim. 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 n n Les

Estimation de la durée du prochain cycle hypothèse de comportement variable n n 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: u. Sn+1 = a Tn+ (1 -a) Sn ; 0 <= a n n n Ch. 6 <= 1 a : le coéfficient d’importance Tn: la durée du cycle le plus récent S: l’estimation u Sn+1 l’estimation courante (après le cycle Tn) u Sn l’estimation précédente 39

Pourquoi ‘exponentielle’ n Par expansion, nous voyons que le poids de chaque cycle décroît

Pourquoi ‘exponentielle’ n Par expansion, nous voyons que le poids de chaque cycle décroît exponentiellement u Sn+1 = a. Tn + (1 -a)a. Tn-1 +. . . (1 -a)i a. Tn-i + . . . + (1 -a)n S 1 n Ch. 6 la valeur estimée S 1 du 1 er cycle peut être fixée à 0 pour donner priorité max. aux nouveaux processus 40

Importance de différents valeurs de coefficients a [Stallings] Peu d’import. aux cycles récen Beaucoup

Importance de différents valeurs de coefficients a [Stallings] Peu d’import. aux cycles récen Beaucoup d’import. aux cycles récs 1=la plus récente Ch. 6 La durée des vieux cycles perd d’importance rapidement si on donne beaucoup d’importance aux cycles récents, et aussi le converse… Stallings 41

Importance de différents valeurs de coefficients [Stallings] n n Ch. 6 S 1 =

Importance de différents valeurs de coefficients [Stallings] n n Ch. 6 S 1 = 0 (priorité aux nouveaux processus) Un coefficient plus élevé réagit plus rapidement aux changements de comportement Stallings 42

Un deuxième exemple [Stallings] Stallings Ch. 6 43

Un deuxième exemple [Stallings] Stallings Ch. 6 43

Comment choisir le coefficient a n Un petit a assouplit les changements de comportement

Comment choisir le coefficient a n Un petit a assouplit les changements de comportement d’un processus u Il donne moins d’importance aux cycles récents u Il est avantageux quand un processus peut avoir des anomalies de comportement, après lesquelles il reprend son comportement précédent u Cas limite: a = 0 F n Un gros a réagit rapidement aux changements u Il donne plus d’importance aux cycles récents u Est avantageux quand un processus est susceptible de changer rapidement de type d’activité et il reste sur ça u Cas limite: a = 1: Sn+1 = Tn F Ch. 6 on reste sur l’estimée initiale Le dernier cycle est le seul qui compte 44

Exercice: Travailler cet exemple dans le manuel faire un calcul plus précis - aussi

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 n n Difficulté d’estimer la longueur à l’avance

Le Plus Court d’Abord SJF: critique n n Difficulté d’estimer la longueur à l’avance Plus pratique pour l’ordonnancement travaux que pour l’ordonnancement processus u n 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 u Famine possible pour les travaux cycles longs F Ch. 6 S’il y a apport continu de travaux cycles courts 46

Difficultés majeures avec les méthodes discutées n Premier arrivé, premier servi, FCFS: Temps moyen

Difficultés majeures avec les méthodes discutées n Premier arrivé, premier servi, FCFS: Temps moyen d’attente non-optimal u Mauvaise utilisation des ressources s’il y a apport continu de processus aux cycles longs (v. effet d’accumulation) u n Plus court servi, SJF: Difficulté d’estimer les cycles u Famine possible s’i y a apport continu de processus aux cycles courts u n Donc besoin d’une méthode systématiquement préemptive u Le tourniquet u 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 donc votre solution est de donner un peu de temps à chacun, cycliquement u u Ch. 6 47

Le tourniquet = Round-Robin (RR) Ch. 6 48

Le tourniquet = Round-Robin (RR) Ch. 6 48

Le tourniquet n Si j’ai une seule grande pizza et plusieurs personnes affamées, je

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

Tourniquet = Round-Robin (RR) Le plus utilisé en pratique n Chaque processus est alloué

Tourniquet = Round-Robin (RR) Le plus utilisé en pratique n Chaque processus est alloué une tranche de temps (p. ex. 10 -100 millisecs. ) pour exécuter u n n n 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] P[7] P[2] P[6] P[3] La file prêt est un cercle (dont RR) P[5] P[4] Ch. 6 50

Exemple: Tourniquet tranche = 20 Processus P 1 P 2 P 3 P 4

Exemple: Tourniquet tranche = 20 Processus P 1 P 2 P 3 P 4 53 17 68 24 P 1 0 n Ch. 6 Cycle 20 P 2 37 P 3 P 4 57 P 1 77 P 3 P 4 P 1 P 3 97 117 121 134 154 162 Observez u temps de rotation et temps d’attente moyens beaucoup plus élevés que PCS (exercice: calculez-les…) u mais aucun processus n’est favorisé 51

Performance de tourniquet n n n Ch. 6 S’il y a n processus dans

Performance de tourniquet n n n Ch. 6 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 52

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

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

Exemple pour voir l’importance d’un bon choix de tranche (à développer comme exercice) n Trois cycles: u A, B, C, tous de 10 n Essayer avec: u t=10 n Ch. 6 Dans ce deuxième cas, tourniquet fonctionne comme PAPS-FIFO et le temps de rotation moyen est meilleur 54

Le temps de rotation (turnaround) varie avec la tranche (exemple à travailler) = PAPS

Le temps de rotation (turnaround) varie avec la tranche (exemple à travailler) = PAPS Ch. 6 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) 55

Choix de la tranche pour le tourniquet n n doit être beaucoup plus grande

Choix de la tranche pour le tourniquet n n 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 n 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é n n n Ch. 6 Considérer la durée médiane des temps demandés

Critère approximé n n n Ch. 6 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 57

Comment déterminer la tranche en pratique n n Évidemment la durée médiane des cycles

Comment déterminer la tranche en pratique n n É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: u 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 n Solution

Détail: où mettre les processus qui arrivent au fur et à mesure n Solution du manuel – à utiliser pour les exercices, examen etc. u Les nouveaux procs sont mis après ceux qui sont déjà dans la file u Leur premier tour sera après le tour de tous les autres n Ch. 6 (Cependant on pourrait aussi les mettre *avant* pour lui donner une chance tout de suite) 59

Comparaison finale n n Ch. 6 La méthode du tourniquet n’est *pas* la meilleure

Comparaison finale n n Ch. 6 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 60

Méthodes avec priorités Ch. 6 61

Méthodes avec priorités Ch. 6 61

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

Priorités n Affectation d’une priorité à chaque processus (p. ex. un nombre entier) u souvent les petits chiffres dénotent des hautes priorités F 0 la plus haute n L’UCT est donnée au processus prêt avec la plus haute priorité u avec ou sans préemption u il y a une file prêt pour chaque priorité Ch. 6 62

Problème possible avec les priorités n n Famine: les processus moins prioritaires n’arrivent jamais

Problème possible avec les priorités n n Famine: les processus moins prioritaires n’arrivent jamais à exécuter Solution: vieillissement: u modifier la priorité d ’un processus en fonction de son âge et de son historique d ’exécution u le processus change de file d`attente n Ch. 6 Plus en général, la modification dynamique des priorités est une politique souvent utilisée (v. files à rétroaction ou retour) 63

Files à plusieurs niveaux (multiples) n La file prêt est séparée en plusieurs files,

Files à plusieurs niveaux (multiples) n La file prêt est séparée en plusieurs files, p. ex. travaux `d’arrière-plan` (background - batch) u travaux `de premier plan` (foreground - interactive) Chaque file a son propre algorithme d’ordonnancement, p. ex. u FCFS pour arrière-plan u tourniquet pour premier plan Comment ordonnancer entre files? u Priorité fixe à chaque file famine possible, ou u Chaque file reçoit un certain pourcentage de temps UCT, p. ex. u n n Ch. 6 F 80% pour arrière-plan F 20% pour premier plan 64

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

Ordonnancement avec files multiples (ex. : serveur principal d’une université) Ch. 6 Un proc peut être servi seulement si toutes les files de priorités plus élevées sont vides 65

Files multiples et à retour n n Un processus peut passer d’une file à

Files multiples et à retour n n 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 u algorithmes d’ordonnancement pour chaque file u algorithmes pour décider quand un proc doit passer d ’une file à l`autre u algorithme pour déterminer, pour un proc qui devient prêt, sur quelle file il doit être mis u Ch. 6 66

Files multiples et à retour PRIO = 0 la + élevée PRIO = 1

Files multiples et à retour PRIO = 0 la + élevée PRIO = 1 PRIO = 2 Ch. 6 67

Exemple de files multiples à retour n Trois files: P 0: tourniquet, tranche =

Exemple de files multiples à retour n Trois files: P 0: tourniquet, tranche = 8 msecs u P 1: tourniquet, tranche = 16 msecs u P 2: FCFS u n Ordonnancement: Un nouveau processus entre dans Q 0, il reçoit 8 msecs d’UCT u S’il ne finit pas dans les 8 msecs, il est mis dans Q 1, il reçoit 16 msecs additionnels u S’il ne finit pas encore, il est interrompu et mis dans Q 2 u Si plus tard il commence à avoir des cycles plus courts, il pourrait retourner à Q 0 ou Q 1 u Ch. 6 68

Exercice n Exemple concret u Dans un système avec files multiples, un processus a

Exercice n Exemple concret u Dans un système avec files multiples, un processus a besoin de 50 secondes d’UCT (sans appels au SE). u Dans la première file on lui donne 5 secondes et à chaque file successive on lui donne le double (10, 20, 40 …) u 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 … Ch. 6 70

En pratique. . . n n Ch. 6 Les méthodes que nous avons vu

En pratique. . . n n Ch. 6 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 71

Aussi… n n n Ch. 6 Notre étude des méthodes d’ordonnancement est théorique, ne

Aussi… n n n Ch. 6 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 u 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. 72

Plusieurs UCTs n n Dans le passé, la vitesse des UCT augmentait rapidement avec

Plusieurs UCTs n n 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 u Ch. 6 Surtout, la charge de gestion de ces UCTs ralentit l’ordinateur 73

Ordonnancement avec plusieurs UCTs identiques: homogénéité n n Ch. 6 Méthodes symétriques: chaque UCT

Ordonnancement avec plusieurs UCTs identiques: homogénéité n n Ch. 6 Méthodes symétriques: chaque UCT peut exécuter l’ordonnancement et la répartition u Une seule liste prêt pour toutes les UCTs (division travail = load sharing) Méthodes asymétriques: certaines fonctions sont réservées à des UCT spécifiques u Files d’attentes séparées pour chaque UCT UC T UC T 74

Symétrique ou non? n La manière la plus normale de gérer plusieurs UCT est

Symétrique ou non? n La manière la plus normale de gérer plusieurs UCT est la symétrique u Plus simple à gérer n Cependant l’asymétrique a un avantage : u ? ? ? Ch. 6 75

Symétrique ou non? n La manière la plus normale de gérer plusieurs UCT est

Symétrique ou non? n La manière la plus normale de gérer plusieurs UCT est la symétrique u Plus simple à gérer n Cependant l’asymétrique a un avantage : u Étant donné que chaque UCT exécute des fonctionnalités indépendantes, le temps perdu en synchronisation entre UCT est réduit! F Chapitre suivant Ch. 6 76

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

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

PAPS FCFS Critère sélection Préempt Motivation Temps de rotat. et atten. Temps de Effect

PAPS FCFS Critère sélection Préempt Motivation Temps de rotat. et atten. Temps de Effect sur Famine système processus Max [w] non Simplicité Variable Minim. Optimisation des temps Optimal, mais souffre si des procs longs arrivent au début Peut être élevé (pour estimer les longs. des trames) Évite le problème de procs longs au début Meilleur, même si des procs longs arrivent au début Peut être élevé Variable selon tranche, Normalement élevé Élevé si tranches courtes Variable Peut être élévé PCS SJF Min[s] non PCS SJF préemp. Min[s-e] oui Tourniq. Tour fixe oui Files multiniv. v. détails oui Equité Varie la longueur des tranches en fonction des besoins Favor. proc. trib. UCT Non Bon pour proc. courts, pénalise proc. longs Possible Pénalise plus encore proc. longs Possible Équitable Non Variable Peut être évitée w: temps total dans file prêt jusqu’à présent; e: temps en exec jusqu’à présent s: temps demandé; Famine est ‘renvoi infini’ Ch. 6 78

Exemple: Temps plus court restant Processus Temps Arrivée 0 2 11 13 A B

Exemple: Temps plus court restant Processus Temps Arrivée 0 2 11 13 A B C D Temps Cycle 6 3 5 3 Priorité (0 est la plus haute) 3 1 2 0 Temps 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 UCT File Prêt 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 A=6 A=5 B=3 A=4 B=2 A=4 B=1 A=4 D=3 D=3 D=2 D=1 Ch. 6 79

Exemple: tourniquet avec tranche = 4 Processus A B C D Temps Arrivée 0

Exemple: tourniquet avec tranche = 4 Processus A B C D Temps Arrivée 0 2 11 13 Temps UCT File Prêt Ch. 6 Temps Cycle 6 3 5 3 Priorité (0 est la plus haute) 3 1 2 0 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 A=6 A=5 A=4 A=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 B=3 A=3 B=3 A=2 A=2 C=5 C=4 C=3 D=3 C=2 D=3 C=1 D=2 C=1 D=1 C=1 80

Exemple: Avec 2 UCT, tranche = 5 Processus Temps de cycle A 20 B

Exemple: Avec 2 UCT, tranche = 5 Processus Temps de cycle A 20 B 10 C 3 D 15 Ch. 6 Arrivée 0 4 2 8 Temps 0 1 2 3 4 5 6 7 8 9 10 11 12 1 3 14 15 16 17 18 19 20 21 22 23 24 UCT 1 A A A A A D D D D UCT 2 C C C B B B B B A A A A A File Prêt A A A C A C B B A B A D B A D D B B A A A D A D A D 81

Exercice 2: deux UCT, une seule file et tranche=4 Processu s A B C

Exercice 2: deux UCT, une seule file et tranche=4 Processu s A B C D Ch. 6 Temps de cycle Arrivée 8 6 3 12 0 1 2 3 Temp s 1 2 UCT 1 UCT 2 A B File Prêt A 3 4 5 6 C A B 7 8 9 A D A B C D A 10 C D A B B D A B D 1 1 12 D 1 3 1 4 1 5 16 1 7 1 8 1 9 D D 82

Quelques formules pour le tourniquet n n Soit : u s le temps pour

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

MATÉRIAUX SUPPLÉMENTAIRES Ch. 6 84

MATÉRIAUX SUPPLÉMENTAIRES Ch. 6 84

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

Méthode d’évaluation et comparaison d’algorithmes (section plutôt à lire) Ch. 6 n Modélisation déterministe n Modèles de files d’attente (queuing theory) n Simulation n Implantation 85

Modélisation déterministe n Ch. 6 Essentiellement, ce que nous avons déjà fait en étudiant

Modélisation déterministe n Ch. 6 Essentiellement, ce que nous avons déjà fait en étudiant le comportement de plusieurs algorithmes sur plusieurs exemples 86

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

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

Théorie des files: la formule de Little n n Un résultat important: n =

Théorie des files: la formule de Little n n Un résultat important: n = W u n: longueur moyenne de la file d ’attente u : débit d ’arrivée de travaux dans file u W: temps d ’attente moyen dans la file (temps de service) P. ex. u si les travaux arrivent 3 par sec. u W et il restent dans la file 2 secs u 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 u Un débit d’arrivée plus rapide doit impliquer un temps de service mineur, et vice-versa F n Ch. 6 Si n doit rester 6 et monte à 4, quel sera W Utile entre autres pour déterminer l’espace à allouer pour la file 88

Simulation n n Ch. 6 Construire un modèle (simplifié. . . ) de la

Simulation n n Ch. 6 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 89

Implémentation n Implémenter l’algorithme Exécuter dans le système réel ou des mélanges de travaux

Implémentation n Implémenter l’algorithme Exécuter dans le système réel ou des mélanges de travaux typiques (benchmark) Obtenir des statistiques, u en tirer des conclusions. . . Ch. 6 90

Points importants dans ce chapitre n n n Files d’attente pour UCT Critères d’ordonnancement

Points importants dans ce chapitre n n n Files d’attente pour UCT Critères d’ordonnancement Algorithmes d’ordonnancement u FCFS: simple, non optimal u PCS: optimal, implantation difficile F moyenne exponentielle u Priorités u Tourniquet: sélection du quantum n Évaluation des méthodes, théorie des files, u formule de Little Ch. 6 91

Manuel: Pas sujet d’examen n Ch. 6 Sections 6. 6, 6. 7, 6. 8

Manuel: Pas sujet d’examen n Ch. 6 Sections 6. 6, 6. 7, 6. 8 92

Question sur tourniquet (Round Robin) n n Ch. 6 Lorsque un processus a un

Question sur tourniquet (Round Robin) n n Ch. 6 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. 93

Systèmes temps réel n n systèmes temps réel rigides (hard): u les échéances sont

Systèmes temps réel n n systèmes temps réel rigides (hard): u les échéances sont critiques (p. ex. contrôle d’une chaîne d`assemblage, animation graphique) u il est essentiel de connaître la durée des fonctions critiques u il doit être possible de garantir que ces fonctions sont effectivement exécutées dans ce temps (réservation de ressources) u ceci demande une structure de système très particulière systèmes temps réel souples (soft): u u Ch. 6 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é 94

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

Systèmes temps réel: Problèmes d’attente dans plus. systèmes (ex. UNIX) n n Ch. 6 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 95

Inversion de priorité et héritage de priorités n Quand un processus de haute priorité

Inversion de priorité et héritage de priorités n 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) n Ch. 6 Pour permettre à ces derniers de finir rapidement, on peut lui faire hériter la priorité du processus plus prioritaire 96

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

Solaris 2: lire dans le manuel pour voir l’application pratique de plusieurs concepts discutés n n n 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 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

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