t - Free
Transcription
t - Free
' 019, Techniques avancées de systèmes d’exploitation $ 1 INFO 019 Techniques avancées de systèmes d’exploitation Joël G & Université Libre de Bruxelles % ' 019, Techniques avancées de systèmes d’exploitation $ 2 Joël G Faculté des Sciences Département d’Informatique Campus de la plaine Bâtiment NO, 8e étage, bureau 2N8.111 Tél. : (02650) 55 88 E-mail : [email protected] URL : http://www.ulb.ac.be/di/ssd/goossens & Université Libre de Bruxelles % ' 019, Techniques avancées de systèmes d’exploitation $ 3 Organisation du cours – Cours théorique : 2 heures/semaine → Pâques – Un projet encadré par M. Martin D W, énoncé ∼ début mars – Examen oral Objectif du cours Introduire les fondements théoriques, les algorithmes et les outils nécessaires pour la conception de systèmes temps réel. Sous-titre du cours « O ̀ ́ » & Université Libre de Bruxelles % ' 019, Techniques avancées de systèmes d’exploitation $ 4 Supports – Copie des transparents (http://uv.ulb.ac.be/) – Ouvrages de références : – Jane W.S. L, « Real-Time Systems » , Prentice Hall, 2000 – Joseph Y-T. L, « Handbook of Scheduling : Algorithms, Models, and Performance analysis » , Chapman Hall, 2004. Le Chapitre 28, « Scheduling Real-Time Tasks : Algorithms and Complexity » (Sanjoy B & J. G) en particulier. – J. G, « Scheduling of Hard Real-Time Periodic Systems with various kinds of deadline and offset constraints » , thèse, ULB, 1999. – Bibliographie en construction & Université Libre de Bruxelles % ' 019, Techniques avancées de systèmes d’exploitation $ 5 Table des matières provisoire – Introduction – Ordonnancement à priorité fixe – Algorithme – Algorithme – Algorithme d’A – Intervalles d’étude – (Calcul du temps de réponse généralisé) – Ordonnancement à priorité dynamique – EDF – LLF – Ordonnancement de tâches dépendantes – D’autres modèles/problèmes d’ordonnancement & Université Libre de Bruxelles % ' 019, Techniques avancées de systèmes d’exploitation A) Introduction $ 6 Systèmes temps réel Systèmes dont le bon fonctionnement dépend non seulement des résultats des calculs, mais également des instants auxquels ces résultats sont produits. Typiquement chaque calcul doit être réalisé en respectant une échéance. Les systèmes temps réel jouent un rôle important dans notre société, les applications comprennent : les problèmes de trafic aérien, le contrôle de centrales nucléaires, les communications multimédia, la robotique, les systèmes embarqués, etc. On distingue le temps réel strict ou dur (de l’anglais hard real-time) et le temps réel souple ou mou (soft real-time) suivant l’importance accordée aux contraintes temporelles. Le temps réel strict ne tolère aucun dépassement de ces contraintes, ce qui est souvent le cas lorsque de tels dépassements peuvent conduire à des situations critiques, voire catastrophiques : pilote automatique d’avion, système de surveillance de centrale nucléaire, etc. & Université Libre de Bruxelles % ' 019, Techniques avancées de systèmes d’exploitation $ 7 Exemples de systèmes d’exploitation temps réel : – QNX – VxWorks – RTOS – WinCE – RTLinux – RTAI & Université Libre de Bruxelles % ' 019, Techniques avancées de systèmes d’exploitation $ 8 Modélisation des applications Les applications seront modélisées par un ensemble de travaux (jobs) ou par un ensemble de tâches (tasks). Définition 1 (Travail et instance) Un travail j sera caractérisé par le tuple (a, e, d). Un instant d’arrivé a, un temps d’exécution e et une échéance d. Le travail j doit recevoir e unités d’exécution dans l’intervalle [a, d). Une instance temps réel est une collection (finie ou infinie) de travaux : J = {j1 , j2 , . . .}. Classiquement dans les applications temps réel, les calculs/opérations sont de nature récurrente, on parle alors de tâches périodiques et sporadiques : & Université Libre de Bruxelles % ' 019, Techniques avancées de systèmes d’exploitation $ 9 Définition 2 (Tâches périodiques et sporadiques) Une tâche périodique τi est caractérisée par le tuple (Oi , Ti , Di , Ci ), où – la date d’arrivée (offset) Oi , est l’instant du premier travail pour la tâche τi – le temps d’exécution Ci , qui spécifie une limite supérieure sur le temps d’exécution de chaque travaux de la tâche τi – l’échéance relative Di , dénote la séparation entre l’arrivée du travail et l’échéance (un travail qui arrive à l’instant t a une echéance à l’instant t + Di ) – une période Ti dénotant la durée qui sépare deux arrivées successives de travaux pour τi τi = (Oi , Ti , Di , Ci ) génère un nombre infini de travaux (ou de requêtes), chacun avec le même temps d’exécution, à chaque instant (Oi + k · Ti ) pour tout entier k ≥ 0, le travail généré à l’instant (Oi + k · Ti ) a une échéance à l’instant (Oi + k · Ti + Di ). & Université Libre de Bruxelles % ' 019, Techniques avancées de systèmes d’exploitation $ 10 Les tâches sporadiques sont similaires aux tâches périodiques, avec la différence que Ti corresponds à la durée minimum, plutôt que exacte, qui sépare deux arrivées successives de travaux pour τi . Une tâche sporadique est caractérisée par trois paramètres : (Ti , Di , Ci ). Un système périodique τ est constitué d’une collection finie de tâches périodiques (ou sporadiques) : τ = {τ1 , . . . , τn }. Définition 3 (Utilisation) L’utilisation U(τi ) d’une tâche est le rapport entre son def temps d’exécution et sa période : U(τi ) = Ci /Ti . L’utilisation d’un système périodique (ou sporadique) est la somme des utilisations des tâches : def P U(τ) = τi ∈τ U(τi ) & Université Libre de Bruxelles % ' 019, Techniques avancées de systèmes d’exploitation $ 11 Cas particuliers de systèmes périodiques D’un point de vue pratique et théorique, il est intéressant de distinguer les cas suivants : échéance sur requête (implicit-deadline), où l’échéance de chaque tâche coïncide avec la période (c.-à-d., Di = Ti ∀i, chaque instance doit se terminer avant l’occurrence de l’instance suivante pour la même tâche) échéance contrainte (constrained-deadline), où l’échéance n’est pas supérieure à la période (c.-à-d., Di ≤ Ti ∀i) échéance arbitraire (arbitrary-deadline), s’il n’y a pas de contraintes entre l’échéance et la période. à départ simultané (synchronous), si toutes les tâches démarrent au même instant, ce qui correspond sans nuire à la généralité au cas Oi = 0 ∀i & Université Libre de Bruxelles % ' 019, Techniques avancées de systèmes d’exploitation $ 12 Introduction à l’ordonnancement L’ordonnancement est le terme informatique désignant le mécanisme permettant de choisir quel processus doit être exécuté par quel processeur. En effet que l’ordinateur soit mono- ou multiprocesseur il y a en général plus de processus en attente que de ressources de calcul disponibles. Un des rôles du système d’exploitation est justement de permettre d’exécuter plus d’un processus par processeur. Pour cela, à intervalle régulier, le système exécute un algorithme appelé ordonnanceur (scheduler) qui choisit le processus à exécuter. Si le nouveau processus est différent de l’ancien alors survient un changement de contexte (ou une préemption), opération qui consiste à sauvegarder les données relatives à l’ancienne tâche puis à restaurer celles la nouvelle tâche. & Université Libre de Bruxelles % ' 019, Techniques avancées de systèmes d’exploitation $ 13 Du choix de cet algorithme dépend le comportement du système. Il existe deux grandes classes d’ordonnancement : – L’ordonnancement en temps partagé (time sharing). Il est présent sur la plupart des ordinateurs « classiques » . Par exemple, R-R () est un algorithme d’ordonnancement courant dans les systèmes d’exploitation, ce dernier attribue des tranches de temps à chaque processus en proportion égale, sans accorder de priorités aux processus (cf. INFO-F-102, « Architecture I » , R. D). – L’ordonnancement en temps réel quant à lui fournit la certitude qu’une certaine tâche sera terminée à un instant donné. Ceci est très recherché dans les systèmes embarqués. & Université Libre de Bruxelles % ' 019, Techniques avancées de systèmes d’exploitation $ 14 La théorie de l’ordonnancement est une sous-discipline de la recherche opérationnelle (Operational Research) qui s’intéresse au calcul de dates d’exécution optimales de tâches afin d’optimiser un indice de performance. Cependant, l’ordonnancement temps réel est une communauté scientifique différente. La raison est que le problème est de nature différente, les approches classiques sont bien adaptées aux situations où il y a lieu de maximiser (ou minimiser) un indice de performance mais très mal adaptées pour rencontrer des échéances strictes. De plus, dans les problèmes d’ordonnancement classiques, les tâches doivent être exécutées une fois au lieu d’une infinité dans le cas de tâches récurrentes temps réel. & Université Libre de Bruxelles % ' 019, Techniques avancées de systèmes d’exploitation $ 15 Priorité fixe — priorité dynamique Dans la littérature, on distingue en général, deux types d’algorithmes d’ordonnancement : les algorithmes à priorité fixe (aussi appelés à priorité statique) et ceux à priorité dynamique. Les algorithmes à priorité fixe, assignent des priorités aux tâches lors de la conception du système ; de plus, pendant l’exécution du système, chaque travail hérite de la priorité de sa tâche. Un exemple d’algorithme à priorité fixe populaire, pour des tâches périodiques, est (Rate Monotonic [7]). Les algorithmes à priorité dynamique, assignent pendant l’exécution du système, des priorités aux travaux. (Earliest Deadline First [7]) est un tel algorithme. & Université Libre de Bruxelles % ' 019, Techniques avancées de systèmes d’exploitation $ 16 Hypothèses Sauf mention contraire, dans le cadre de ce cours nous allons travailler sous les hypothèses suivantes : – le système est monoprocesseur – les échéances sont strictes – le système est préemptif : lorsqu’un travail plus prioritaire apparaît dans le système, l’exécution du travail en cours est préemptée par ce dernier – les temps de préemption sont negligeables – l’ordonnanceur est un algorithme conservatif (ou expédient) : c.-à-d., qu’il ne laisse jamais le processeur oisif lorsqu’il y a des travaux en attente – les tâches sont supposées indépendantes : elles ne sont pas sujettes à des relations de précédence, il n’y a pas de sections critiques et, hormis le processeur, elles n’utilisent pas de ressources communes. & Université Libre de Bruxelles % $ ' 019, Techniques avancées de systèmes d’exploitation 17 Exemple de tâche périodique τ1 = (O1 = 0, T1 = 10, C1 = 3, D1 = 5) ? 0 3 ? 10 2 3 12 U(τ1 ) = 3/10 & Université Libre de Bruxelles % $ ' 019, Techniques avancées de systèmes d’exploitation 18 Un ordonnancement à priorité fixe 2 tâches périodiques : τ = {τ1 = (T1 = 5, D1 = 3, C1 = 2), τ2 = (T2 = 4, D2 = 4, C2 = 2)} τ1 τ2 (τ1 a la plus grande priorité), U(τ) = 2/5 + 1/2 = 9/10 ?2 ?2 ?2 ?2 ?2 τ1 0 5 1 2 ? 6 10 1 ? 1 ?2 4 7 8 15 11 ?2 16 20 2 ? 21 ? τ2 2 & Université Libre de Bruxelles 3 9 12 13 17 18 % ' 019, Techniques avancées de systèmes d’exploitation $ 19 Observations – les priorités sont fixes – le système est préemptif – l’ordonnancement est périodique – le système est ordonnançable – temps de réponse de τ2 : 4,4,2,2,3 & Université Libre de Bruxelles % $ ' 019, Techniques avancées de systèmes d’exploitation 20 Un ordonnancement à priorité dynamique Priorité en fonction de l’échéance des travaux (), même ensemble de tâches ?2 2 ? ?2 ?2 ?2 τ1 0 1 6 2 ? ?2 7 10 ?2 11 15 ?2 16 20 2 ? 21 ? τ2 2 & Université Libre de Bruxelles 4 4 5 8 9 12 13 17 18 % ' 019, Techniques avancées de systèmes d’exploitation $ 21 Observations – les priorités sont dynamiques – le système est préemptif – l’ordonnancement est périodique – le système est ordonnançable – il y a plusieurs ordonnancements possibles (t = 5) & Université Libre de Bruxelles % ' 019, Techniques avancées de systèmes d’exploitation $ 22 Une première condition nécessaire Il est clair que quelle que soit la stratégie d’ordonnancement nous n’avons aucun espoir de rencontrer toutes les échéances pour un système dont la charge est plus grande que l’unité : Lemme 1 Soit τ un système périodique (ou sporadique) alors U(τ) ≤ 1 est une condition nécessaire pour l’ordonnançabilité du système. & Université Libre de Bruxelles % ' 019, Techniques avancées de systèmes d’exploitation $ 23 B) Ordonnancement à priorité fixe Généralités Dans ce chapitre, nous considérons l’ordonnancement de tâches périodiques (et sporadiques) à l’aide d’une assignation de priorité fixe. τi τ j signifie que la tâche τi a une priorité plus grande que τ j . Nous supposons que chaque travail de τi hérite de la priorité de sa tâche (τi ). Nous supposons que les priorités sont distinctes et que, sans nuire à la généralité, τ1 τ2 · · · τn & Université Libre de Bruxelles % ' 019, Techniques avancées de systèmes d’exploitation $ 24 L’algorithme L’assignation de priorité (Rate Monotonic) est définie pour des systèmes à départ simultané et échéance sur requête. R assigne les priorités d’une manière inversement proportionnelle à la période des tâches ou proportionnellement au taux (rate) d’arrivé. Les cas d’égalité sont résolus d’une manière arbitraire (afin d’obtenir des priorités distinctes). & Université Libre de Bruxelles % ' 019, Techniques avancées de systèmes d’exploitation La complexité de l’assignation de priorité de est donc celle d’un algorithme de tri, typiquement O(n log n) $ 25 Avant de montrer que cette assignation de priorité est optimale, quelques définitions et propriétés préliminaires. Définition 4 (faisable) Un système périodique est faisable, s’il existe une assignation de priorité fixe pour laquelle le système est ordonnançable. Définition 5 (optimalité) Une règle d’assignation de priorité R est optimale si, lorsqu’un système périodique est faisable alors il est ordonnançable étant donné la règle R. Lemme 2 ([8]) Soit τ = {τ1 , . . . , τn } un système périodique (ou sporadique) à échéance contrainte et départ simultané. Lorsque ce système est ordonnancé par un algorithme à priorité fixe, le temps de répose du premier travail de la tâche τi est le plus grand parmi tous les travaux de cette tâche. & Université Libre de Bruxelles % ' 019, Techniques avancées de systèmes d’exploitation Lemme 3 Soit τ un système périodique, S1 et S2 deux ordonnancements provenant d’algorithmes conservatifs pour τ. L’ordonnancement S1 est oisif à l’instant t ssi l’ordonnancement S2 est oisif à l’instant t, ∀t ≥ 0. $ 26 Preuve : La preuve est par induction : nous supposons que les ordonnancements S1 et S2 ont tous les deux une unité oisive à l’instant t0 − ( > 0, arbitrairement petit) et que les ordonnancements ont des unités oisives qui correspondent pour tout instant qui précède t0 . L’initialisation de la preuve corresponds au cas t0 = 0. Par induction, soit t1 le premier instant après t0 pour lequel il y a une unité oisive dans l’un des deux ordonnancements. Supposons, sans nuire à la généralité que ce soit dans l’ordonnancement S1 et que le processeur est oisif dans l’intervalle [t1 , t2 ). Puisque S1 est conservatif, cela implique que tous les travaux arrivés avant l’instant t2 sont terminés, c.-à-d., la demande d’exécution cumulée pour τ arrivant avant l’instant t2 (ou t1 ) et après t0 vaut t1 − t0 . Mais puisque S2 est également conservatif, ceci implique que le & Université Libre de Bruxelles % ' 019, Techniques avancées de systèmes d’exploitation processeur est aussi oisif durant l’intervalle [t1 , t2 ) dans S2 . $ 27 Théorème 1 L’assignation de priorité est optimale pour des systèmes périodiques (ou sporadiques) à échéance sur requête et départ simultané. Preuve : Soit τ = {τ1 , . . . , τn } un système périodique (ou sporadique) à échéance sur requête et départ simultané. Nous devons montrer que si une assignation de priorité (fixe) est ordonnançable, alors celle de l’est aussi. Supposons que l’assignation (τ1 τ2 · · · τn ) soit une telle assignation. Supposons que τi τi+1 soient deux tâches de priorités adjacentes et que Ti ≥ Ti+1 : si l’assignation de priorité obtenue en échangeant les priorités de τi et τi+1 est ordonnançable également, nous pouvons conclure l’assignation est aussi ordonnançable puisqu’elle peut être obtenue à partir de n’importe quelle assignation par une séquence tels échanges. Afin de montrer qu’après un tel échange toutes les échéances sont encore rencontrées, nous considérons 4 étapes : & Université Libre de Bruxelles % ' 019, Techniques avancées de systèmes d’exploitation 1. l’échange de priorité ne modifie pas l’ordonnançabilité des tâches plus prioritaire que τi (c.-à-d., τ1 , . . . , τi−1 ). $ 28 2. La tâche τi+1 reste ordonnançable, puisque ses travaux peuvent utiliser les temps libres laissés par {τ1 , . . . , τi+1 } à la place de ceux laissés par {τ1 , . . . , τi }. 3. Supposant que τi reste ordonnançable (ce que nous montrons dans l’étape suivante), par le Lemme 3, nous pouvons conclure que les travaux des tâches {τi+2 , . . . , τn } ne sont pas altérés par l’échange de priorité. 4. Il nous reste à montrer que τi reste également ordonnançable. Par le Lemma 2, nous savons que nous pouvons nous restreindre à étudier le premier travail de τi . Soit ri+1 le temps de réponse du premier travail de τi+1 avant l’échange de priorité, l’ordonnançabilité implique : ri+1 ≤ Ti+1 . Durant l’intervalle [0, ri+1 ) le processeur (lorsqu’il est laissé libre par les tâches plus prioritaires) est assigné d’abord au (premier) travail de τi et ensuite au premier travail de τi+1 ; ce dernier n’est pas interrompu par les & Université Libre de Bruxelles % ' 019, Techniques avancées de systèmes d’exploitation $ 29 autres travaux de τi puisque Ti > Ti+1 ≥ ri+1 . Dès lors, après l’échange de priorité, l’allocation du processeur est échangée entre Ti et Ti+1 , et il découle de ce fait que τi termine son exécution avant l’instant ri+1 et rencontre son échéance puisque ri+1 ≤ Ti+1 < Ti Remarque : pour les systèmes sporadiques, la propriété découle du fait que considérer le cas périodique est le scénario le plus pessimiste. & Université Libre de Bruxelles % $ ' 019, Techniques avancées de systèmes d’exploitation 30 Le temps de réponse du premier travail D’après le Lemme 2, pour les systèmes à départ simultané et échéance contrainte, seul le temps de réponse du premier travail d’une tâche est à considérer pour conclure à l’ordonnançabilité du système. Dans la suite r1i dénote le temps de réponse du premier travail de la tâche τi . Théorème 2 Un système τ à départ simultané et échéance contraintes, ordonnancé par un algorithme à priorité fixe est ordonnançable ssi r1i ≤ Di ∀i A & T [2] ont montré que ce temps de réponse est la plus petite grandeur qui est égale à l’interférence des tâches plus prioritaires, plus le temps d’exécution de τi : & Université Libre de Bruxelles % $ ' 019, Techniques avancées de systèmes d’exploitation 31 i−1 1 X ri 1 C j . ri = C i + T j j=1 En effet, dans l’intervalle [0, r1i ) il y a 1 ri Tj (1) travaux de la tâche plus prioritaire τ j . Notons que r1i apparaît des deux côtés de l’équation 1, la plus petite solution peut être déterminée par un processus itératif : w0 wk+1 def = def = Ci , (initialization) Pi−1 wk Ci + j=1 T j C j (iteration). Le processus continue jusqu’à obtenir un point fixe (wk = wk+1 ) ou lorsque wk > Di . & Université Libre de Bruxelles % ' 019, Techniques avancées de systèmes d’exploitation $ 32 Borne d’utilisation (utilization bound) Nous allons présenter une deuxième condition d’ordonnançabilité basée le facteur d’utilisation, cette dernière fournira une condition suffisante alors que le Lemme 1 fourni une condition nécessaire. U(t) < 0, 69 est une condition suffisante pour Nous considérons d’abord quelques résultats préliminaires. Définition 6 (Utilisation pleine) Étant donné un algorithme d’ordonnancement, un système de tâches τ = {τ1 , . . . , τn }, on dira que τ utilise pleinement le processeur si toutes les échéances sont rencontrées et si l’augmentation d’un quelconque temps d’exécution d’une quelconque tâche τi conduira à rater une échéance. & Université Libre de Bruxelles % ' 019, Techniques avancées de systèmes d’exploitation $ 33 Théorème 3 Pour l’assignation de priorité , un système de tâches τ = {τ1 , . . . , τn } utilise pleinement le processeur ssi le système τ0 = {τ1 , . . . , τn−1 } 1. rencontre toutes les échéances 2. l’ordonnancement possède exactement Cn unités oisives dans l’intervalle [0, Tn ) avec l’assignation de priorité . τ1 τ2 C1 C1 C2 τn & C2 T1 T2 Tn 2T1 Figure 1: Système avec Ci ≤ Ti+1 − Ti ∀i = 1, ..., n − 1 Université Libre de Bruxelles - % ' 019, Techniques avancées de systèmes d’exploitation Preuve : Implication immédiate du Lemme 2. $ 34 Soit bn la borne inférieure de U(τ) pour tous les systèmes τ de n tâches, qui utilisent pleinement le processeur pour l’algorithme . Lemme 4 Pour la famille de systèmes de tâches qui satisfait la contrainte que le rapport entre les périodes de deux tâches quelconques est inférieur à 2, √ n bn = n( 2 − 1). Preuve : Soit τ = {τ1 , . . . , τn } un système de n tâches, et supposons que T1 < T2 < · · · < Tn et τ1 τ2 · · · τn . Nous procédons en plusieurs étapes. Étape 1. Nous montrons d’abord, que dans le calcul de bn , nous pouvons nous restreindre aux systèmes qui utilisent pleinement le processeur tel que : ∀i < n : Ci ≤ Ti+1 − Ti . Supposons que τ soit un système qui utilise pleinement le processeur et possède le plus petit facteur d’utilisation parmi tous les systèmes qui utilisent pleinement le processeur. Considérons d’abord le cas de C1 et supposons que C1 = T2 − T1 + ∆ (∆ > 0 ; notons que nous devons avoir & Université Libre de Bruxelles % ' 019, Techniques avancées de systèmes d’exploitation T2 < 2T1 , sinon C1 > T1 et le système ne peut pas être ordonnançable). Remarquons que le système τ0 = {τ01 , . . . , τ0n } avec Ti0 = Ti ∀i et C01 = T2 − T1 , C02 = C2 + ∆, C03 = C3 , . . . , C0n = Cn utilise aussi pleinement le processeur. De plus, U(τ) − U(τ0 ) = ∆/T1 − ∆/T2 > 0, contredisant notre hypothèse sur l’utilisation minimale de τ. Ce raisonnement pour être répliqué pour C2 , C3 , . . . , Cn−1 . Étape 2. Nous montrons à présent, que dans le calcul de bn , nous pouvons nous restreindre aux systèmes qui utilisent pleinement le processeur tel que : ∀i < n : Ci = Ti+1 − Ti . Il découle du Théorème 3, et du fait que chaque tâche τi (i < n) engendre deux travaux qui se terminent avant l’instant Tn (c’est une conséquence de ce que nous venons de prouver : Ci ≤ Ti+1 − Ti (i < n) — cf. Figure 1) que P Cn = Tn − 2 n−1 i=1 Ci puisque les n − 1 tâches rencontrent leurs échéances dans Pn−1 Pn−1 l’intervalle [0, Tn ) et utilisent i=1 Ci unités avec i=1 Ci ≤ Tn − T1 < T1 . Considérons d’abord le cas de C1 et supposons que C1 = T2 − T1 − ∆ (∆ > 0). 00 00 Remarquons que le système τ00 = {τ00 , . . . , τ } avec T = Ti ∀i et n 1 i & Université Libre de Bruxelles $ 35 % ' 019, Techniques avancées de systèmes d’exploitation 00 00 = Ci pour i = 2, 3, . . . , n − 1 utilise C00 = C + ∆ = T − T , C = C − 2∆, C 1 2 1 n n 1 i aussi pleinement le processeur. De plus, U(τ) − U(τ00 ) = −∆/T1 + 2∆/Tn > 0, contredisant notre hypothèse sur l’utilisation minimale de τ. Ce raisonnement pour être répliqué pour C2 , C3 , . . . , Cn−1 . def Tn −Ti Ti Étape 3. finalement, posons gi = U(τ) = (i = 1, . . . , n − 1) ; nous obtenons n X C i=1 $ 36 n−1 X gi − gi−1 g1 − 1 i )+ ) = 1 + g1 ( gi ( Ti g1 + 1 gi + 1 i=2 Cette expression doit être minimisée, dès lors, ∂U(τ) = ∂g j g2j + 2g j − g j1 2 gj + 1 − g j+1 g j+1 + 1 = 0, pour j = 1, . . . , n − 1 Nous pouvons montrer que la solution générale de cette équation corresponds au cas g j = 2 √ n bn = n( 2 − 1). & Université Libre de Bruxelles n− j n − 1 (j = 1, . . . , n − 1). Il découle donc que % ' 019, Techniques avancées de systèmes d’exploitation $ 37 La restriction sur le rapport entre les périodes peut être relâchée, ce qui conduit à la borne d’utilisation désirée : Théorème 4 ([5]) Soit τ un système périodique à échéance sur requête et départ √ n simultané. U(τ) ≤ n( 2 − 1) est une condition suffisante pour l’ordonnançabilité sous . La série bn converge vers ln 2, de plus 0, 69 < ln 2 < bn < bn−1 < · · · < b1 , ce qui conduit à la condition suffisante suivante : Corollaire 1 Soit τ un système périodique à échéance sur requête et départ simultané. U(τ) ≤ 0, 69 est une condition suffisante pour l’ordonnançabilité sous . & Université Libre de Bruxelles % ' 019, Techniques avancées de systèmes d’exploitation L’algorithme $ 38 L’assignation de priorité (Deadline Monotonic) est définie pour des systèmes à départ simultané et échéance contrainte. D assigne les priorités d’une manière inversement proportionnelle à l’échéance des tâches. Les cas d’égalité sont résolus d’une manière arbitraire (afin d’obtenir des priorités distinctes). Remarquons que l’assignation de priorité est un cas particulier de . Théorème 5 L’assignation de priorité est optimale pour des systèmes périodiques (ou sporadiques) à échéance contrainte et départ simultané. Preuve : Nous pouvons utiliser le même raisonnement que celui utilisé dans la preuve du Théorème 1 (transparent 27). D’après le Lemme 2, pour les systèmes à départ simultané et échéance contrainte, seul le temps de réponse du premier travail d’une tâche est à considérer pour conclure à l’ordonnançabilité du système. & Université Libre de Bruxelles % ' 019, Techniques avancées de systèmes d’exploitation $ 39 Pour le nous pouvons aussi calculer les temps de réponse du premier travail de chaque tâche pour conclure à l’ordonnançabilité du système. Remarquons que pour des systèmes à échéance contrainte une condition d’ordonnançabilité ne peut pas avoir la forme U(τ) < k avec k constant. k devrait certainement être fonction des échéances. & Université Libre de Bruxelles % $ ' 019, Techniques avancées de systèmes d’exploitation 40 Échéance arbitraire Considérons à présent le cas des systèmes à départ simultané et échéance arbitraire. Montrons d’abord que pour ces systèmes ni , ni ne sont optimaux. Et considérons le système τ = {τ1 = {C1 = 52, T1 = 100, D1 = 110}, τ2 = {C2 = 52, T2 = 140, D2 = 154}}. Les assignations de priorités et sont identiques, et donnent la plus grande priorité à τ1 . Avec cette assignation le système n’est pas ordonnançable : le premier travail de τ2 rate son échéance à l’instant 154, comme nous le voyons sur l’ordonnancement suivant : 48 ? ? 2 τ2 52 ? 52 6 99 ? 52 τ1 & Université Libre de Bruxelles 0 51 100 151 % $ ' 019, Techniques avancées de systèmes d’exploitation 41 En revanche, avec l’assignation de priorité τ2 τ1 le système est ordonnançable. (Nous verrons que pour ces systèmes nous ne pouvons plus nous borner au premier travail de chaque tâche mais nous devons atteindre le premier instant oisif du processeur.) ? 52 ? 52 ? τ2 0 51 140 52 ? ? 36 191 16 52 ? ? τ1 52 & Université Libre de Bruxelles 103 104 139 192 208 259 % ' 019, Techniques avancées de systèmes d’exploitation $ 42 Particularités des systèmes à échéance arbitraire – Remarquons que plusieurs travaux pour une même tâche peuvent être actifs simultanément ! Nous n’avons pas défini la stratégie d’ordonnancement dans ce cas : parmi les différents travaux actifs d’une même tâche, le système donne une plus grande priorité au travail le plus ancien (stratégie ). – Le temps de réponse du premier travail n’est pas nécessairement le plus grand (cf. l’ordonnancement précédent, les premiers temps de réponse de τ1 sont 104, 108 et 60). Définition 7 (Intervalle d’étude) Pour un algorithme d’ordonnancement et un ensemble de tâches, un intervalle d’étude est un intervalle fini tel que le système est ordonnançable ssi toutes les échéances dans l’intervalle d’étude sont respectées. Par exemple nous avons déjà établi le résultat suivant : & Université Libre de Bruxelles % ' 019, Techniques avancées de systèmes d’exploitation Théorème 6 Pour des systèmes à départ simultané et échéance contrainte, [0, max{Di | i = 1, . . . , n}) est un intervalle d’étude. $ 43 Preuve : Découle trivialement du Lemme 2. Nous allons montrer que le pire temps de réponse apparaît nécessairement dans la première période d’activité. D’abord quelques définitions. Définition 8 (instant oisif) x ∈ N est un instant oisif si tous les travaux arrivés strictement avant l’instant x ont terminé leur exécution avant ou à l’instant x. Si le système est oisif dans un intervalle [a, b), tout les instants sont des instants oisifs. Considérons le système {τ1 = {C1 = 2, T1 = 5}, τ2 = {C2 = 3, T2 = 10}} (les instants oisifs sont représentés par des •). Le système est oisif durant l’intervalle [7, 10) et 7, 8, 9, 10 sont des instants oisifs ; 10 est un instant oisif qui coïncide avec l’arrivé de deux tâches ; 7 est un instant oisif qui coïncide avec & Université Libre de Bruxelles % ' 019, Techniques avancées de systèmes d’exploitation $ 44 l’achèvement de τ1 et 5 est un instant oisif qui coïncide avec l’achèvement de τ2 et l’arrivée du second travail de τ1 . ?2 ?2 ? τ1 0 5 1 6 3 ? ? τ2 • 2 4 • • • • • Définition 9 (période d’activité élémentaire) Une période d’activité élémentaire est un intervalle [a, b) tel que a et b sont des instants oisifs et tel qu’il n’y ait pas d’instants oisifs dans l’intervalle (a, b). Définition 10 (période d’activité de niveau-i) Une période d’activité de niveau-i est une période d’activité élémentaire dans l’ordonnancement des tâches {τ1 , . . . , τi } où τi réalise au moins un travail. Théorème 7 Le pire temps de réponse de la tâche τi apparaît dans la première & Université Libre de Bruxelles % ' 019, Techniques avancées de systèmes d’exploitation $ 45 période d’activité de niveau-i en considérant la configuration à départ simultané, nous noterons cette période par l’intervalle [0, λi ). Preuve : Soit [a, b) une période d’activité de niveau-i d’un quelconque ordonnancement (pas nécessairement à départ simultané) pour les tâches {τ1 , . . . , τi }. Soit a + ∆ j l’instant du premier travail de τ j après l’instant a (∆ j ≥ 0). Par définition, ∆k = 0 pour au moins un k. Supposons d’abord que ∆i > 0. Seules les tâches plus prioritaires que τi progressent durant [a, a + ∆i ) ; dès lors, si on change la valeur de ∆i par une valeur plus petite, chaque travail de τi dans [a, b) va s’achever au même instant que précédemment, augmentant ainsi le temps de réponse de τi , le maximum correspond au cas ∆i = 0. Si ∆ j > 0 (j < i) alors réduire ∆ j accroît (ou laisse inchangé) la demande des travaux plus prioritaires dans l’intervalle [a, b), augmentant ainsi la longueur de la période d’activité-i. Dès lors, le pire temps de réponse est obtenu en considérant le cas ∆1 = ∆2 = · · · = ∆i = 0. & Université Libre de Bruxelles % ' 019, Techniques avancées de systèmes d’exploitation $ 46 Théorème 8 Pour des systèmes à départ simultané et échéance arbitraire [0, λn ) est un intervalle d’étude. Preuve : La propriété découle du fait que λ1 < λ2 < · · · < λn . λn est la plus petite solution de l’équation λn = n X λ n i=1 Ti Ci et peut être calculé par itérations def w0 = def wk+1 = & Université Libre de Bruxelles n X Ci , i=1 n X i=1 wk Ci . Ti % ' 019, Techniques avancées de systèmes d’exploitation $ 47 Systèmes à départ différé et échéance contrainte Pour les systèmes à départ non simultané, l’intervalle d’étude est significativement plus grand. Définissons d’abord deux grandeurs def et P = ppcm{Ti | i = 1, . . . , n} méta-période def Omax = max{Oi | i = 1, . . . , n} Théorème 9 ([6]) Pour les systèmes à départ non simultané et échéance contrainte, [Omax , Omax + 2P) est un intervalle d’étude. Remarquons que [0, Omax + 2P) est aussi un intervalle d’étude, ce qui signifie que l’on doit simuler l’évolution du système jusqu’à l’instant Omax + 2P, en réalité il n’est pas nécessaire de considérer les travaux qui arrivent avant l’instant Omax . & Université Libre de Bruxelles % ' 019, Techniques avancées de systèmes d’exploitation Nous allons à présent étudier une amélioration de cet intervalle d’étude, commençons par quelques résultats préliminaires. $ 48 Remarquons d’abord que les ordonnancements sont périodiques : Théorème 10 Les ordonnancements (qui ne contiennent pas d’échecs d’échéance) sont périodiques. Preuve : Pour les instants t après Omax , nous appelons configuration de l’ordonnancement la liste des paires {(εi , δi )|1 ≤ i ≤ n} où εi est le temps processeur utilisé par la tâche τi depuis sa dernière arrivée et δi le temps écoulé depuis sa dernière arrivée. Pour les algorithmes à priorité fixe, la configuration à l’instant t + 1 est univoquement déterminée par la configuration à l’instant t. Puisque ∀i : εi ≤ Ci , δi < Ti et que ce sont des nombres naturels, il y a un nombre fini de configurations différentes et nous pouvons trouver deux instants t1 , t2 (t1 < t2 ) avec la même configuration. À partir de cet instant, l’ordonnancement se répète périodiquement (avec une période divisant t2 − t1 ). & Université Libre de Bruxelles % ' 019, Techniques avancées de systèmes d’exploitation $ 49 def Théorème 11 Soit Si défini de la manière suivante S1 = O1 , def i Si = max{Oi , Oi + d Si−1T−O eTi } (i = 2, 3, . . . , n), alors si le système est ordonnançable i et si les tâches sont classées par priorités décroissantes, l’ordonnancement est périodique dès l’instant Sn avec une période P. Preuve : Par induction sur n. La propriété est triviale dans le cas n = 1 : l’ordonnancement de τ1 est périodique et de période T1 à partir du premier travail de τ1 : S1 = O1 . Par hypothèse d’induction, l’ordonnancement de {τ1 , . . . , τi−1 } est périodique dès l’instant Si−1 et de période def Pi−1 = ppcm{T j | j = 1, . . . , i − 1}. Si est l’instant d’arrivée du premier travail de τi après (ou à) l’instant Si−1 . Comme les tâches sont classées par priorités décroissantes, la périodicité des premières n’est pas altérée par les travaux de τi et puisque l’ordonnancement est supposé ordonnançable, il se répète dès l’instant Si + ppcm{Pi−1 , Ti }. En conséquence de quoi, pour les tâches τ1 , . . . , τi l’ordonnancement est périodique dès l’instant Si avec une période def Pi = ppcm{T j | j = 1, . . . , i}. & Université Libre de Bruxelles % ' 019, Techniques avancées de systèmes d’exploitation $ 50 Il découle de ce résultat que [0, Sn + P) est un intervalle d’étude et fournit une amélioration par rapport à l’intervalle proposé par le Théorème 9 : on gagne un facteur P. & Université Libre de Bruxelles % $ ' 019, Techniques avancées de systèmes d’exploitation 51 3 tâches périodiques (T1 = 10, C1 = 7, O1 = 0; T2 = 15, C2 = 1, O2 = 4; T3 = 16, C3 = 3, O3 = 0), U(τ) = 0.95417 ?7 0 τ3 ? τ1 1 ?7 τ1 70 τ3 1 τ2 ? ?7 80 ? ? 1 ?1 90 1 2 88 ?7 3 217 & 100 ? 1 ? 2 ?7 ?1 1 ?7 110 ? ? 1 ?7 1 ? 1 229 Université Libre de Bruxelles 170 180 ? 1 ? 1 2 178 1 2 118 1 ? ?1 ?7 190 ? 3 187 ?1 ? 2 68 ?7 130 ? 1 120 1 1 1 ? ?7 1 200 ? 1 ? ?7 240 2 237 2 57 ?7 ?7 ?7 ? 230 ?7 60 38 ?7 3 157 220 ? 2 27 ? ?7 τ1 210 τ3 ?7 ? 1 1 ? 1 50 98 ?7 160 ? 150 2 148 ?7 ?7 40 ? 1 ? 2 30 ?7 ?7 τ2 τ2 ? 1 11 18 ?7 τ1 140 τ3 ?7 20 2 8 ? τ2 ?7 10 ? 1 1 1 ? 250 2 248 % $ ' 019, Techniques avancées de systèmes d’exploitation 52 Assignation de priorité (fixe) optimale pour les systèmes à départ différé et échéance contrainte Pour ces sytèmes, ni ni ne sont optimaux. Considérons le système τ1 = {C1 = 1, T1 = D1 = 12, O1 = 10}, τ2 = {C2 = 6, T2 = D2 = 12, O2 = 0}, τ3 = {C3 = 3, T3 = D3 = 8, O3 = 0}. Ce système est ordonnançable avec l’assignation de priorité τ3 τ2 τ1 alors qu’avec l’assignation du τ3 > τ1 > τ2 il n’est pas ordonnançable. τ3 ?3 0 τ2 ?3 8 2 ?3 10 5 ? 3 16 1 7 τ1 11 ? ? ?3 18 24 4 2 15 ?3 32 26 27 1 1 ? 34 5 ? 19 ? 1 ? 35 31 ? 21 & Université Libre de Bruxelles % $ ' 019, Techniques avancées de systèmes d’exploitation τ3 ?3 0 ?3 8 2 ?3 10 16 ?1 τ1 5 ? 3 & Université Libre de Bruxelles ?3 18 24 1 ? 11 τ2 53 ? 26 ? 22 ? 7 6 % ' 019, Techniques avancées de systèmes d’exploitation L’algorithme d’Audsley $ 54 Un premier algorithme consiste à considérer n! assignations de priorité dans la recherche d’une assignation ordonnançable. Cette méthode est optimale mais en général trop lourde. Audsley dans [1] a proposé un algorithme optimal plus efficace qui considère dans le pire des cas n2 assignations de priorité. Cet algorithme est basé la propriété (et définition) suivante : Définition 11 (viable au niveau de priorité le plus faible) Soit τ un système périodique. La tâche τi dite viable au niveau de priorité le plus faible dans τ ssi tous les travaux de τi respectent leur échéance lorsque : – la tâche τi possède la priorité la plus faible ; – les autres tâches ont des priorités quelconques mais supérieurs à celle de τi ; – lors de la contruction de l’ordonnancement, les travaux des tâches différentes de τi peuvent rater leur échéance (ils continuent dans ce cas leur exécution jusqu’à leur achèvement), les travaux de τi eux ne peuvent pas rater leur échéance. & Université Libre de Bruxelles % ' 019, Techniques avancées de systèmes d’exploitation Théorème 12 Supposons que τi soit viable au niveau de priorité le plus faible dans τ. Alors il y a une assignation de priorité ordonnançable pour τ ssi il y a une assignation de priorité ordonnançable pour τ \ {τi }. $ 55 Preuve : Premièrement, nous dénotons la correspondance tâche/priorité par p(τa ) = b signifiant que la priorité de la tâche τa est b. Supposons que l’assignation de priorité p est ordonnançable pour τ avec : p(τ1 ) = 1, p(τ2 ) = 2, . . . , p(τi ) = i, p(τi+1 ) = i + 1, . . . , p(τn ) = n Une seconde assignation de priorité est aussi ordonnançable : p0 (τ1 ) = 1, p0 (τ2 ) = 2, . . . , p0 (τi+1 ) = i, p0 (τi+2 ) = i + 1, . . . , p0 (τn ) = n − 1, p0 (τi ) = n Puisque τi est viable au niveau de priorité le plus faible dans τ, nous pouvons assigner sa priorité de la manière suivante : p0 (τi ) = n. Les tâches assignées & Université Libre de Bruxelles % ' 019, Techniques avancées de systèmes d’exploitation $ 56 originellement aux niveaux i + 1, . . . , n sont promues d’un niveau de priorité. Ces tâches restent ordonnançables car l’interférence de τi a disparue. Clairement, les tâches assignées aux niveaux 1, . . . , i − 1 restent ordonnançables car la modification n’affecte par ces dernières. Le Théorème 12 suggère une procédure pour déterminer une assignation de priorité ordonnançable (quand il en existe une) : 1. Premièrement, décider quelle tâche τi est viable au niveau de priorité le plus faible ; 2. ensuite, appliquer la même technique récursivement pour l’ensemble τ \ {τi } constitué de n − 1 tâches : & Université Libre de Bruxelles % ' 019, Techniques avancées de systèmes d’exploitation Assignation de priorité d’Audsley : $ 57 procedure assignerpriorité(τ) if (pas de tâche dans τ viable au niveau de priorité le plus faible) return “échec” else { soit τi une tâche viable au niveau de priorité le plus faible dans τ assigner à τi la priorité la plus faible dans τ assignerpriorité(τ \ {τi }) } end assignerpriorité La procédure nécessite de vérifier qu’une tâche τi est viable au niveau de priorité le plus faible dans τ, ce qui peut être vérifié, par exemple dans l’intervalle d’étude [0, Sn + Pn ). Remarquons que pour un système de n tâches l’algorithme d’Audsley va invoquer au plus n + (n − 1) + · · · + 2 + 1 = O(n2 ) fois ce test. & Université Libre de Bruxelles % $ ' 019, Techniques avancées de systèmes d’exploitation 58 C) Algorithmes à priorité dynamique L’algorithme Introduction L’algorithme Earliest Deadline First () est un algorithme à priorité dynamique très populaire, il assigne les priorités aux travaux pendant l’exécution du système : Définition 12 () À chaque instant t, donne la plus grande priorité au travail actif dont l’échéance est la plus petite (les cas d’égalités sont résolus arbitrairement). ?2 2 ? ?2 ?2 ?2 τ1 0 1 6 2 ? ?2 7 10 ?2 11 15 ?2 16 20 2 ? 21 ? τ2 & 2 Université Libre de Bruxelles 4 4 5 8 9 12 13 17 18 % ' 019, Techniques avancées de systèmes d’exploitation Optimalité $ 59 Dans la suite, .J représente l’ordonnancement généré par quand il ordonnance l’ensemble (fini ou infini) de travaux J. Théorème 13 Si une instance J peut être ordonnancé alors .J est ordonnançable. Preuve : La preuve est par induction. Soit ∆ un nombre positif arbitrairement petit. Considérons l’ordonnancement S pour J pour lequel toutes les échéances sont satisfaites, et soit [t0 , t0 + ∆) le premier intervalle dans lequel l’ordonnancement prend une décision différente de celle prise par .J. Supposons que le travail j1 = (a1 , e1 , d1 ) est ordonnancé dans S dans cet intervalle, alors que j2 = (a2 , e2 , d2 ) est ordonnancé dans .J. Puisque S respecte toutes les échéances, il ordonnance j2 dans l’intervalle [a2 , d2 ) (pas nécessairement de manière continue) qui s’achève avant d2 . En particulier, ceci implique que S ordonnance j2 pour une durée égale à ∆ avant d2 . Par définition d’ , d2 ≤ d1 ; dès lors, S ordonnance j2 pour une durée égale à ∆ avant d1 aussi. L’ordonnancement S0 obtenu à partir de S en échangeant les & Université Libre de Bruxelles % ' 019, Techniques avancées de systèmes d’exploitation $ 60 exécutions de j1 et j2 pour une durée ∆ sera identique à .J dans l’intervalle [0, t + ∆). L’optimalité d’ suit par induction sur t avec S0 qui joue alors le rôle de S. Optimalité forte d’ Remarquons que l’optimalité d’ est beaucoup plus forte que celle de (ou ) car elle concerne des travaux (et pas des tâches), en particulier, l’optimalité est conservée pour : – des systèmes à départ différé ; – des systèmes à échéance arbitraire. & Université Libre de Bruxelles % ' 019, Techniques avancées de systèmes d’exploitation $ 61 Systèmes à échéance sur requête Nous avons vu que (Lemme 1) U(τ) ≤ 1 est une condition nécessaire pour l’ordonnançabilité des systèmes périodiques. Nous allons voir que pour et des systèmes périodiques à échéance sur requête cette condition est aussi suffisante. D’abord, nous adaptons la notion de système faisable dans le cas dynamique : Définition 13 (faisable) Une instance J est faisable, s’il existe un ordonnancement qui respecte toutes les échéances. & Université Libre de Bruxelles % ' 019, Techniques avancées de systèmes d’exploitation $ 62 Théorème 14 U(τ) ≤ 1 est une condition nécessaire et suffisante pour la faisabilité des systèmes périodiques à échéance sur requête. Preuve : Soit τ un ensemble de n tâches périodiques à échéance sur requête : τ1 , . . . , τn . Considérons un ordonnancement « processeur partagé » S obtenu en partitionnant la ligne du temps en arbitrairement petits intervalles et ordonnançant chaque tâche τi pendant la fraction U(τi ) de cet intervalle. Puisque U(τ) ≤ 1, un tel ordonnancement peut en effet être construit. Cet ordonnancement S attribue à chaque travail de τi exactement U(τi ) × Ti = Ci unités entre son arrivée et son échéance. Corollaire 2 Un systèmes périodiques à échéance sur requête est ordonnançable avec ssi U(τ) ≤ 1. Preuve : Découle de l’optimalité forte d’ (Théorème 13) et du Théorème 14. & Université Libre de Bruxelles % ' 019, Techniques avancées de systèmes d’exploitation $ 63 Systèmes à départ simultané et échéance contrainte Remarquons d’abord que la configuration à départ simultané est toujours (en comparaison avec les algorithmes à priorité fixe) le cas le plus pessimiste : Théorème 15 Soit S un système périodique à échéance arbitraire. Si S est ordonnançable avec dans la configuration à départ simultané alors S est ordonnançable avec dans toutes les configurations à départ différé. En revanche, pour le temps de réponse du premier travail de τi n’est pas nécessairement le plus grand ! Considérons le système S = {τ1 = {C1 = 2, D1 = T1 = 4}, {C2 = 3, D2 = T2 = 7}}, le temps de réponse des premiers travaux de τ2 dans la configuration à départ simultané sont : 5, 5, 5, 6 & Université Libre de Bruxelles % $ ' 019, Techniques avancées de systèmes d’exploitation ?2 2 ? ?2 64 ?2 ?2 ?2 ?2 ? τ1 0 5 1 3 ? 6 8 9 12 1 ? 2 16 13 ?2 20 17 1 21 24 2 ? 25 1 ? τ2 2 4 7 10 11 14 15 18 22 23 26 Liu & Layland ont « montré » (la propriété est vraie mais malheureusement par la preuve) que l’on ne peut pas rater une échéance après une unité oisive du processeur : Théorème 16 ([7]) Lorsque ordonnance un système périodique avec échéance sur requête et à départ simultané, il n’y a pas d’unités oisives dans l’ordonnancement avant l’échec d’une échéance. & Université Libre de Bruxelles % ' 019, Techniques avancées de systèmes d’exploitation $ 65 C’est propriété peut être étendue en considérant les instant oisifs (cf. Définition 8) et des systèmes à échéance arbitraire : Théorème 17 ([3]) Lorsque ordonnance un système périodique avec échéance arbitraire et à départ simultané, il n’y a pas d’instants oisifs dans l’ordonnancement avant l’échec d’une échéance. Par conséquence l’intervalle [0, L) est un intervalle d’étude avec L qui correspond au premier instant oisif (hormis l’origine) dans l’ordonnancement. & Université Libre de Bruxelles % $ ' 019, Techniques avancées de systèmes d’exploitation 66 L est la plus petite solution positive de l’équation L= n X L i=1 Ti Ci et peut être calculée par itération : def w0 = def wk+1 = n X i=1 n X i=1 & Université Libre de Bruxelles Ci , L Ci . Ti % ' 019, Techniques avancées de systèmes d’exploitation $ 67 Systèmes à départ différé — intervalles d’études Considérer la configuration « départ simultané » est plus pessimiste que la configuration « départ différé » (cf. Théorème 15), dès lors si le test de faisabilité qui correspond au cas à départ simultané échoue il sera intéressant de vérifier, dans la situation à départ différé donnée, l’ordonnançabilité du système. Nous avons donc besoin d’une condition nécessaire (et pas suffisante) pour ces systèmes. & Université Libre de Bruxelles % ' 019, Techniques avancées de systèmes d’exploitation $ 68 Définition 14 (Configuration) Pour un système périodique R et un ordonnancement S, nous définissons la configuration à l’instant t par CS (R, t) = ((γ1 (t), α1 (t), β1 (t)), . . . , (γn (t), αn (t), βn (t))) où – γi (t) = (t − Oi ) mod Ti est le temps écoulé depuis le dernier travail de τi , si t ≥ Oi ; γi (t) = t − Oi si t < Oi . – αi (t) est le nombre de travaux actifs pour τi à l’instant t. – βi (t) est le temps processeur utilisé par le plus ancien travail actif de τi (s’il en existe un). Si αi (t) = 0, nous fixons βi (t) = 0. & Université Libre de Bruxelles % ' 019, Techniques avancées de systèmes d’exploitation $ 69 Théorème 18 Soit S un ordonnancement pour un système périodique à départ différé et échéance arbitraire. R est faisable ssi (1) toutes les échéances sont respectées dans l’intervalle [0, Omax + 2P] et (2) Cs (R, Omax + P) = Cs (R, Omax + 2P). Remarquons que les deux conditions du Théorème 18 sont nécessaires pour la faisabilité du système. L’exemple suivant montre que la condition (1) n’implique pas la condition (2). Soit le système T D C O τ1 4 4 2 0 τ2 4 7 3 2 Nous avons que P = 4 et Omax = 2 ; de plus comme nous le voyons sur l’ordonnancement toutes les échéances dans l’intervalle [0, 10) sont satisfaites, mais CS (R, 6) , CS (R, 10), car β2 (6) = 2 et β2 (10) = 1. Et τ2 rate son échéance à l’instant 21. & Université Libre de Bruxelles % $ ' 019, Techniques avancées de systèmes d’exploitation ?2 70 1 ? 1 ?2 6 7 10 ? 3 2 ? τ2 2 ?2 3 ?2 ?2 11 ?2 19 16 14 20 6 2 ? τ1 0 1 4 5 8 9 12 13 17 18 Dès lors [0, Omax + 2P) n’est pas un intervalle d’étude ! Par contre si la condition U(τ) ≤ 1 est satisfaite alors seule la première condition du Théorème 18 doit être considérée : Corollaire 3 Si U(τ) ≤ 1 alors [0, Omax + 2P) est un intervalle d’étude pour les systèmes à départ différé. & Université Libre de Bruxelles % ' 019, Techniques avancées de systèmes d’exploitation $ 71 L’algorithme Nous allons à présent considérer un deuxième algorithme à priorité dynamique optimal : l’algorithme Least Laxity First (). Cet algorithme est parfois appelé dans la littérature récente le slack-time algorithm. Nous allons utiliser le terme original (). La priorité à chaque instant dépend de la latitude des travaux. Définition 15 (Latitude) Soit J un travail charactérisé par le tuple (a, e, d), à l’instant t ≥ a, J (t) dénote le temps processeur utilisé par J depuis son arrivée (a), la latitude (dénotée par ` J (t)) à l’instant t est définie de la manière suivante : def ` J (t) = d − t − (e − J (t)) & Université Libre de Bruxelles % ' 019, Techniques avancées de systèmes d’exploitation La latitude d’un travail représente son degré d’urgence : $ 72 – ` J (t) > 0 : le travail peut encore patienter avant de recevoir le cpu (au maximum pendant ` J (t) unités de temps) ; – ` J (t) = 0 : il est impératif de donner le cpu à J jusqu’à l’instant d pour respecter son échéance ; – ` J (t) < 0 : quel que soit le choix de l’algorithme d’ordonnancement dans l’intervalle [t, d) J va rater son échéance ; – la latitude d’un travail qui s’exécute est constante. Définition 16 () L’algorithme donne à chaque instant la plus grande priorité au travail actif dont la latitude est la plus petite. Les cas d’égalité de latitude sont résolus d’une manière arbitraire. Mok à démontrer dans sa thèse l’optimalité de : Théorème 19 ([9]) Si une instance J peut être ordonnancée alors l’ordonnance. & Université Libre de Bruxelles % $ ' 019, Techniques avancées de systèmes d’exploitation 73 vs. — le nombre de préemptions L et sont tout deux des algorithmes à priorité dynamique optimaux, les ordonnancements produits sont néanmoins en général très différents en particulier si l’on se focalise sur le nombre de préemptions. Considérons par exemple le système suivant : C T D τ1 4 10 8 τ2 5 10 9 L’ordonnancement produit par ne contient pas de préemption : ? 4 ? τ1 0 3 5 ? ? τ2 & Université Libre de Bruxelles 4 8 % ' 019, Techniques avancées de systèmes d’exploitation $ 74 En revanche, l’ordonnancement produit par contient 6 préemptions tout les 10 unités de temps ! 1 ? 1 1 1 0 2 4 6 ? τ1 ? 1 1 1 1 3 5 2 ? τ2 7 8 Plus généralement, supposons qu’à l’instant t deux travaux (J1 et J2 ) actifs possèdent la même latitude minimale disons ` J1 (t) = ` J2 (t) ; supposons que donne le cpu à J1 alors à l’instant t + 1 nous avons : ` J1 (t + 1) = ` J2 (t + 1) + 1, préempte J1 et attribue le cpu à J2 ; à l’instant t + 2 les deux latitudes sont à nouveau identiques ` J1 (t + 2) = ` J2 (t + 2). Nous pouvons reproduire ce scenario tant que J1 et J2 sont actifs et qu’il n’y a pas d’autres travaux plus prioritaires à considérer. & Université Libre de Bruxelles % ' 019, Techniques avancées de systèmes d’exploitation $ 75 vs. — priorité dynamique Il est vrai que tout deux sont des algorithmes à priorité dynamique en vertu de la définition que nous avions adoptée puisque la priorité est assignée aux travaux. Par contre la priorité d’un travail sous est constante alors que sous elle varie. Dès lors nous pouvons distinguer 3 types d’algorithmes d’ordonnancement (du moins général au plus général) : Algorithmes à priorité fixe au niveau des tâches : qui assignent des priorités aux tâches (p. ex. ). Algorithmes à priorité fixe au niveau des travaux : qui assignent des priorités fixes aux travaux (p. ex. ). & Université Libre de Bruxelles % ' 019, Techniques avancées de systèmes d’exploitation $ 76 Algorithmes à priorité dynamique (au niveau des travaux) : qui assignent des priorités dynamiques aux travaux (p. ex. ). Dans ce cas la priorité d’un même travail peut évoluer au cours du temps. & Université Libre de Bruxelles % ' 019, Techniques avancées de systèmes d’exploitation $ 77 D) Autres problèmes/modèles Ordonnancement de tâches dépendantes Nous considérons l’ordonnancement des systèmes suivants : – n tâches périodiques – départ simultané – échéance sur requête – m ressources R1 , . . . , Rm – m sémaphores S1 , . . . , Sm : .. . P(Si ) section critique V(Si ) .. . & Université Libre de Bruxelles % $ ' 019, Techniques avancées de systèmes d’exploitation 78 Inversion de priorité 3 tâches τ1 > τ2 > τ3 (priorités fixes), τ1 et τ3 utilisant une même ressource (les zones grises représentent les sections critiques) τ1 τ2 τ3 t0 t1 t2 t3 t4 t5 t6 t7 t8 t9 τ1 (la tâche plus prioritaire) est préemptée par τ3 (car cette dernière est déjà dans sa section critique) : il y a une inversion de priorité. & Université Libre de Bruxelles % ' 019, Techniques avancées de systèmes d’exploitation $ 79 Ce qui est plus gênant, c’est que τ1 est interrompue par plusieurs travaux de τ2 (une tâche de priorité intermédiaire). De plus, la durée de ce phénomène d’inversion de priorité n’est pas borné ! & Université Libre de Bruxelles % ' 019, Techniques avancées de systèmes d’exploitation Courte digression d’ordre pratique : Mars Pathfinder $ 80 Cette photographie représente la sonde Mars Pathfinder, lancée en décembre 1996 par la NASA pour l’exploration de mars. L’objectif principal de Mars Pathfinder était de démontrer qu’il était possible de faire atterrir et de contrôler une sonde sur Mars à un coût relativement faible. Elle a également permis d’étudier la composition et les propriétés du sol ainsi que le climat. Mais après quelques jours de loyaux services sur mars, la sonde a commencée à réaliser des « system resets » intempestifs, perdant à chaque fois les données collectées. Dans la presse on pouvait lire « the computer was trying to do too many things at once » . En réalité, le problème provient d’une inversion de priorité non contrôlée. La ressource commune était un bus d’information utilisé pour échanger des informations entre les différents composant de la sonde. Différentes tâches accédaient à ce bus de manière concurrente à l’aide de sémaphores (la tâche de & gestion du bus, la tâche de « météorologie » et la tâche de communication). . . Université Libre de Bruxelles % $ ' 019, Techniques avancées de systèmes d’exploitation 81 1re solution : interdire la préemption Une première solution qui « tue » le problème consiste à interdire la préemption d’une tâche. L’ordonnancement de tâches périodiques et non préemptives est un problème NP-Hard. 10 20 30 40 50 60 n n2 0.00001 sec 0.00002 sec 0.00003 sec 0.00004 sec 0.00005 sec 0.00006 sec 0.0001 sec 0.0004 sec 0.0009 sec 0.0016 sec 0.0025 sec 0.0036 sec n3 0.001 sec 0.008 sec 0.027 sec 0.064 sec 0.125 sec 0.216 sec n5 0.1 sec 3.2 sec 24.3 sec 1.7 min 5.2 min 13 min 2n 3n 0.001 sec 1.0 sec 17.9 min 12.7 jours 0.059 sec 58 minutes 6.5 années 3855 siècles 35.7 années 2 × 108 siècles 366 siècles 1.3 × 1013 siècles Les algorithmes d’ordonnancement non préemptifs sont souvent non conservatifs : il peut être intéressant d’attendre l’arrivée d’une tâche courte et critique avant l’exécution d’une tâche longue et moins critiques. & Université Libre de Bruxelles % $ ' 019, Techniques avancées de systèmes d’exploitation 82 2e solution : interdire la préemption des sections critiques Le système est préemptif mais pas les sections critiques. Voici un exemple pour : J1 J 2 J 3 t0 & Université Libre de Bruxelles t1 t2 t3 t4 t5 t6 t7 % $ ' 019, Techniques avancées de systèmes d’exploitation 83 Condition d’ordonnançabilité pour : n X Ci + q i=1 Ti ≤1 où q est la durée de la plus longue section critique Condition d’ordonnançabilité pour : n X Ci + q i=1 Ti √ n ≤ n( 2 − 1) Cette solution est envisageable pour de courtes sections critiques. & Université Libre de Bruxelles % ' 019, Techniques avancées de systèmes d’exploitation $ 84 3e solution : protocole par héritage de priorité Sha et collègues dans [10] ont proposés deux protocoles : – le protocole à héritage de priorité (priority inheritance protocol) ; – le protocole à priorité plafond (priority ceiling protocol). Dans le protocole à héritage de priorité on distingue les priorités nominales des tâches : J1 > · · · > Jn et les priorités actives basées sur l’utilisation des ressources/sémaphores : lorsque Ji est bloquée par J j alors J j reçoit (hérite) de la priorité de Ji . & Université Libre de Bruxelles % $ ' 019, Techniques avancées de systèmes d’exploitation 85 J1 J 2 J 3 t0 & t1 Université Libre de Bruxelles t2 t3 t4 t5 t6 t7 % $ ' 019, Techniques avancées de systèmes d’exploitation 86 Théorème 20 Soit Bi le plus grand temps de blocage pour τi . Un ensemble de tâches périodiques est ordonnançable avec le protocole à héritage de priorité et si ∀i, 1 ≤ i ≤ n, i X C k=1 √i Bi + ≤ i( 2 − 1). Tk Ti k De plus, il existe un algorithme efficace pour le calcul des Bi du moins pour des sections critiques non imbriquées. Inconvénients du protocole à héritage de priorité : – ne prévient pas les interblocages (deadlocks) ; – un travail peut être bloqué par plusieurs sections critiques, on dira qu’il y a une chaîne de blocage : & Université Libre de Bruxelles % $ ' 019, Techniques avancées de systèmes d’exploitation J1 J 2 J 3 87 a b a b b a J1 est bloqué par 2 sections critiques. & Université Libre de Bruxelles % ' 019, Techniques avancées de systèmes d’exploitation $ 88 4e solution : le protocole à priorité plafond Les priorités sont : – les priorités nominales : τ1 > · · · > τn ; – les priorités plafonds associées aux sémaphores : C(Sk ) = max{P j | τ j utilise Sk } (fixe) ; – les priorités dynamiques des tâches : S∗i = max{C(Sk ) | Sk est verrouillé mais pas par τi } (dynamique). Une tâche est autorisée à entrer dans une section critique si Pi > S∗i . & Université Libre de Bruxelles % $ ' 019, Techniques avancées de systèmes d’exploitation 89 Exemple : J1 > J2 > J3 , J1 utilise S0 & S1 , J2 utilise S0 , J3 utilise S1 ; alors C(S0 ) = P1 , C(S1 ) = P1 S0 S1 S0 J1 S0 S0 J 2 S 1 J3 t & 0 t 1 Université Libre de Bruxelles t 2 t 3 t 4 t 5 t 6 t t 7 8 % $ ' 019, Techniques avancées de systèmes d’exploitation 90 Théorème 21 Soit Bi le plus grand temps de blocage pour τi . Un ensemble de tâches périodiques est ordonnançable avec le protocole à priorité plafond et si ∀i, 1 ≤ i ≤ n, i X C k=1 k Tk + 1 Bi ≤ i(2 i − 1). Ti Le calcul des Bi est cependant différent. Avantages du protocole à priorité plafond : – il prévient les interblocages ; – il prévient les chaînes de blocage. & Université Libre de Bruxelles % ' 019, Techniques avancées de systèmes d’exploitation Ordonnancement de tâches apériodiques $ 91 En général la partie critique des systèmes temps réel est constituée de tâches périodiques à échéance stricte. Par ailleurs, le système est composée de tâches non critiques (p. ex., E/S, l’interface avec le monde extérieur, l’audit du système, etc.) ces dernières sont des tâches apériodiques. Définition 17 (Tâche apériodique) Une tâche apériodique est une tâche dont on ne connaît pas lors de la conception du système les caractéristiques et en particulier la date d’arrivée. Objectif de l’ordonnancement Il est double : – les échéances strictes des tâches périodiques doivent impérativement être satisfaites ; – il faut assurer de bonnes performances pour l’exécution des tâches apériodiques (p. ex. minimiser leurs temps de réponse) & Université Libre de Bruxelles % ' 019, Techniques avancées de systèmes d’exploitation $ 92 Modélisation des tâches apériodiques Une tâche apériodique Ji sera caractérisée par 3 grandeurs : def Ji = (αi , pi , di ) – αi l’instant d’arrivée ; – pi le temps de calcul ; – di l’échéance non critique et optionnelle. Background Server C’est la stratégie la plus simple à laquelle on peut songer, il s’agit d’attribuer le cpu aux tâches apériodiques quand il n’y a pas de tâches périodiques en attente. Ce qui revient à donner les temps libres laissés par les tâches périodiques. & Université Libre de Bruxelles % $ ' 019, Techniques avancées de systèmes d’exploitation 93 Exemple : τ1 = {C1 = 2, T1 = 8, D1 = 8} and τ2 = {C2 = 3, T2 = 12, D2 = 12}. J1 = {α1 = 1, p1 = 1}, J2 = {α2 = 8, p2 = 2} and J3 = {α3 = 10, p3 = 1}. ≡ τs = {Cs = (1 − U)P, Ts = P = D} & Université Libre de Bruxelles % ' 019, Techniques avancées de systèmes d’exploitation $ 94 Polling Server Le principe du polling server est d’ajouter artificiellement une tâche périodique, disons τs = (Cs , Ts = Ds ) pour servir les requêtes apériodiques. Il faut donc définir judicieusement : – – – – la capacité du serveur : Cs ; la période du serveur : Ts ; la priorité du serveur (qui n’est pas nécessairement la plus grande) ; en général, on choisit Ds = Ts et on applique l’algorithme . Si il n’y a pas de requête apériodique quand τs est actif, le travail courant de τs termine son exécution, sinon la capacité est ajustée. La capacité du serveur est de plus rechargée toutes les Ts unités de temps. & Université Libre de Bruxelles % $ ' 019, Techniques avancées de systèmes d’exploitation 95 Exemple : τs = {Cs = 2, Ts = 8, Ds = 8} avec . & Université Libre de Bruxelles % ' 019, Techniques avancées de systèmes d’exploitation $ 96 – le système est ordonnançable si CTss + U(τ) ≤ ln 2 ; – il est parfaitement possible de disposer de plusieurs serveurs à des niveaux de priorité quelconque ; – le choix de la capacité et de la période des serveurs est capital pour les bonnes performances des requêtes apériodiques et dépasse largement la matière de ce cours introductif. & Université Libre de Bruxelles % ' 019, Techniques avancées de systèmes d’exploitation $ 97 Deferrable Server Le polling server se suspend lorsqu’il n’y a plus de requêtes apériodiques actives (jusqu’à la prochaine période) même si la capacité est non nulle. Dès lors, si une requête apériodiques arrive sensiblement plus tard, elle devra attendre la prochaine période alors que de la capacité résiduelle existe (c’est ce qui arrive à J1 dans l’exemple précédent). Le deferrable server sert lui les requêtes apériodiques tant que la capacité résiduelle est positive, la capacité du serveur est de plus rechargée toutes les Ts unités de temps. & Université Libre de Bruxelles % $ ' 019, Techniques avancées de systèmes d’exploitation 98 – Cette fois-ci la tâche τS ne se comporte plus exactement comme une tâche périodique, les tests d’ordonnançabilité doivent donc être adaptés. & Université Libre de Bruxelles % ' 019, Techniques avancées de systèmes d’exploitation $ 99 Priority Exchange Server Ce serveur va permettre comme le deferrable server d’utiliser la capacité résiduelle, la capacité du serveur est également rechargée toutes les Ts unités de temps et le l’ordonnancement sera celui de l’ensemble périodique correspondant. Donc les tests d’ordonnançabilité ne doivent pas être adaptés. Quand il n’y a plus de requêtes apériodiques la capacité résiduelle est échangée avec les tâches périodiques moins prioritaires. Les requêtes apériodiques sont servies avec la capacité résiduelle du niveau de priorité le plus élevé : J1 = {α1 = 1, p1 = 1}, J2 = {α2 = 7, p2 = 2} and J3 = {α3 = 17, p3 = 1}. & Université Libre de Bruxelles % $ ' 019, Techniques avancées de systèmes d’exploitation 100 & Université Libre de Bruxelles % $ ' 019, Techniques avancées de systèmes d’exploitation 101 Performances : les temps de réponses Serveur J1 J2 J3 moyenne Background Server 5 4 6 5 Polling Server 8 9 8 8.33 Deferrable Server 1 2 7 3.33 Priority Exchange Server 1 2 1 1.33 Ne tirons cependant pas de conclusions trop générales : – ce sont des (petits) exemples ; – les paramètres influencent les performances (p. ex. Cs , Ts , . . .). & Université Libre de Bruxelles % ' 019, Techniques avancées de systèmes d’exploitation $ 102 Ordonnancement multiprocesseur Introduction Nous allons à présent considérer des systèmes composés de plusieurs processeurs. Les applications temps-réel complexes nécessitent soit plusieurs processeurs pour satisfaire les échéances soit des architectures monoprocesseur très puissantes, coûteuses et volumineuse comme les superordinateurs. Pour des raisons économiques ou pratiques (p. ex. pour les systèmes embarqués) il sera préférable de distribuer les calculs sur une plate-forme multiprocesseurs. Nous considérons ici, des systèmes fortement couplés (strongly coupled systems). La caractéristique principale de ce type de système est l’existence d’une base commune du temps (pour l’ordonnancement global, cf. infra) et d’une mémoire commune. & Université Libre de Bruxelles % ' 019, Techniques avancées de systèmes d’exploitation L’ordonnancement sur une architecture multiprocesseur devra respecter les contraintes suivantes : $ 103 – un processeur exécute au plus une tâche à chaque instant ; – une tâche s’exécute sur au plus un processeur à chaque instant. Taxonomie des plates-formes multiprocesseurs Nous pouvons distinguer au moins les types de plates-formes suivantes (du moins général au plus général) Identiques Plate-forme multiprocesseur constituée de plusieurs processeurs identiques, dans la mesure où ils sont interchangeables et ont la même puissance de calcul. Uniforme En revanche, chaque processeur dans d’une plate-forme uniforme est caractérisé par sa capacité de calcul, avec l’interprétation suivante : lorsqu’un travail s’exécute sur un processeur de capacité de calcul s pendant t unités de temps il réalise s × t unités de travail. & Université Libre de Bruxelles % ' 019, Techniques avancées de systèmes d’exploitation Indépendante Pour ce type de plate-forme on définit un taux d’exécution ri,j associé à chaque couple travail-processeur (Ji , P j ), avec l’interprétation suivante : Ji réalise (r j,i × t) unités de travail lorqu’il s’exécute sur le processeur Pi pendant t unités de temps. $ 104 Les plates-formes identiques sont donc des plates-formes homogènes, les plates-formes uniformes et indépendantes sont des plates-formes hétérogènes. Dans la suite, nous allons considérer le cas particulier des plates-formes identiques. La théorie de l’ordonnancement pour les systèmes temps réel monoprocesseur est un domaine de recherche bien établi à ce jour, il y a de nombreux travaux solides qui couvrent largement ce domaine de recherche. En revanche, l’ordonnancement pour les systèmes temps réel multiprocesseurs est une domaine de recherche relativement neuf, peu de résultats existent à ce jour. & Université Libre de Bruxelles % ' 019, Techniques avancées de systèmes d’exploitation Familles d’algorithme multiprocesseur $ 105 On distingue en général deux types d’approche pour l’ordonnancement multiprocesseurs : Partitionnement il s’agit de partitionner l’ensemble des n tâches en m sous-ensembles disjoints : τ1 , τ2 , . . . , τm et d’ordonnancer ensuite l’ensemble τi sur le processeur Pi avec une stratégie d’ordonnancement locale monoprocesseur. Les tâches ne sont donc pas autorisées à migrer d’un processeur à l’autre. Stratégie globale il s’agit d’appliquer sur l’entièreté de la plate-forme multiprocesseur un stratégie d’ordonnancement globalement et d’attribuer à chaque instant les m processeurs au m tâches les plus prioritaires. Par exemple est utilisant ou . Dans ce cas, outre la préemption des tâches, on autorise aussi la migration de ces dernières ; c.-à-d. qu’une tâche peut commencer son exécution sur un processeur P j , être premptée et reprendre son exécution ultérieurement sur un autre & Université Libre de Bruxelles % ' 019, Techniques avancées de systèmes d’exploitation processeur (disons Pi , i , j). $ 106 Ces deux familles d’algorithme sont incomparables : – il existe des systèmes ordonnançables avec un partitionnement et pour lesquels les approches globales échouent et – il existe des systèmes ordonnançables avec une stratégie globale pour lesquels aucun partitionnement n’est ordonnançable. Techniques par partitionnement Le problème de partitionnement est en fait un problème bien connu sous le nom de Bin Packing dans le quel il faut placer dans m boîtes de tailles identiques, k objets de tailles différentes. Dans notre cas, les objets sont les tâches, leurs tailles sont leurs utilisations U(τi ), la taille de chaque boîte est l’utilisation maximale que l’on peut atteindre : ln 2 pour , 1 pour . Ce problème est NP-Hard, on utilise dès lors des heuristiques comme next-fit, best-fit, etc. pour approcher la solution optimale. & Université Libre de Bruxelles % ' 019, Techniques avancées de systèmes d’exploitation Techniques globales $ 107 Le premier résultat significatif est l’absence d’algorithme optimal en ligne, mais d’abord une définition. Définition 18 (Algorithme en ligne) Les algorithmes d’ordonnancement en ligne prennent leurs décisions à chaque instant sur base des caractéristiques des travaux actifs arrivés jusque là, sans connaissance des travaux qui arriveront dans le futur. Théorème 22 ([4]) Pour tout m > 1, aucun algorithme d’ordonnancement en ligne et optimal ne peut exister pour des systèmes avec deux ou plus d’échéances distinctes. Preuve : Nous prouvons la propriété pour le cas m = 2. Il sera facile de constater que la preuve peut être généralisée pour m > 2. Supposons qu’il existe un algorithme en ligne et optimal pour deux processeurs et considérons le scénario suivant. À l’instant 0, trois travaux J1 , J2 et J3 arrivent avec d1 = d2 = 4, d3 = 8, e1 = e2 = 2 et e3 = 4. L’algorithme ordonnance ces trois travaux sur deux processeurs à partir de l’instant 0. Nous avons deux cas à considérer, suivant que J3 s’exécute ou non dans l’intervalle [0, 2). & Université Libre de Bruxelles % ' 019, Techniques avancées de systèmes d’exploitation Cas 1 : J3 s’exécute dans l’intervalle [0, 2). Dans ce cas, au moins l’un des deux travaux J1 ou J2 n’a pas terminé son exécution à l’instant 2. Puisque J1 et J2 sont identiques, nous supposons que c’est J2 qui n’a pas terminé à l’instant 2. À présent, considérons le scénario où J4 et J5 arrivent à l’instant 2 avec d4 = d5 = 4 et e4 = e5 = 2. Clairement, l’ordonnancement construit par l’algorithme optimal en ligne n’est pas ordonnançable. Cependant, le système est faisable sur deux processeurs : mais il ne faut pas faire progresser le travail J3 dans l’intervalle [0, 2). Cas 2 : J3 ne s’exécute pas dans l’intervalle [0, 2). Dans ce cas, à l’instant 4, J3 s’est exécuté pour au plus deux unités. Donc, à l’instant 4, le temps de calcul restant de J3 est au moins de deux unités. À présent, considérons le scénario où J4 et J5 arrivent à l’instant 4 avec d4 = d5 = 8 et e4 = e5 = 4. À nouveau, l’algorithme optimal en ligne échoue dans la construction d’un ordonnancement alors que le système est faisable sur deux processeurs : mais il faut faire progresser le travail J3 dans l’intervalle [0, 2). & Université Libre de Bruxelles $ 108 % ' 019, Techniques avancées de systèmes d’exploitation Anomalies d’ordonnancement multiprocesseur $ 109 Anomalie. Nous disons qu’un algorithme d’ordonnancement souffre d’anomalies si un changement qui est intuitivement positif dans un système ordonnançable peut le rendre non ordonnançable. Changement intuitivement positif. C’est par exemple un changement qui diminue le facteur d’utilisation d’une tâche comme augmenter la période, diminuer un temps d’exécution (ce qui est équivalent à augmenter la vitesse des processeurs). Cela peut être aussi de donner plus de ressources au système comme ajouter des processeurs. Les algorithmes d’ordonnancement multiprocesseurs sont sujet à des anomalies. Par exemple, pour les algorithmes à priorité fixe, il existe des systèmes qui sont ordonnançables avec une assignation de priorité mais lorsque une & Université Libre de Bruxelles % ' 019, Techniques avancées de systèmes d’exploitation $ 110 période est augmentée et les priorités conservées ces systèmes ne sont plus ordonnançables ! C’est le cas du système τ1 = (T1 = 4, D1 = 2, C1 = 1), τ2 = (T2 = 5, D2 = 3, C2 = 3), τ3 = (T3 = 10, D3 = 8, C3 = 7) Ce système est ordonnançable sur 2 processeurs (τ1 τ2 τ3 ) τ1 τ1 τ3 τ1 τ3 τ1 τ3 τ1 τ3 P1 0 3 1 τ2 4 5 τ3 7 8 10 τ2 15 13 τ2 τ3 16 17 τ2 P2 0 2 4 5 7 10 12 13 14 15 17 En revanche, si l’on augmente la période de τ1 de 4 à 5 (et que l’on ne change pas les priorités), le système résultant n’est pas ordonnançable : τ3 rate son échéance à l’instant 8. & Université Libre de Bruxelles % ' 019, Techniques avancées de systèmes d’exploitation τ1 τ3 τ1 $ 111 τ3 P1 0 1 4 5 τ2 6 7 6 τ2 P2 0 2 5 7 Nous n’en dirons pas d’avantage sur l’ordonnancement multiprocesseur qui est une théorie à part entière. & Université Libre de Bruxelles % ' 019, Techniques avancées de systèmes d’exploitation $ 112 FIN & Université Libre de Bruxelles % ' 019, Techniques avancées de systèmes d’exploitation Bibliographie $ 113 [1] A, N., T, K., B, A. The end of the line for static cyclic scheduling ? In Proceedings of the EuroMicro Conference on Real-Time Systems (1993), pp. 36–41. [2] A, N. C. Optimal priority assignment and feasibility of static priority tasks with arbitrary start times. Tech. rep., 1991. [3] G, J. Scheduling of hard real-time periodic systems with various kinds of deadline and offsets contraints. PhD thesis, Université Libre de Bruxelles, 1999. [4] H, K., L, J. On-line scheduling of real-time tasks. In Real-Time Systems Symposium (1988). [5] L, J., Ed. Handbook of Scheduling : Algorithms, Models, and Performance Analysis. Chapman Hall/CRC Press, 2004. Chapter : Scheduling Real-time Tasks : Algorithms and Complexity. & Université Libre de Bruxelles % ' 019, Techniques avancées de systèmes d’exploitation [6] L, J. Y.-T., W, J. On the complexity of fixed-priority scheduling of periodic, real-time tasks. Performance Evaluation 2 (1982), 237–250. $ 114 [7] L, C. L., L, J. W. Scheduling algorithms for multiprogramming in a hard-real-time environment. Journal of the Association for Computing Machinery 20, 1 (January 1973), 46–61. [8] L, J. W. S. Real-Time Systems. Prentice-Hall, 2000. [9] M, A. K.-L. Fundamental design problems of distributed systems for the hard-real-time environment. PhD thesis, Massachusetts Institute of Technology, 1983. [10] S, L., R, R., L, J. Priority inheritance protocols : an approach to real-time synchronization. IEEE Transactions on Computers 9, 39 (1990). & Université Libre de Bruxelles %