Module 4 - Ordonnancement Processus. Lecture: Chapitre 5



Documents pareils
DAns un système multi-utilisateurs à temps partagé, plusieurs processus

Partie 7 : Gestion de la mémoire

Processus! programme. DIMA, Systèmes Centralisés (Ph. Mauran) " Processus = suite d'actions = suite d'états obtenus = trace

On appelle variable condition une var qui peut être testée et

PROBLEMES D'ORDONNANCEMENT AVEC RESSOURCES

Cours A7 : Temps Réel

Métriques de performance pour les algorithmes et programmes parallèles

Francis BISSON ( ) Kenny CÔTÉ ( ) Pierre-Luc ROGER ( ) IFT702 Planification en intelligence artificielle

Ordonnancement temps réel

Systèmes d exploitation Gestion de processus

Gestion de mémoire secondaire F. Boyer, Laboratoire Sardes

Annexe 6. Notions d ordonnancement.

Analyse du temps de réponse des systèmes temps réel

REALISATION d'un. ORDONNANCEUR à ECHEANCES

Programmation temps-réel Cours 1 et 2 Introduction et ordonnancement

Introduction aux Systèmes et aux Réseaux

Un ordonnanceur stupide

Arithmétique binaire. Chapitre. 5.1 Notions Bit Mot

Informatique industrielle A Systèmes temps-réel J.F.Peyre. Partie I : Introduction

Cours de Systèmes d Exploitation

Chapitre 2. Les processus. 2.1 Introduction. 2.2 les différents états d un processus

Gestion des processus

Cours Programmation Système

Les transactions 1/46. I même en cas de panne logicielle ou matérielle. I Concept de transaction. I Gestion de la concurrence : les solutions

Souad EL Bernoussi. Groupe d Analyse Numérique et Optimisation Rabat http ://

14. Introduction aux files d attente

Apprentissage par renforcement (1a/3)

IV- Comment fonctionne un ordinateur?

1. Systèmes d entrée/sortie 2. Systèmes de fichiers 3. Structure de mémoire de masse (disques)

Comment optimiser l utilisation des ressources Cloud et de virtualisation, aujourd hui et demain?

Introduction MOSS 2007

Chapitre 2. Cluster de calcul (Torque / Maui) Grid and Cloud Computing

IBM Tivoli Monitoring, version 6.1

INTRODUCTION AUX SYSTEMES D EXPLOITATION. TD2 Exclusion mutuelle / Sémaphores

Ordonnancement temps réel

Travailler avec les télécommunications

PLAN DE COURS. GPA750 Ordonnancement des systèmes de production aéronautique

4.2 Unités d enseignement du M1

Chapitre 4 : Outils de communication centralisés entre processus

Exemples de problèmes et d applications. INF6953 Exemples de problèmes 1

Dimensionnement Introduction

SPF FIN. Patris Spécification de Use Case: 15-UC01 Obtenir de l'information patrimoniale. Version 1.1

Support de cours système d exploitation

TangibleData. Manipulation tangible et multitouch de bases de données

OPTIMISATION DE LA MAINTENANCE DES EQUIPEMENTS DE MANUTENTION DU TERMINAL A CONTENEURS DE BEJAIA (BMT)

L utilisation d un réseau de neurones pour optimiser la gestion d un firewall

Evaluation des performances de programmes parallèles haut niveau à base de squelettes

L art d ordonnancer. avec JobScheduler. François BAYART

Runtime. Gestion de la réactivité des communications réseau. François Trahay Runtime, LaBRI sous la direction d'alexandre Denis Université Bordeaux I

Ne laissez pas le stockage cloud pénaliser votre retour sur investissement

Algorithmes de recherche

Systemes d'exploitation des ordinateurs

MediMail SLA 1/1/2014 1

Fidélité Type 3 Carte de points et cartes cadeaux avec

WebSphere MQ & Haute Disponibilité

ITIL Gestion de la capacité

CHOIX OPTIMAL DU CONSOMMATEUR. A - Propriétés et détermination du choix optimal

Séance 4. Gestion de la capacité. Gestion des opérations et de la logistique

LIVRE BLANC «LA GESTION, CONVERSION, IMPRESSION, PUBLICATION ET DISTRIBUTION DOCUMENTAIRE SAP» SAP DMS SAP PLM

03/04/2007. Tâche 1 Tâche 2 Tâche 3. Système Unix. Time sharing

Contributions à l expérimentation sur les systèmes distribués de grande taille

TP : Introduction à la qualité de service liée à la Toip 1

Représentation des Nombres

Manuel de formation de base. FP Solutions

UC4 effectue tout l ordonnancement batch pour Allianz en Allemagne

1 Mesure de la performance d un système temps réel : la gigue

4D v11 SQL Release 5 (11.5) ADDENDUM

IBM Software Group. Migration vers Tivoli Workload Scheduler. Philippe TESSIER 2009 IBM Corporation

Le montant des garanties constituées aux fins du STPGV est-il excessif?

Simulation centrée individus

Un régime d assurance? Si oui, lequel?

CA Workload Automation Agent pour implémentation mainframe Systèmes d exploitation, ERP, bases de données, services applicatifs et services Web

Introduction à la théorie des files d'attente. Claude Chaudet

Chapitre 2/ La fonction de consommation et la fonction d épargne

Les indices à surplus constant

«clustering» et «load balancing» avec Zope et ZEO

Cours en ligne Développement Java pour le web

Virtualiser ou ne pas virtualiser?

DESCRIPTION DU CONCOURS QUÉBÉCOIS INFORMATIQUE (GESTION DE RÉSEAUX)

REER, CELI ou prêt hypothécaire : comment faire le bon choix?

IFT3245. Simulation et modèles

Simulation d application des règles CNAV AGIRC ARRCO sur des carrières type de fonctionnaires d Etat

Chapitre 4 : les stocks

École Polytechnique de Montréal. Département de Génie Informatique et Génie Logiciel. Cours INF2610. Contrôle périodique.

Statistiques Descriptives à une dimension

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

IP & Co. 1. Service DHCP. L'objectif de ce TP est de voir l'ensemble des services élémentaires mis en oeuvre dans les réseaux IP.

La demande Du consommateur. Contrainte budgétaire Préférences Choix optimal

agility made possible

Sujet proposé par Yves M. LEROY. Cet examen se compose d un exercice et de deux problèmes. Ces trois parties sont indépendantes.

Virtualisation logicielle De la machine réelle à la machine virtuelle abstraite

Introduction à la programmation orientée objet, illustrée par le langage C++ Patrick Cégielski

Vision industrielle et télédétection - Détection d ellipses. Guillaume Martinez 17 décembre 2007

Problèmes liés à la concurrence

Chapitre V : La gestion de la mémoire. Hiérarchie de mémoires Objectifs Méthodes d'allocation Simulation de mémoire virtuelle Le mapping

Exclusion Mutuelle. Arnaud Labourel Courriel : arnaud.labourel@lif.univ-mrs.fr. Université de Provence. 9 février 2011

CHAPITRE VIII : Les circuits avec résistances ohmiques

Rapport de stage en Master Recherche Informatique

Transcription:

Module 4 - Ordonnancement Processus Lecture: Chapitre 5 1

Aperçu du module Concepts de base Critères d ordonnancement Algorithmes d ordonnancement Ordonnancement de multiprocesseurs Évaluation d algorithmes 2

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

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 4

5 Concepts 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

Les cycles d un processus 6 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

Histogramme de durée des cycles UCT 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

8 Quand 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

9 Dispatcheur 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

10 Critè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

11 Critè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)

Critères d ordonnancement: maximiser/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 12

Exemple de mesure des critères d ordonnancement P 1 P 2 P 3 P 4 Process arrival Time 13 Utilisation de l UCT: 100% Temps de réponse (P 3, P 2 ): P 3 : 3 P 2 : 1 Débit : 4/24 P 1 P 2 P 3 P 4 P 1 P 2 0 4 5 7 10,11,12 20 22 24 Temps de rotation (P 3, P 2 ): P 3 : 5 P 2 : 20 Temps d attente (P 2 ): P 2 : 13

14 Examinons maintenant plusieurs méthodes d ordonnancement 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 Premier arrivé, premier servi (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: P 1 P 2 P 3 0 24 27 30 Temps d attente pour P1= 0; P2= 24; P3= 27 Temps attente moyen: (0 + 24 + 27)/3 = 17

Premier 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 P 1 P 2 P 3 0 24 27 30 16

17 Ordonnancement FCFS (suite) Si les mêmes processus arrivent à 0 mais dans l ordre P 2, P 3, P 1. Le diagramme de Gantt est: P 2 P 3 P 1 Temps d attente pour P1 = 6 P 2 = 0 P 3 = 3 Temps moyen d attente: (6 + 0 + 3)/3 = 3 Beaucoup mieux! Donc pour cette technique, le temps d attente moyen peut varier grandement 0 3 6 30 Exercice: calculer aussi le temps moyen de rotation, débit, etc.

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 18

19 Effet d accumulation (convoy effect) 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)

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 20

SJF 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 21

Exemple de SJF sans préemption ProcessusArrivée Cycle P 1 0 7 P 2 2 4 P 3 4 1 P 4 5 4 SJF (sans préemption) P 1 P 3 P 2 P 4 0 3 7 8 12 16 Temps P 2 arr. d attente P 3 arr. moyen P 4 arr = (0 + 6 + 3 + 7)/4 = 4 22

23 Exemple de SJF avec préemption ProcessusArrivée Cycle P 1 0 7 P 2 2 4 P 3 4 1 P 4 5 4 SJF (préemptive) P 1 P 2 P 3 P 2 P 4 P 1 0 2 4 5 7 11 Temps moyen d`attente = (9 + 1 + 0 +2)/4 = 3 P 2 arr. P 3 arr. P 4 arr P1 attend de 2 à 11, P2 de 4 à 5, P4 de 5 à 7 16

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 24

25 Estimation 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: n S n+1 = (1/n) (une simple i1 moyenne) Nous pouvons éviter de recalculer la somme en récrivant: T i S n+1 = (1/n) T n + ((n-1)/n) S n Ceci donne un poids identique à chaque cycle

Estimation 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: S n+1 = T n + (1-) S n ; 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 S n+1 = T n + (1-)T n-1 +... (1-) i T n-i + 26... + (1-) n S 1 la valeur estimée S1 du 1er cycle est fixée à 0 pour donner priorité aux nouveaux processus

Décroissance Exponentielle des Coefficients [Stallings] 27 Stallings

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

Un deuxième exemple [Stallings] 29 Stallings

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 = T n Le dernier cycle est le seul qui compte 30

Le 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 31

32 Priorité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

33 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) Que faire avec les processus de même priorités? FCFS Ajoutons la préemption -> le Tourniquet

Tourniquet = Round-Robin (RR) Le 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[7] P[6] P[0] P[1] P[2] P[3] La file prêt est un cercle (dont RR) 34 P[5] P[4]

Performance 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 35

36 Exemple: Tourniquet Quantum = 20 Processus Cycle P 1 53 P 2 17 P 3 68 P 4 24 P 1 P 2 P 3 P 4 P 1 P 3 P 4 P 1 P 3 P 3 Normalement, 0 20 37 57 77 97 117 121 134 154 162 temps de rotation (turnaround) plus élevé que SJF mais temps attente moyen meilleur contrôlez!

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

38 Exemple pour voir l importance d un bon choix de quantum (à 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

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

Choix du quantum pour le tourniquet [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) 40 v. ex. prec. où les point optimaux sont 6 et 7, et il a deux cycles de 6 et 7 Stallings

Exercices 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 41

42 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

43 Ordonnancement avec files multiples

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 44

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

Exemple 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 46

Discussion de files 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 47

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

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 49

50 Ré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

Survol des sujets avancés de l ordonnancement L ordonnancement avec plusieurs UCTs identiques Ordonnancement de fils Modèle d évaluation 51

52 Ordonnancement avec plusieurs UCTs identiques: 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

Ordonnancement 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 53 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 Ordonnancement et priorités en Solaris 2

55 Solaris 2: lire dans le livre pour voir l application pratique de plusieurs 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

56 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

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

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 58

59 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 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?

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 60

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

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

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. p Varie 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é Bon Peut être élévé Pénalise proc. longs Possible Files multiniv. v. détails p Variable 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 63

Points 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 64