Disciplines d'ordonnancement élémentaire Politiques d ordonnancement (UI 96 chap 5 ; OSC 03 chap 6 et 14.2) On a plusieurs exemples d'ous (Organes à Usage Séquentiel) qui peuvent être alloués à un et un seul utilisateur à la fois : MS, unités E/S, sections critiques,... Quand plusieurs utilisateurs demandent un OUS, dans quel ordre faut-il le leur attribuer? L'algorithme qui détermine cet ordre = algorithme d'ordonnancement L ensemble de règles sur lequel est basé cet algorithme = politique, stratégie (discipline) d'ordonnancement S.C.O. Politiques d ordonnancement 2 1 2
Disciplines d'ordonnancement élémentaire Job (client), tâche qu'un utilisateur veut faire réaliser par un OUS Source, générateur de jobs Serveur, OUS ou ressource Calendrier, liste ordonnée de descriptions de job L'ordonnancement a lieu quand la source ajoute un job au calendrier ou quand le serveur sélectionne le prochain job S.C.O. Politiques d ordonnancement 3 Exemple a) Serveur = unité MS Source = ensemble des processus qui demandent des transmissions de données Description de job = message qui indique deux zones de mémoire, une dans MC et une dans MS, la taille de ces zones ainsi que l'identification du processus demandant la transmission Calendrier déterminé par files de requêtes L ordonnacement a lieu quand le message est envoyé S.C.O. Politiques d ordonnancement 4 3 4
Exemple b) Serveur = Source = Calendrier = ensemble de sections critiques (S.C.) partageant le même sémaphore S tous les processus tentant d'entrer dans une S.C. liste d'attente du sémaphore S Exemple c) Serveur = CPU multiplexé entre 1 ensemble de processus Job = séquence d'instructions entre deux pauses consécutives d'un processus Calendrier = liste des processus "ready" L ordonnancement a lieu quand un processus entre dans la liste d attente L ordonnancement a lieu quand un processus entre dans «ready list» ou quand le prochain processus est sélectionné S.C.O. Politiques d ordonnancement 5 S.C.O. Politiques d ordonnancement 6 5 6
Files d attente Ordre naturel, selon instants d'arrivée : FIFO, FCFS quand aucune raison de favoriser 1 job insertions et suppressions très simples push LIFO : stack pop PPPS : OSC 03 6.3.2. et 14.2.2 Pas toujours désirable mais très simple Files d attente Pr[source génère i nouveau(x) job(s) / unité de temps] suit distribution de Poisson (instants d arrivée indépendants de l'état présent et des arrivées précédentes) Th. de PALM-KHINTCHINE (guichets banque, centraux téléphoniques,...) S.C.O. Politiques d ordonnancement 7 S.C.O. Politiques d ordonnancement 8 7 8
Files d attente Les jobs servis, c'est-à-dire les départs du système, suivent aussi un processus de POISSON si l instant de terminaison d'un job est indépendant de l'instant de commencement sans mémoire ("memoryless", amnésie) [serveur exponentiel] Files d attente α, taux d arr = nombre moyen de jobs générés par unité de temps β, taux de service = nombre moyen de jobs traités par unité de temps si la file est non vide Pr(x), Pr [x arr en 1 unité de temps] = S.C.O. Politiques d ordonnancement 9 S.C.O. Politiques d ordonnancement 10 9 10
Files d attente Esp math ou moyenne du nombre d arrivées par unité de temps : Files d attente Pr[x services par unité de temps file non vide] = Nombre moyen d arrivées durant un intervalle t = αt Pr[x arrivées durant un intervalle t] = Pr[0 arrivée durant t] = e -αt Pr[au moins une arrivée durant t] = 1- e -αt = Densité de Probabilités =α.e -αu S.C.O. Politiques d ordonnancement 11 S.C.O. Politiques d ordonnancement 12 11 12
Files d attente Pr[0 arrivée durant (0,t) et une arrivée durant (t,t+dt)] = e -αt.αdt α.e -αt est donc la fonction de densité de P du temps inter-arrivées (séparant deux arrivées consécutives) On en déduit le temps moyen inter-arrivées : Files d attente Notons T ia la variable aléatoire représentant le temps interarrivées F sa fonction de répartition f sa d.d.p. Pr[au moins une arrivée entre 0 et t] = P[0< T ia t] = F(t) - F(0) = f(x)dx c est- à- dire f(x) = α.e -αx S.C.O. Politiques d ordonnancement 13 S.C.O. Politiques d ordonnancement 14 13 14
Files d attente Pr[0 arrivée durant (0,t) et une arrivée durant (t,t+dt)] = Pr[t<T ia t+dt] = F(t+dt) - F(t) = df(t) = f(t) dt = α.e -αt dt Files d attente Si la file n est pas vide Pr[0 départ durant (0,t)]=e -βt Pr[au moins un départ durant (0,t)]= 1 - e -βt = Pr[0 départ durant (0,t) et 1 départ durant (t, t+dt)] = e -βt β dt S.C.O. Politiques d ordonnancement 15 S.C.O. Politiques d ordonnancement 16 15 16
Files d attente Temps moyen inter-départs (file non vide) ou temps moyen de service Ce qui intéresse les usagers d un système : moins le temps de service que le temps de réponse t r t r dépend beaucoup de ce qu on trouve dans la file à son arrivée, donc en particulier de α et β On définit l utilisation du système : Files d attente ρ > 1, instabilité : la file d attente s allonge indéfiniment ρ 1 : 1 nouvel arrivant trouve le plus souvent la file vide Soit T r le temps moyen de réponse : W, temps moyen d attente dans la file S.C.O. Politiques d ordonnancement 17 S.C.O. Politiques d ordonnancement 18 17 18
Files d attente Soit n le nombre moyen de jobs qu on trouve dans le système α Théorème de LITTLE : n= αt n β Théorème de LITTLE (n=( αt) Nous étudierons les systèmes où α, β constants ρ < 1 état stationnaire p i (t), Pr[nb de jobs dans le système = i, à l instant t] Démonstration dans le cas FCFS S.C.O. Politiques d ordonnancement 19 S.C.O. Politiques d ordonnancement 20 19 20
Théorème de LITTLE Pr[+1] = Pr[1 arrivée en t] = α. t e -α t = α t + O( t 2 ) Pr[-1] = Pr[1 départ en t] si i > 0 = β. t e -β t = β t + O( t 2 ) Pr[-1] = 0 si i=0 (file vide) Théorème de LITTLE Pr de plus d une arrivée ou de plus d un départ, au moins 0( t 2 ) Pr[0] Pr(inchangé en t) = (1- α t)(1- β t) + 0( t 2 ) i > 0 Pr(inchangé en t) = (1- α t) + 0( t 2 ) i = 0 p i (t+ t) = p i (t).pr[0] + p i+1 (t).pr[-1] + p i-1 (t).pr[+1] si i > 0 p 0 (t+ t) = p 0 (t).pr[0] + p 1 (t).pr[-1] S.C.O. Politiques d ordonnancement 21 S.C.O. Politiques d ordonnancement 22 21 22
Théorème de LITTLE soit : p i (t+ t) - p i (t) = -p i (t)(α + β) t + p i (t) 0( t 2 ) + p i+1 (t)β t + p i+1 (t) 0( t 2 ) + p i-1 (t)α t + p i-1 (t) 0( t 2 ) p 0 (t+ t) - p 0 (t) = - p 0 (t) α t + p 0 (t) 0( t 2 ) + p 1 (t) β t + p 1 (t) 0( t 2 ) Théorème de LITTLE Divisant par t et prenant : p i =-(α+β)p i (t)+β p i+1 (t)+α p i-1 (t) i>0 et : p 0 (t) = - α p 0 (t) + β p 1 (t) D où, à l état stationnaire (p i (t)=0) : (α+β) p i (t) = β p i+1 (t) + α p i-1 (t) i>0 p 1(t) = p 0 (t) = ρ p 0 (t) S.C.O. Politiques d ordonnancement 23 S.C.O. Politiques d ordonnancement 24 23 24
Théorème de LITTLE α α α α α Théorème de LITTLE Normalisation : 0 1 i-1 i i+1 β β β β β D où : P 0 (t) = 1 - ρ Pr[file non vide] = ρ = utilisation S.C.O. Politiques d ordonnancement 25 S.C.O. Politiques d ordonnancement 26 25 26
Théorème de LITTLE Nombre moyen de clients dans la file : Théorème de LITTLE D où le temps de réponse = T = n/α = ρ / (1 - ρ).1/α = 1 / (β - α) temps moyen de réponse temps moyen de service = βt = 1/(1-ρ) augmente à mesure que ρ 1 S.C.O. Politiques d ordonnancement 27 S.C.O. Politiques d ordonnancement 28 27 28
Round Robin Discipline de service round robin (RR), applicable seulement à une ressource préemptible (CPU) : Round Robin Supposons deux sortes de jobs dans le systèmes jobs courts (α 1, β 1 ) jobs longs (α 2, β 2 ) α Quantum n β Les deux processus d arrivées sont de type Poisson et indépendants leur composition est aussi Poisson de taux α = α 1 + α 2 S.C.O. Politiques d ordonnancement 29 S.C.O. Politiques d ordonnancement 30 29 30
Round Robin FIFO Round Robin RR, Quantum q Supposons : le même pour tous les jobs, longs ou courts et comme pour FIFO S.C.O. Politiques d ordonnancement 31 S.C.O. Politiques d ordonnancement 32 31 32
Round Robin RR, Quantum q MAIS OVERHEAD (sauver et recharger info de status ) aussi % avec k RR uniquement quand il y a de grandes disparités : q service d un job court Ordonnancement à priorité linéaire (P.L.( P.L.) RR est applicable seulement à des ressources préemptibles : CPU, MC, RR T k, injuste pour les jobs longs car le système doit reconnaître certaines obligations visà-vis des jobs avec lesquels il s est engagé PL : conditions d admission dépend : de l instant d arrivée du nombre de jobs dans le système S.C.O. Politiques d ordonnancement 33 S.C.O. Politiques d ordonnancement 34 33 34
Ordonnancement à priorité linéaire Le job qui vient de recevoir un quantum est réinjecté au milieu de la file Ordonnancement à priorité linéaire Priorité d un job = p p = a. t pour les nouveaux jobs p = b. t pour les jobs acceptés Nouveau a > b p(t) = a(t 1 t 0 )+b(t-t 1 ) Jobs acceptés Un nouveau job est accepté dès que sa priorité = celle des jobs acceptés S.C.O. Politiques d ordonnancement 35 S.C.O. Politiques d ordonnancement 36 35 36
Ordonnancement à priorité linéaire Priorité des jobs acceptés la variable ap qu on incrémente de b.q à chaque fin de quantum ap 0 si les jobs acceptés sont tous terminés ap reprend la valeur de la priorité du 1er nouveau job accepté On doit enregistrer la priorité de chaque nouveau job séparément La transformation linéaire sauvegardant l ordre : v = -p/a + t Ordonnancement à priorité linéaire Le temps d arrivée virtuel V(t) = t 0 (constant) pour un nouveau job et pour un job accepté S.C.O. Politiques d ordonnancement 37 S.C.O. Politiques d ordonnancement 38 37 38
Ordonnancement à priorité linéaire Ordonnancement à priorité linéaire Soit av le temps d arrivée virtuel des jobs acceptés La vitesse à laquelle av voyage sur l axe de temps dépend du paramètre tg β = b t 0 = v(t 1 ) t 1 v(t 2 ) t 2 t tg α = a S.C.O. Politiques d ordonnancement 39 S.C.O. Politiques d ordonnancement 40 39 40
Cas 1 Cas 2 av v 0 v 1 v 2 t av ne rencontrera jamais le temps d arrivée virtuel d un nouveau job un nouveau job ne sera pas accepté tant que le(s) job(s) acceptés ne quitte(nt) pas le système : FCFS av v 0 v 1 v 2 t av se déplace moins vite que le temps mais rattrapera le temps d arrivée virtuelle de tout nouveau job SRR : t att d un nouveau job % quand r 0 S.C.O. Politiques d ordonnancement 41 S.C.O. Politiques d ordonnancement 42 41 42
Cas 3 Exemple 3 r = 1 ou b = 0 Le temps d arrivée virtuel croît aussi vite que le temps priorité d un nouveau job = celle des jobs acc : RR FCFS RR SRR r = 0 r = 1 0 < r < 1 réinjection tête de file fin de file entre les deux t réponse jobs longs courts k entre les deux Un nouveau job reste dans la boite de délai tant que son temps d arrivée virtuel > celui des jobs acceptés. Le temps que passe un nouveau job dans la boite de délai dépend de la vitesse à laquelle av rattrape son temps d arrivée. S.C.O. Politiques d ordonnancement 43 S.C.O. Politiques d ordonnancement 44 43 44
M/M/1 M/M/1 Soient 2 arrivées consécutives aux instants t 1 et t 2 tels que = t 2 -t 1 = 1/α, temps moyen inter-arrivée Ces deux jobs seront acceptés aux instants t 1 et t 2 tels que : Pour 1 job accepté : et pour un job S antérieur quelconque S.C.O. Politiques d ordonnancement 45 S.C.O. Politiques d ordonnancement 46 45 46
M/M/1 D où : M/M/1 Tout se passe comme si la boîte de délai diminue le taux d arrivée au serveur d un facteur c est-à-dire S.C.O. Politiques d ordonnancement 47 S.C.O. Politiques d ordonnancement 48 47 48
M/M/1 M/M/1 T d d un job ne dépend pas de son propre temps de service et est donc le même pour tous les jobs où Or et S.C.O. Politiques d ordonnancement 49 S.C.O. Politiques d ordonnancement 50 49 50
Synthèse Synthèse Pour les jobs qui ont un temps de service égal au Ordonnancement CPU à long terme Tenir compte de l histoire d un job S.C.O. Politiques d ordonnancement 51 S.C.O. Politiques d ordonnancement 52 51 52
Exemple 3 niveaux de files d attente de priorités distinctes 1 RR : 2 SRR : 3 FCFS : jobs très courts partent très vite éventuellement encore subdivisé pour éviter OVERHEAD de commutation beaucoup de jobs longs en MC Ordonnancement processeur virtuel Ordonnancement processeur virtuel Système divisé en sous-systèmes qui possèdent leur propre processeur virtuel Exemple : Système général Sous- Sous- Sous- système traitement par lot (FCFS) système TS (RR) système temps réel (FCFS) S.C.O. Politiques d ordonnancement 53 S.C.O. Politiques d ordonnancement 54 53 54
Ordonnancement processeur virtuel Exemple : n sous-systèmes avec 1 cpu Références : OSC 03 : Chap 6 : CPU scheduling Chap 20 : Linux Chap 21 : Windows 2000 Chap 22 : Windows XP S.C.O. Politiques d ordonnancement 55 55