La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

1 Module 4 - Ordonnancement Processus Lecture: Chapitre 5.

Présentations similaires


Présentation au sujet: "1 Module 4 - Ordonnancement Processus Lecture: Chapitre 5."— Transcription de la présentation:

1 1 Module 4 - Ordonnancement Processus Lecture: Chapitre 5

2 Ch. 52 Aperçu du module n Concepts de base n Critères dordonnancement n Algorithmes dordonnancement n Ordonnancement de multiprocesseurs n Évaluation dalgorithmes

3 Ch. 53 Diagramme de transition d`états d`un processus

4 Ch. 54 Files dattente de processus pour ordonnancement file prêt Nous ferons lhypothèse que le premier processus dans une file est celui qui utilise la ressource: ici, proc7 exécute

5 Ch. 55 Concepts de base n La multiprogrammation est conçue pour obtenir une utilisation maximale des ressources, surtout lUCT n 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 u doit viser à une utilisation optimale de l UCT n l UCT est la ressource la plus précieuse dans un ordinateur, donc nous parlons delle u Cependant, les principes que nous verrons s appliquent aussi à l ordonnancement des autres ressources (unités E/S, etc). n Doit comprendre le comportement des processus u Pour faire de bonne décision dordonnancement

6 Ch. 56 Les cycles dun processus n Cycles (bursts) dUCT et E/S: lexécution dun processus consiste de séquences dexécution sur UCT et dattentes E/S

7 Ch. 57 n Observation expérimentale: u dans un système typique, nous observerons un grand nombre de court cycles, et un petit nombre de long cycles n Les programmes tributaires de l UCT auront normalm. un petit nombre de long cycles UCT n Les programmes tributaires de l E/S auront normalm. un grand nombre de court cycles UCT Histogramme de durée des cycles UCT

8 Ch. 58 Quand invoquer lordonnanceur n L ordonnanceur doit prendre sa décision chaque fois que le processus exécutant est interrompu, ce-à.-d. u un processus se présente en tant que nouveau ou se termine ou u un processus exécutant devient bloqué en attente u un processus change dexécutant/running à prêt/ready u un processus change de attente à prêt/read u en conclusion, tout événement dans un système cause une interruption de lUCT et lintervention de lordonnanceur, qui devra prendre une décision concernant quel proc ou fil aura lUCT après n Préemption: on a préemption dans les derniers deux cas si on enlève lUCT à un processus qui lavait et peut continuer à sen servir n Dans les 1ers deux cas, il ny a pas de préemption n Plusieurs pbs à résoudre dans le cas de préemption

9 Ch. 59 Dispatcheur n Le code du SE qui donne le contrôle au processus choisi par lordonnanceur. Il doit se préoccuper de: u changer de contexte u changer à mode usager u réamorcer le processus choisi n Attente de dispatcheur (dispatcher latency) u le temps nécessaire pour exécuter les fonctions du dispatcheur u il est souvent négligé, il faut supposer quil soit petit par rapport à la longueur dun cycle

10 Ch. 510 Critères dordonnancement n Il y aura normalement plusieurs processus dans la file prêt n Quand lUCT devient disponible, lequel choisir? n Lidée générale est deffectuer le choix dans lintérêt de lefficacité dutilisation de la machine n Mais cette dernière peut être jugée selon différents critères…

11 Ch. 511 Critères dordonnancement n Raison principale pour lordonnancement u Pourcentage d utilisation: garder UCT et modules E/S occupés n Systèmes à temps partagés? u Temps de réponse (pour les systèmes interactifs): le temps entre une demande et la réponse n Serveurs? u Débit = Throughput: nombre de processus qui complètent dans l unité de temps n Systèmes de traitement par lots (batch)? u Temps de rotation = turnaround: le temps pris par le proc de son arrivée à sa termin. n Systèmes chargés? u Temps dattente: attente dans la file prêt (somme de tout le temps passé en file prêt)

12 Ch. 512 Critères dordonnancement: maximiser/minimiser n À maximiser u Utilisation UCT: pourcentage dutilisation u Débit = Throughput: nombre de processus qui complètent dans l unité de temps n À minimiser u Temps de réponse (pour les systèmes interactifs): le temps entre une demande et la réponse u Temps de rotation (turnaround): temps terminaison moins temps arrivée u Temps dattente: attente dans la file prêt

13 Ch. 513 Exemple de mesure des critères dordonnancement n Utilisation de lUCT: u 100% n Temps de réponse (P 3, P 2 ): u P 3 : 3 u P 2 : 1 n Débit : u 4/24 n Temps de rotation (P 3, P 2 ): u P 3 : 5 u P 2 : 20 n Temps dattente (P 2 ): u P 2 : 13 P1P1 P2P2 P3P3 P4P4 P1P1 P2P2 P1P ,11, P2P2 P3P3 P4P4 Time Process arrival

14 Ch. 514 Examinons maintenant plusieurs méthodes dordonnancement et voyons comment elles se comportent par rapport à ces critères nous étudierons des cas spécifiques létude du cas général demanderait recours à techniques probabilistes ou de simulation

15 Ch. 515 Premier arrivé, premier servi (First come, first serve, FCFS) Notez, aucune préemption Exemple:Processus Temps de cycle P124 P2 3 P3 3 Si les processus arrivent au temps 0 dans lordre: P1, P2, P3 Le diagramme Gantt est: Temps dattente pour P1= 0; P2= 24; P3= 27 Temps attente moyen: ( )/3 = 17 P1P1 P2P2 P3P

16 Ch. 516 Premier arrivé, premier servi n Utilisation UCT = 100% n Débit = 3/30 = 0,1 u 3 processus complétés en 30 unités de temps n Temps de rotation moyen: ( )/3 = 27 P1P1 P2P2 P3P

17 Ch. 517 Ordonnancement FCFS (suite) Si les mêmes processus arrivent à 0 mais dans lordre P 2, P 3, P 1. Le diagramme de Gantt est: n Temps dattente pour P 1 = 6 P 2 = 0 P 3 = 3 n Temps moyen dattente: ( )/3 = 3 n Beaucoup mieux! n Donc pour cette technique, le temps dattente moyen peut varier grandement n Exercice: calculer aussi le temps moyen de rotation, débit, etc. P1P1 P3P3 P2P

18 Ch. 518 Tenir compte du temps darrivée! n Dans le cas où les processus arrivent à moment différents, il faut soustraire les temps darrivée n Exercice: répéter les calculs si: u P2 arrive à temps 0 u P1 arrive à temps 2 u P3 arrive à temps 5

19 Ch. 519 Effet daccumulation (convoy effect) dans FCFS n Supposons un processus tributaire de lUCT et plusieurs tributaires de l`E/S (situation assez normale) n Les processus tributaires de lE/S attendent pour l UCT: E/S sous-utilisée (*) n Le processus tributaire de lUCT fait une E/S: les autres proc exécutent rapidement leur cycle UCT et retournent sur lattente E/S: UCT sous-utilisée n Processus tributaire de lUCT fini son E/S, puis les autres procs aussi : retour à la situation (*) n Une possibilité: interrompre de temps en temps le proc tributaires de lUCT pour permettre aux autres procs dexécuter (préemption)

20 Ch. 520 Plus Court dabord = Shortest Job First (SJF) n Le processus le plus court part le premier n Optimal en principe du point de vue du temps dattente moyen u (v. le dernier exemple) n Mais comment savons-nous

21 Ch. 521 SJF avec préemption ou non n Avec préemption: si un processus qui dure moins que le restant du processus courant se présente plus tard, lUCT est donnée à ce nouveau processus u SRTF: shortest remaining-time first n Sans préemption: on permet au processus courant de terminer son cycle u Observation: SRTF est plus logique car de toute façon le processus exécutant sera interrompu par larrivée du nouveau processus F Il est retourné à létat prêt

22 Ch. 522 ProcessusArrivéeCycle P 1 07 P 2 24 P 3 41 P 4 54 n SJF (sans préemption) n Temps dattente moyen = ( )/4 = 4 Exemple de SJF sans préemption P1P1 P3P3 P2P P4P4 812 P 2 arr. P 3 arr. P 4 arr

23 Ch. 523 Exemple de SJF avec préemption ProcessusArrivéeCycle P 1 07 P 2 24 P 3 41 P 4 54 n SJF (préemptive) n Temps moyen d`attente = ( )/4 = 3 u P1 attend de 2 à 11, P2 de 4 à 5, P4 de 5 à 7 P1P1 P3P3 P2P P4P4 57 P2P2 P1P1 16 P 2 arr. P 3 arr. P 4 arr

24 Ch. 524 Comment déterminer la longueur des cycles à lavance? n Quelques méthodes proposent de déterminer le comportement futur d un processus sur la base de son passé u p.ex. moyenne exponentielle

25 Ch. 525 Estimation de la durée du prochain cycle n T i : la durée du ième cycle de lUCT pour ce processus n S i : la valeur estimée du le ième cycle de lUCT pour ce processus. Un choix simple est: S n+1 = (1/n) (une simple moyenne) n Nous pouvons éviter de recalculer la somme en récrivant: u S n+1 = (1/n) T n + ((n-1)/n) S n n Ceci donne un poids identique à chaque cycle

26 Ch. 526 Estimation de la durée du prochain cycle n Mais les cycles récents sont plus représentatifs des comportements à venir n La moyenne exponentielle permet de donner plus de poids aux cycles récents: S n+1 = T n + (1- ) S n ; 0 <= <= 1 plus de poids est mis aux cycles récents lorsque > 1/n n Par expansion, nous voyons que le poids de chaque cycle décroît exponentiellement S n+1 = T n + (1- ) T n (1- ) i T n-i (1- ) n S 1 la valeur estimée S 1 du 1er cycle est fixée à 0 pour donner priorité aux nouveaux processus

27 Ch. 527 Décroissance Exponentielle des Coefficients [Stallings] Stallings

28 Ch. 528 Décroissance Exponentielle des Coefficients [Stallings] n S 1 = 0 (priorité aux nouveaux processus) n Un coefficient plus élevé réagit plus rapidement aux changements de comportement Stallings

29 Ch. 529 Un deuxième exemple [Stallings] Stallings

30 Ch. 530 Comment choisir le coefficient Comment choisir le coefficient n 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 n 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 = T n F Le dernier cycle est le seul qui compte

31 Ch. 531 Le plus court dabord SJF: critique n Difficulté destimer la longueur à lavance n Les processus longs souffriront de famine lorsquil y a un apport constant de processus courts n La préemption est nécessaire pour environnements à temps partagé u Un processus long peut monopoliser lUCT sil est le 1er à entrer dans le système et il ne fait pas dE/S n Il y a assignation implicite de priorités: préférences aux travaux plus courts

32 Ch. 532 Priorités n Affectation dune priorité à chaque processus (p.ex. un nombre entier) u souvent les petits chiffres dénotent des hautes priorités (dans UNIX) F 0 la plus haute u Windows fait linverse – donne un plus haute priorité aux plus grands chiffres n LUCT 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é n Priorités sont explicites u Pour raisons politiques ou techniques n Priorités implicites u Voir SJF - critiques

33 Ch. 533 Problème possible avec les priorités n Famine: les processus moins prioritaires narrivent jamais à exécuter n 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 Plus en général, la modification dynamique des priorités est une politique souvent utilisée (v. files à rétroaction ou retour) n Que faire avec les processus de même priorités? u FCFS u Ajoutons la préemption -> le Tourniquet

34 Ch. 534 Tourniquet = Round-Robin (RR) Le plus utilisé en pratique n Chaque processus est alloué un quantum de temps (p.ex millisecs.) pour sexécuter u (terminologie du livre: tranche de temps) n Sil sexécute pour un quantum entier sans autres interruptions, il est interrompu par la minuterie et l UCT est donnée à un autre processus n Le processus interrompu redevient prêt (à la fin de la file) n 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)

35 Ch. 535 Performance de tourniquet n 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 n Si q grand FCFS n Si q petit... nous verrons

36 Ch. 536 Exemple: Tourniquet Quantum = 20 ProcessusCycle P 1 53 P 2 17 P 3 68 P 4 24 n Normalement, u temps de rotation (turnaround) plus élevé que SJF u mais temps attente moyen meilleur – contrôlez! P1P1 P2P2 P3P3 P4P4 P1P1 P3P3 P4P4 P1P1 P3P3 P3P

37 Ch. 537 Un petit quantum augmente les commutations de contexte (temps de SE)

38 Ch. 538 Exemple pour voir limportance dun bon choix de quantum (à développer comme exercice) n Trois cycles: u A, B, C, toutes de 10 n Essayer avec: u q=1 u q=10 n Dans ce deuxième cas, tourniquet fonctionne comme FCFS et le temps de rotation moyen est meilleur

39 Ch. 539 Le temps de rotation (turnaround) varie avec le quantum 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

40 Ch. 540 Choix du quantum pour le tourniquet [Stallings] n doit être beaucoup plus grand que le temps requis pour exécuter le changement de contexte n 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) Stallings v. ex. prec. où les point optimaux sont 6 et 7, et il a deux cycles de 6 et 7

41 Ch. 541 Exercices dordonnancement Trois processus P1, P2, P3 arrivent au temps 0 dans la file prêt n Cycles UCT de P1: 14,12,17 n Cycles UCT de P2: 2,2,2,3,2,2,2,3,2,2,2,3,2,2,2,3 n Cycles UCT de P3: 6,3,8,2,1,3,4,1,2,9,7 n Opération E/S de 6 unités de temps entre chaque cycle UCT (en parallèle) n Algorithmes dordonnancement u FCFS u Tourniquet (quantum de 5) u Non-preemptive SJF ou Preemptive SJF u Tourniquet avec priorité: P2=P3>P1

42 Ch. 542 Files à plusieurs niveaux (multiples) n La file prêt est séparée en plusieurs files, p.ex. u travaux `darrière-plan` (background - batch) u travaux `de premier plan` (foreground - interactive) n Chaque file a son propre algorithme d ordonnancement, p.ex. u tourniquet pour premier plan u FCFS pour arrière-plan n 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. F 80% pour premier plan F 20% pour arrière-plan

43 Ch. 543 Ordonnancement avec files multiples

44 Ch. 544 Files multiples et à retour n Un processus peut passer d une file à l autre, p.ex. quand il a passé trop de temps dans une file n À déterminer: u 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

45 Ch. 545 Files multiples et à retour (trois files) PRIO = 0 PRIO = 1 PRIO = 2

46 Ch. 546 Exemple de files multiples à retour n Trois files: u Q0: tourniquet, quantum 8 msecs u Q1: tourniquet, quantum 16 msecs u Q2: FCFS n Ordonnancement: u Un nouveau processus entre dans Q0, il reçoit 8 msecs d UCT u S il ne finit pas dans les 8 msecs, il est mis dans Q1, il reçoit 16 msecs additionnels u S il ne finit pas encore, il est interrompu et mis dans Q2 u Si plus tard il commence à demander des quantums plus petits, il pourrait retourner à Q0 ou Q1

47 Ch. 547 Discussion de files multiples à retour n Le choix de paramètres affectent la performance. n Assez flexible pour répondre au besoins de la majorité des situations. n Composer avec leffet de laccumulation (convoy effect): u Un processus tributaire de lUCT avec de long temps de traitement u Plusieurs processus tributaires de lE/S ayant petit temps de traitement u Même si tous les processus débutent au même niveau, le processus tributaire de lUCT se déplace rapidement à la file ayant moins de priorité u Les processus tributaires de lE/S demeurent dans les files de hautes priorités, ce qui permet un service rapide et de garder les modules E/S occupés

48 Ch. 548 En pratique... n Les méthodes que nous avons vu sont toutes utilisées en pratique (sauf plus court servi pur qui est impossible) n Les SE sophistiqués fournissent au gérant du système une librairie de méthodes, quil peut choisir et combiner au besoin après avoir observé le comportement du système n Pour chaque méthode, plusieurs params sont disponibles: p.ex. durée du quantum, coefficients, etc.

49 Ch. 549 Aussi… n Notre étude des méthodes dordonnancement est théorique, ne considère pas en détail tous les problèmes qui se présentent dans lordonnancement UCT n P.ex. les ordonnanceurs UCT ne peuvent pas donner lUCT à un processus pour tout le temps dont il a besoin u Car en pratique, lUCT sera souvent interrompue par quelque événement externe avant la fin de son cycle n Cependant les mêmes principes dordonnancement sappliquent aux unités qui ne peuvent pas être interrompues, comme une imprimante, une unité disque, etc. n Dans le cas de ces unités, on pourrait avoir aussi des infos complètes concernant le temps de cycle prévu, etc. n Aussi, cette étude ne considère pas du tout les temps dexécution de lordonnanceur

50 Ch. 550 Résumé des algorithmes dordonnancement n Premier arrivé, premier servi (FCFS) u simple, petit temps de système (overhead), qualités faibles n Plus court dabords (SJF) u Doit savoir les temps de traitements (pas pratique) u Doit prédire en utilisant la moyenne exponentielle du passé n Ordonnancement avec priorité u Un classe dalgorithmes n Tourniquet u FCFS avec préemption n Files à plusieurs niveaux (Multilevel Queues) u Possible dutilisé différents algorithmes avec chaque file n Files multiples à retour (Multilevel Feedback Queues) u Combine plusieurs techniques

51 Ch. 551 Survol des sujets avancés de lordonnancement n Lordonnancement avec plusieurs UCTs identiques n Ordonnancement de fils n Modèle dévaluation

52 Ch. 552 Ordonnancement avec plusieurs UCTs identiques: homogénéité n Une seule liste prêt pour toutes les UCTs (division travail = load sharing) F une liste séparée pour chaque UCT ne permettrait pas ça u méthodes symétriques: chaque UCT peut exécuter l ordonnancement et la répartition u méthodes asymétriques: ces fonctions sont réservées à une seule UCT

53 Ch. 553 Ordonnancement de threads n Local: la librairie des threads pour une application donnée décide quel thread usager obtient un LWP disponible u Modèle « many to many » n Global: le noyau décide quel fil de noyau exécute sur lUCT u Modèle un à un n 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);

54 Ch. 554 Ordonnancement et priorités en Solaris 2

55 Ch. 555 Solaris 2: lire dans le livre pour voir lapplication pratique de plusieurs concepts discutés n Priorités et préemption n Files multiniveau à retour avec changement de priorité n Différentes quantums pour les différentes priorités (plus grands pour priorités plus élevées) n Priorité élevée pour les procs interactifs, plus petite pour les procs tributaires de lUCT n La plus haute priorité aux procs temps réel n Tourniquet pour les fils de priorités égales

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

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

58 Ch. 558 Utilisation de la théorie des files (queuing th.) n Méthode analytique basée sur la théorie des probabilités n Modèle simplifié: notamment, les temps du SE sont ignorés n Cependant, elle rend possibles des estimées

59 Ch. 559 Théorie des files: la formule de Little n Un résultat important: n = W u n: longueur moyenne de la file d attente : débit d arrivée de travaux dans file u W: temps d attente moyen dans la file n P. ex. 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 n Observer que afin que n soit stable, W doit être stable u Un débit darrivé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?

60 Ch. 560 Simulation n Construire un modèle (simplifié...) de la séquence dévénements dans le SE n Attribuer une durée de temps à chaque événement n Supposer une certaine séquence dévénements extérieurs (p.ex. arrivée de travaux, etc.) n Exécuter le modèle pour cette séquence afin dobtenir des stats

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

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

63 Ch. 563 SélectionPréem.DébitRéponseTemps de système Effect sur processus Famine FCFSMax [w] Non p Variable Minim. Favor. proc. trib. UCT Non Tourniq. Const. p Varie selon quantum Bon pour proc courts Minim.JusteNon SJFMin[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éBon Peut être élévé Pénalise proc. longs Possible Files multiniv. v. détails p Variable Peut être élévé Variable Possible w: temps total dans système jusquà présent; e: temps en exec jusquà présent; s: temps demandé; p: préemption

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


Télécharger ppt "1 Module 4 - Ordonnancement Processus Lecture: Chapitre 5."

Présentations similaires


Annonces Google