FR2923039A1 - Procede de gestion des preemptions dans un systeme d'exploitation en temps reel - Google Patents

Procede de gestion des preemptions dans un systeme d'exploitation en temps reel Download PDF

Info

Publication number
FR2923039A1
FR2923039A1 FR0707478A FR0707478A FR2923039A1 FR 2923039 A1 FR2923039 A1 FR 2923039A1 FR 0707478 A FR0707478 A FR 0707478A FR 0707478 A FR0707478 A FR 0707478A FR 2923039 A1 FR2923039 A1 FR 2923039A1
Authority
FR
France
Prior art keywords
task
execution
tasks
time
current task
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
FR0707478A
Other languages
English (en)
Inventor
Fabrice Muller
Farooq Muhammad
Michel Auguin
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Centre National de la Recherche Scientifique CNRS
Original Assignee
Centre National de la Recherche Scientifique CNRS
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Centre National de la Recherche Scientifique CNRS filed Critical Centre National de la Recherche Scientifique CNRS
Priority to FR0707478A priority Critical patent/FR2923039A1/fr
Priority to JP2010530507A priority patent/JP2011501309A/ja
Priority to PCT/FR2008/001481 priority patent/WO2009087317A2/fr
Priority to EP08869900A priority patent/EP2203817A2/fr
Publication of FR2923039A1 publication Critical patent/FR2923039A1/fr
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • G06F9/4887Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues involving deadlines, e.g. rate based, periodic

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)
  • Complex Calculations (AREA)
  • Measurement Of The Respiration, Hearing Ability, Form, And Blood Characteristics Of Living Organisms (AREA)

Abstract

L'invention concerne un procédé de gestion des préemptions entre au moins deux tâches ayant des priorités différentes dans un système d'exploitation en temps réel caractérisé en ce que lors d'une requête d'exécution d'une tâche ayant une priorité plus élevé que la tâche en cours, l'exécution de la tâche en cours n'est interrompue qu'au bout d'un intervalle de temps calculé pour permettre au moins à la tâche en cours et à la tâche de priorité plus élevée d'être exécutées avant la fin de délais d'exécution qui leur sont assignés.

Description

PROCEDE DE GESTION DES PREEMPTIONS DANS UN SYSTEME D'EXPLOITATION EN TEMPS REEL. La présente invention à pour objet un procédé de gestion des préemptions entre plusieurs tâches dans un système d'exploitation en temps réel (RTOS). Il est connu en effet de préempter une tâche par une tâche plus prioritaire afin de permettre à celle-ci d'être achevée avant une échéance qui est fixée, que ce soit dans le cas d'ordonnanceurs à priorité fixes ("fixed priority scheduling" ou FPS) ou dynamiques (priorité à l'échéance la plus proche soit "earliest deadline first" ou EDF), ou bien encore latence minimale (ou "least laxity"). Cependant, la préemption des tâches et plus particulièrement le nombre de ces préemptions a des conséquences parfois importantes sur les performances. En effet, le processeur ne peut être utilisé à son maximum, car chaque préemption entraîne des modifications de l'état des mémoires cache (instructions et données), et ces modifications entraînent à leur tour une augmentation des temps d'exécution des tâches (ce qui fait que les contraintes de temps réel ne sont plus garanties) et la consommation d'énergie augmente en raison des mouvements de données entre les différents niveaux de la hiérarchie des mémoires à chaque préemption et à chaque retour de préemption. Il est donc souhaitable de diminuer le nombre des préemptions. L'article de Radu DOBRIN et Gerhard FOHLER paru dans Real Systems 2004 û Proceedings ECRT 2004 û 16th Euromicro Conference on Real Time Systems, 30 juin û 2 juillet 2004, pages 144 à 152 intitulé "Reducing the Number of Preemptions in Standard Fixed Priority Scheduling", propose un algorithme de préemption à priorités fixes (FPS) en analysant un jeu de tâches ("artifact tasks") ayant des périodes égales au plus petit commun multiple des périodes des deux tâches et ordonnancé par un algorithme de préemption à priorité fixe, puis en calculant le nombre de préemptions susceptible de se produire et impose l'exécution de la tâche préemptante ou des tâches préemptées de sorte qu'il évite une préemption des tâches au cours de leur exécution tout en permettant leur exécution dans le délai prescrit.
La technique décrite permet de réduire le nombre de préemptions seulement dans le cas où le taux d'occupation des processeurs est notablement inférieur à 100%. L'article de Sung-Heun Oh et Seung-Min YANG intitulé "A Modified Least-Laxity-First Scheduling for Real-Time Tasks" paru dans Proceedings of the 3th International Conference on Real Time Computing Systems and Applications 1998 (27-29 octobre 1998, pages 31 à 36) propose un algorithme d'ordonnancement LLF (priorité à la latence minimale) pour résoudre un problème d'incompatibilité entre deux tâches en permettant à une des deux tâches de s'exécuter complètement sans préemption. L'algorithme dédié au problème du lien de la latence ("laxity tie") relatif à l'ordonnancement LLT opère en effet pour chaque tâche du jeu de tâches et assigne individuellement à chaque tâche du jeu de tâches une priorité fixe pour un temps de libération calculé dynamiquement, ce qui augmente considérablement la complexité du contrôle des tâches ("TCB"), et augmente les temps d'exécution ce qui conduit à une plus faible disponibilité du processeur pour sa tâche essentielle qui est l'exécution des tâches, sauf à choisir un processeur ayant une plus grande puissance de traitement. L'article de Cécilia EKELIN "Clairvoyant Non-Preemption EDF Scheduling" (18th Euromicro Conference on Real Time Systems ECRTS'06 pages 23-32) propose de retarder l'exécution de certaines tâches en tenant compte de l'arrivée future de nouvelles tâches, mais cette technique s'applique seulement au cas de tâches sans règle de préemption. L'article de Yun WANG et Manas SAKSENA "Scheduling Fixed-Priority Tasks with Preemption Threshold" (Sixth Conference on Real Time Computing Systems and Applications RCTSA'99 pages 328-335) propose un algorithme de réduction des préemptions qui impose de calculer pour chaque tâche des seuils de préemption, d'où une complexité proportionnelle au carré du nombre n des tâches.
L'article de Woonseok KIM, Jihong KIM et Sang Lyul MIN publié dans les "Proceedings of the 2004 International Symposium on Low Power Electronics and Design" ISPLED'04, 9-11 août 2004, pages 393 à 398, et intitulé "Preemption-Aware Dynamic Voltage Scaling in Hard Real-Time Systems" analyse l'effet négatif des préemptions sur la consommation électrique du processeur et propose deux solutions.
La première solution proposée est une accélération de la cadence de l'horloge pour permettre à une tâche de plus faible priorité de se terminer avant l'arrivée d'une tâche de priorité plus élevée, ce qui impose qu'avant que la tâche de priorité plus élevée n'arrive, le taux d'utilisation du processeur soit notablement inférieur à 100 % pour permettre de rétablir ensuite la cadence de l'horloge, et ceci impose, pour une bonne efficacité, de surdimensionner le processeur. La deuxième solution proposée consiste à prévoir un processeur largement surdimensionné par rapport à sa charge de travail totale et à utiliser une faible fréquence d'horloge de sorte qu'il reste possible de terminer des tâches ayant une faible priorité alors que se présente une tâche de plus haute priorité. II résulte de ce qui précède qu'il n'est pas actuellement connu de technologie qui soit apte à diminuer le nombre de préemptions sans que n'existe un inconvénient associé tenant à la disponibilité et/ou au dimensionnement du processeur. L'idée de base de l'invention est de déterminer pour chaque tâche un intervalle de non préemption pendant lequel la tâche peut rester en exécution alors qu'une tâche plus prioritaire apparaît.
L'invention concerne ainsi un procédé de gestion des préemptions entre au moins deux tâches ayant des priorités différentes dans un système d'exploitation en temps réel caractérisé en ce que, lors d'une requête d'exécution d'une tâche ayant une priorité plus élevée que la tâche en cours, l'exécution de la tâche en cours n'est interrompu qu'au bout d'un intervalle de temps calculé pour permettre au moins à la tâche en cours et à la tâche de priorité plus élevé d'être exécutées avant la fin de délais d'exécution qui leur sont assignés. L'intervalle de temps peut être calculé une fois pour toutes pour chaque tâche en tenant compte de l'exécution de toutes les autres tâches pouvant avoir une priorité plus élevée, ou bien de manière dynamique en tenant compte de toutes les autres tâches ayant une priorité plus élevée et pour lesquelles une requête d'exécution est formée. Dans ce cas, l'intervalle de temps de la tâche en cours peut être réactualisé chaque fois qu'est formée une requête d'exécution pour une tâche ayant une priorité plus élevée que la tâche en cours.
L'invention concerne également un procédé tel que défini ci-dessus caractérisé en ce que la gestion de la préemption de plusieurs tâches dont les indices i sont choisis de sorte que les tâches sont classées en ordre croissant de priorité d'exécution, l'indice 1 étant affecté à la tâche ayant la
priorité d'exécution la plus élevée, et ainsi de suite jusqu'à l'indice p qui est affecté à la tâche dont la priorité d'exécution est la plus faible, l'intervalle de temps NPi de non préemption de la tâche de rang i a pour valeur : NP,, = Min (NPi_, , L'abs ) avec i-, i L'-, = P P- 1 C abs i-1 ù k k=l Pk Pi désignant le délai d'exécution assigné à la tâche T. Ce
temps est égal à la période de la tâche dans le cas d'un ordonnancement EDF avec calcul statique des valeurs de NPi, et également RM ("Rate Monotonic") par définition. Dans le cas des ordonnancements EDF avec calcul dynamique des valeurs de NPi, ou bien DM ("Deadline monotonie), Pi peut être égal dans cette équation et dans toutes les équations suivantes à une échéance Di de
valeur inférieure ou égale à la période de la tâche.
C; désignant la durée d'exécution de la tâche Ti
D'autres caractéristiques et avantages de l'invention apparaîtront à la lecture de la description ci-après en liaison avec les dessins dans lesquels :
- la figure 1 est un exemple de mise en oeuvre d'un algorithme selon l'invention,
- la figure 2 illustre l'accumulation de la latence ou laxité des tâches plus prioritaires que la tâche T en cours,
- les figures 3a et 3b sont un exemple de mise en oeuvre
dans un système mettant en oeuvre trois tâches dont TI est la plus prioritaire, respectivement avec un algorithme selon l'invention et avec un algorithme "EDF" classique,
- et les figures 4 et 5 illustrent le cas de préemptions en chaîne dans le cas d'un algorithme "EDF" classique (Figure 4) et comment un algorithme selon l'invention permet de les éviter (Figure 5) ou d'en diminuer le nombre. On considère à titre d'exemple un système en temps réel dans lequel des tâches en temps réel sont ordonnées selon un schéma d'échéance la plus proche (EDF). Les tâches T sont au nombre de n et sont notée (TI, T2, ...Tn). Ces tâches sont supposées être mutuellement indépendantes. Chaque tâche Ti a son propre délai d'exécution ("deadline") P; qui lui est imposé ainsi qu'une durée d'exécution Ci calculée dans le cas d'exécution le plus défavorable ("worst case execution time" ou WCET).
Chaque tâche Ti présente une latence ou laxité L; qui est définie par : L; = P; ù C; Chaque tâche réapparaît de manière cyclique et la kème implémentation de la tâche Ti est notée T;,k. Chaque implémentation k de la tâche T;,k a une date de réveil 15 r;,k = kP; et un délai d'exécution (date d'échéance) d;,k = (k+1)P;. Avec un algorithme EDF, la tâche qui s'exécute est celle qui à l'échéance d la plus proche. L'algorithme est donc basé sur des priorités dynamiques. L'algorithme décrit ci-après se distingue d'un algorithme classique de type "EDF" par l'instant où les préemptions sont réalisées. En 20 effet, l'algorithme permet de savoir si une préemption immédiate est nécessaire ou bien s'il est possible de la retarder et pendant combien de temps. Par convention, les tâches sont triées par ordre de manière ascendante par rapport à leur période P de sorte que quelque soit i, on a P; 25 <P;+,, PI étant la tâche dont le délai d'échéance PI est le plus court. On définit par NP; la durée pendant laquelle la tâche en cours Ti peut se poursuivre sans inconvénient même en présence à l'instant t d'une ou plusieurs autres tâches de priorité plus élevée que celle de la tâche en cours. 30 A cet effet, on peut énumérer trois conditions. Condition 1 : la latence L; de la tâche Ti peut être décalée sur tout l'intervalle de temps défini entre sa date de réveil et sa date d'échéance Pi. En effet, la tâche Ti ne dépasse jamais l'échéance tant que, 35 pendant la durée d'échéance P;, le processeur lui attribue un temps de processeur C.
Condition 2 : la tâche Ti peut être préemptée seulement par une tâche ayant une priorité supérieure et donc une durée d'échéance P; inférieure (dans le cas d'un algorithme EDF ou RM). Forcer une tâche de plus faible priorité à continuer son exécution alors qu'une tâche de plus haute priorité doit être exécutée est une inversion de priorité qui peut provoquer un dépassement de l'échéance fixée pour la tâche de plus haute priorité. Seules des tâches de plus haute priorité peuvent donc préempter des tâches de plus faible priorité.
L'algorithme RM ("Rate Monotonic"), préemptif, est basé sur des priorités fixes. Les tâches sont périodiques et de période P;, mais l'échéance n'est pas nécessairement en fin de période. Les tâches sont classées par périodes croissantes et la priorité est allouée en fonction inverse de la période.
Dans le cas de l'algorithme "EDF", le critère de priorité est l'échéance absolue d. Si la tâche Ti est préemptée à l'instant n par la tâche Ti prête pour l'instant k, ce qui implique que : rf,n < rj,k Comme la tâche Ti est préemptée à l'instant n par la tâche Ti, ce qui implique que l'échéance de Ti est plus proche que celle de Ti, d'où : dj, k < di,n Il en résulte que Pi < P;. Une tâche Ti ne peut donc être préemptée que par une tâche qui à une durée d'échéance P inférieure. Dans un algorithme "RM", une tâche qui apparaît moins fréquemment sera toujours préemptée par une tâche plus fréquente. Dans le cas d'un algorithme EDF, une tâche plus fréquente peut ou non préempter une tâche peu fréquente.
Dans le cas d'un algorithme "EDF", la condition 2 est nécessaire, et pour un algorithme "RM" elle est nécessaire et suffisante. Il en résulte comme corollaire que seules les tâches qui ont un délai d'échéance inférieur à celui de la tâche Ti peuvent dépasser leur échéance en cas d'inversion de priorité au profit de la tâche Ti.
Condition 3, : Dans le cas d'un algorithme de type "EDF" donnant la priorité à l'échéance dont le terme est le plus proche, une tâche Ti peut poursuivre son exécution en causant une inversion de priorité pendant un temps NP calculé de manière statique ou dynamique sans qu'aucune autre tâche ne dépasse l'échéance qui lui est assignée. Autrement dit, chaque tâche T; présente deux paramètres principaux qui sont sa durée d'exécution C; dans le cas le plus défavorable et sa période P; qui fixe la durée d'échéance, c'est-à-dire le temps qui reste disponible pour terminer la tâche dans le délai prescrit. La date d'échéance de la tâche n'est assimilée à sa période que dans le cas de l'ordonnancement EDF, si on calcule statiquement les valeurs NP des tâches et de l'ordonnancement RM. Pour les ordonnancements EDF avec calcul dynamique des valeurs de NP; ou bien DM ("Deadline Monotonic"), P; peut être égal à une échéance D; de valeur inférieure ou égale à la période de la tâche. Le troisième paramètre élaboré à partir des deux premiers est la latence ou laxité L. Si une tâche de plus haut niveau de priorité présente une latence suffisante, alors on peut décaler son exécution en retardant la préemption pendant une durée qui est compatible avec le fait que toutes les tâches sont effectuées sans dépassement de leur échéances.
Un algorithme logique est représenté à la figure 1. A l'arrivée d'une tâche Ti, si aucune tâche n'est active, on procède de manière classique (par exemple algorithme "EDF"). Si une tâche T; est déjà active, on poursuit la procédure "EDF" si P; < Pi, et sinon la tâche Ti est insérée dans une file d'attente temporaire pour une durée égale au minimum entre le temps d'exécution restant pour Ti et la valeur NP' de la durée de non préemption pour Ti. Dès que cette durée est atteinte, la tâche Ti préempte la tâche T;, sauf bien sûr si la tâche Ti a déjà terminé son exécution, auquel cas la tâche Ti commence son exécution dès que la tâche Ti est achevée.
La valeur NP; de la durée de non préemption peut être déterminée soit de manière statique, soit de manière dynamique. Une détermination statique est décrite ci-après : La latence L; de la tâche T; définit la durée NP;+1 pendant laquelle une tâche T;+1 de priorité plus faible peut causer une inversion de 35 priorité sans que Ti ne manque son échéance. On a donc : NP2 = L~ La tâche T, qui a la durée d'échéance la plus petite ne peut être préemptée par aucune autre tâche, et que la tâche T2 ne peut être préemptée que par la tâche TI, et ainsi de suite jusqu'à la tâche Tp qui peut être préemptée par les tâches plus prioritaires Tp_I, Pour calculer NP3 pour la tâche T3, on définit une tâche virtuelle utilisée uniquement dans les calculs et dont l'objectif est de modéliser les échéances et les temps d'exécution induits par les tâches plus prioritaires que T3. Cette tâche virtuelle a une latence L abs 2 et un temps d'exécution 10 C abs 2 défini dans le cas le plus défavorable comme étant égal à la somme de C2 et d'un temps d'exécution proportionnel à celui de la tâche TI pour la période égale à la période de cette tâche virtuelle, soit : Cabs =C2 + PZ C, 15 On aura:
NP3 = Min(NP2, LabS ) C'est-à-dire que l'on choisit le minimum entre les deux valeurs entre parenthèses. 20 On aura de la même façon : NP4 = Min(NP3 , LabS En effet, la tâche T3 a la durée d'échéance la plus grande parmi les tâches TI, T2, T3 qui peuvent préempter la tâche T4. De manière générale, la tâche Ti peut être préemptée par les 25 tâches (TI, T2, ..., T;_1), qui ont une durée d'échéance inférieure à sa durée P. Si on tient compte de toutes les tâches qui peuvent préempter la tâche Ti, on peut définir une tâche virtuelle TabS dont la laxité correspond à la durée de non péremption NP;. On peut ainsi calculer en remontant depuis TI jusqu'à Ti, toutes les durées de non préemption NP; (i variant de 1 à D. 30 Pour calculer le temps d'exécution le plus défavorable d'une tâche virtuelle, on choisit pour la tâche Ti le cas où toutes les tâches ayant un niveau de priorité plus élevé sont appelées en même temps au cours de l'exécution de la tâche Ti.
La tâche virtuelle Tabs présente une période égale à la durée d'échéance P;_1 de la tâche et sa durée d'exécution dans le cas le plus défavorable notée Catis est la somme pondérée des durées d'exécution dans le cas le plus défavorable de toutes les tâches ayant une durée d'échéance inférieure à la durée C; de la tâche Ti. On aura donc : C'-' = P x C abs k=1 Pk Liù1 =Pil -cil abs abs abs La latence L'abs de la tâche Ta'-bis accumule en effet les latences ou laxités de toutes les tâches plus prioritaires que la tâche Ti. La figure 2 montre que la tâche virtuelle Tabs collationne la 15 latence accumulée L'abs de toutes les tâches plus prioritaires que la tâche T; tandis que la durée Pabs de la tâche virtuelle Tabs a une valeur plus élevée que pour chacune des tâches de plus grande priorité que Ti et Catis est le cumul pondéré des temps d'exécution les plus défavorables de ces tâches. Cette latence accumulée donne une plus grande capacité à 20 une tâche donnée de se poursuivre sans que son exécution soit préemptée par une tâche plus prioritaire. On définit alors le temps de non préemption NP; de la tâche Ti : NP1 = Min(NP;_, , L'abs Liù1 = P,-1 x P' ` Ck abs k=1 Pk La formule donnant NP; tient compte de par son mode de calcul de la valeur minimale de la latence des tâches de rang inférieur. Ainsi aucune des tâches ne pourra manquer son échéance. L'algorithme décrit ci-dessus retarde la préemption de la tâche en cours pendant une durée égale à la valeur de NP; pour la tâche en cours Ti. 25 30 On notera que les valeurs possibles de NP peuvent être précalculées et placées dans un tableau donnant ainsi pour chaque tâche la valeur NP. Ce délai est décompté par un compteur et quand ce compteur atteint la valeur 0, il y a préemption de la tâche en cours sauf si bien sûr la tâche en cours s'est terminée avant auquel cas il y a exécution de la nouvelle tâche dès la fin de l'exécution de la tâche en cours et sans préemption.
Si pendant l'intervalle de temps NP; de la tâche en cours Ti, d'autres tâches apparaissent, elles seront retardées jusqu'à ce que l'intervalle NP; soit terminé. Ce n'est qu'ensuite que les échéances de ces tâches seront prises en compte. Le calcul de NP prend en compte le cas où toutes les tâches plus prioritaires que la tâche en cours apparaissent simultanément, ce qui assure que dans le pire des cas, toutes les tâches seront menées à bien en respectant leur échéance, quelque soient les tâches susceptibles d'apparaître ultérieurement.
Exemple :
On prend un modèle simple présentant trois tâches TI, T2, T3. Elles ont été classées par ordre de priorité, en fonction de leur période, TI 20 étant la plus prioritaire, comme indiqué ci-dessous :
On a:
T~ CI =4 P1 = 10
T2 C2=6 P2 = 21
T3 C3= 9 P3= 33
25 TI ne peut être préemptée
T2 ne peut être préemptée que par TI
T3 ne peut être préemptée que par TI ou T2. Ona NP3=P2-E P2C; Pi soit 30 NP3=21 - lôx4-6=6,6
NP2=P~ûC~=6
Les figures 3a et 3b sont des chronogrammes montant d'une part (figure 3a) le fonctionnement de l'algorithme selon l'invention et d'autre part (figure 3b) selon un algorithme EDF classique, pour une tâche T2 arrivant aux instants t = 0 et 21 (deux occurrences), une tâche TI arrivant aux instants 3,13, 23 et 33 (4 occurrences), et une tâche T3 arrivant aux instants 0 et 33. A la figure 3a, il n'y a plus de préemption, alors qu'à la figure 3b, on a deux préemptions.
En effet, la tâche T2 n'est pas du tout préemptée par la tâche TI qui arrive à l'instant 3 car NP2 = 6 ce qui est supérieur au temps nécessaire à la tâche P2 pour s'achever. La tâche TI commence son exécution à l'instant t = 6 et se termine avant son échéance à t = 10. A l'instant t = 10, la tâche T3 commence son exécution jusqu'à ce que la deuxième occurrence de la tâche Ti apparaissent à l'instant t = 13, mais la préemption de T3 est retardée car NP3 = 6,6, ce qui permet à la tâche T3 de se terminer sans préemption. La deuxième occurrence de la tâche TI est exécutée entre les instants t = 19 et t = 23, et la troisième occurrence de la tâche TI est exécutée entre les instants t = 23 et t = 27. La tâche Ti qui est la plus prioritaire ne pouvant être préemptée, la deuxième occurrence de T2 à l'instant t = 20 est retardée jusqu'à t = 27 quand la tâche TI est terminée, et la deuxième occurrence de la tâche T2 est exécutée entre t = 27 et t = 33. L'algorithme statique décrit ne permet en général pas de supprimer toutes les préemptions, mais seulement d'en diminuer le nombre.
Il est possible d'améliorer les performances et de diminuer encore le nombre de préemptions en ajustant de manière dynamique la durée de préemption. Le calcul précédent revient en effet à prendre en compte le fait que toutes les tâches à faible périodicité soient appelées simultanément ce qui est en pratique. Le calcul dynamique vise à ne prendre en compte que les tâches effectivement appelées pour être éxecutées. Si une tâche Tk est appelée et présente une échéance antérieure à celle de la tâche Ti en cours, alors, NP; est calculé et est décrémenté pendant que la tâche Ti se poursuit jusqu' ce que la durée NP; soit écoulée ou que la tâche Ti se termine. Il s'agit donc de recalculer NP; chaque fois qu'une nouvelle tâche appelée a une échéance située avant celle de la tâche en cours, et recommencer la décrémentation de NP; avec la nouvelle valeur et avec ce nouveau point de départ, le calcul de NP; s'effectue en utilisant les équations précédentes, mais en ne tenant compte que des tâches qui sont prêtes à être exécutées et qui ont une échéance absolue antérieure à celle de la tâche Ti Dans ce calcul dynamique, les tâches sélectionnées pour le calcul du paramètre NP1 sont ordonnées en fonction de la valeur de leur 5 échéance absolue d; et non en fonction de la valeur de leur durée d'échéance Pi. Si la tâche Tk est la première à être appelée alors que Ti est exécutée (dk < d;), NP; sera choisi égal à la latence Lk de la tâche Tk. Si une nouvelle tâche TI est prête (d, < d; ), alors NP; sera recalculé en tenant compte 10 des paramètres des tâches Tk et T, selon les formules données ci-dessus. Une valeur recalculée ne peut qu'être inférieure ou égale à la valeur précédente. On notera qu'une valeur NP, calculée de manière statique ne peut pas être supérieure à une valeur NP, calculée de manière dynamique, car le calcul statique tient compte de toutes les tâches plus prioritaires qu'elles 15 soient ou non prêtes alors que le calcul dynamique ne tient compte que des tâches qui sont effectivement prêtes pour être exécutées. La complexité du calcul dynamique est proportionnelle au nombre total n de tâches, et l'algorithme nécessite n itérations dans le pire des cas, mais le nombre d'itérations sera en général très inférieur à n. Ce 20 calcul des valeurs de NP peut être incorporé dans l'algorithme qui sert à placer les tâches nouvellement appelées pour exécution dans la file d'attente et dont la complexité est également proportionnelle à n. Un phénomène particulièrement gênant dans le cas des algorithmes de type RM ou EDF est l'existence de préemptions en chaîne, 25 c'est-à-dire qu'une tâche en cours est préemptée par une tâche plus prioritaire, elle-même préemptée par une tâche encore plus prioritaire et ainsi de suite. Du fait que l'algorithme selon l'invention, qu'il soit statique ou dynamique, tient toujours compte de toutes les tâches prêtes pour exécution 30 (de toutes les tâches susceptibles d'être prêtes dans le cas d'un algorithme statique et réellement prêtes dans le cas d'un algorithme dynamique), ce phénomène peut être évité ou atténué. Ceci est illustré aux figures 4 et 5 pour une préemption en chaînes pour 6 tâches TI à T6 classées comme précédemment par ordre de 35 priorité décroissante (TI étant la tâche la plus prioritaire).
A la figure 4 T6 est préempté par T5, T5 par T4, T4 par T3, T3 par T2 et enfin T2 par TI, soit cinq préemptions en cascade qui sont évitées par l'algorithme selon l'invention (figure 5). On notera que l'introduction de l'algorithme selon l'invention ne modifie pas les conditions de faisabilité des algorithmes classiques qui est, par exemple dans le cas de l'algorithme EDF, que, U étant le taux maximal d'utilisation de processeur : <

Claims (7)

REVENDICATIONS
1. Procédé de gestion des préemptions entre au moins deux tâches ayant des priorités différentes dans un système d'exploitation en temps réel caractérisé en ce que lors d'une requête d'exécution d'une tâche ayant une priorité plus élevé que la tâche en cours, l'exécution de la tâche en cours n'est interrompue qu'au bout d'un intervalle de temps calculé pour permettre au moins à la tâche en cours et à la tâche de priorité plus élevée d'être exécutée avant la fin de délais d'exécution qui leur sont assignés.
2. Procédé selon la revendication 1 caractérisé en ce que ledit intervalle de temps est calculé pour chaque tâche de manière fixe en tenant compte de l'exécution toutes les autres tâches pouvant avoir une priorité plus élevée.
3. Procédé selon la revendication 1 caractérisé en ce que ledit intervalle de temps est déterminé pour la tâche en cours de manière dynamique en tenant compte de toutes les autres tâches ayant une priorité plus élevée et pour lesquelles une requête d'exécution est formée.
4. Procédé selon la revendication 3 caractérisé en ce que ledit intervalle de temps de la tâche en cours est réactualisé chaque fois qu'est formée une requête d'exécution pour une tâche ayant une priorité plus élevée que la tâche en cours.
5. Procédé selon une des revendications précédentes caractérisé en ce que pour la gestion de la préemption de plusieurs tâches dont les indices i sont choisis de sorte que les tâches sont classées en ordre croissant du délai d'exécution, l'indice 1 étant affecté à la tâche ayant le délai d'exécution le plus court, et ainsi de suite jusqu'à l'indice p qui est affecté à la tâche dont le délai d'exécution est le plus long, l'intervalle de temps NPi de non préemption de la tâche de rang i a pour valeur : NPi = Min~NP;_, , L`~bs avec -1 L- =P P xC abs i-1 k k=1 Pk P, désignant le délai d'exécution assigné à la tâche T;C; désignant la durée d'exécution dans le pire cas de la tâche Ti
6. Procédé selon la revendication 5 caractérisé en ce que ledit intervalle de temps NP; est calculé de manière fixe en tenant compte de toutes les autres tâches ayant un délai d'exécution plus court que le temps d'exécution P; de la tâche en cours T; et en ce que la tâche en cours T; ne peut être préemptée que par une tâche ayant un délai d'exécution qui est inférieur à son délai d'exécution P.
7. Procédé selon la revendication 5 caractérisé en ce que ledit intervalle de temps NP; est calculé de manière dynamique en tenant compte de toutes les tâches appelées pour exécution et ayant une échéance absolue antérieure à celle de la tâche en cours Ti et en ce que la tâche en cours ne peut être préemptée que par une tâche ayant une échéance absolue antérieure à son échéance absolue d;.
FR0707478A 2007-10-24 2007-10-24 Procede de gestion des preemptions dans un systeme d'exploitation en temps reel Withdrawn FR2923039A1 (fr)

Priority Applications (4)

Application Number Priority Date Filing Date Title
FR0707478A FR2923039A1 (fr) 2007-10-24 2007-10-24 Procede de gestion des preemptions dans un systeme d'exploitation en temps reel
JP2010530507A JP2011501309A (ja) 2007-10-24 2008-10-22 リアルタイム・オペレーティング・システムにおけるプリエンプションの管理方法
PCT/FR2008/001481 WO2009087317A2 (fr) 2007-10-24 2008-10-22 Procede de gestion des preemptions dans un systeme d'exploitation en temps reel
EP08869900A EP2203817A2 (fr) 2007-10-24 2008-10-22 Procede de gestion des preemptions dans un systeme d'exploitation en temps reel

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR0707478A FR2923039A1 (fr) 2007-10-24 2007-10-24 Procede de gestion des preemptions dans un systeme d'exploitation en temps reel

Publications (1)

Publication Number Publication Date
FR2923039A1 true FR2923039A1 (fr) 2009-05-01

Family

ID=39522409

Family Applications (1)

Application Number Title Priority Date Filing Date
FR0707478A Withdrawn FR2923039A1 (fr) 2007-10-24 2007-10-24 Procede de gestion des preemptions dans un systeme d'exploitation en temps reel

Country Status (4)

Country Link
EP (1) EP2203817A2 (fr)
JP (1) JP2011501309A (fr)
FR (1) FR2923039A1 (fr)
WO (1) WO2009087317A2 (fr)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2545507A (en) * 2015-12-18 2017-06-21 Imagination Tech Ltd Controlling scheduling of a GPU
CN109684060A (zh) * 2018-12-21 2019-04-26 中国航空工业集团公司西安航空计算技术研究所 一种多类型时间关键任务的混合调度方法
WO2023180265A1 (fr) * 2022-03-24 2023-09-28 Vitesco Technologies GmbH Procédé de gestion d'exécution d'une pluralité de fonctions

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103870327A (zh) * 2012-12-18 2014-06-18 华为技术有限公司 一种实时多任务调度方法和装置
GB2545508B (en) 2015-12-18 2019-04-10 Imagination Tech Ltd Controlling operation of a GPU
US10366013B2 (en) * 2016-01-15 2019-07-30 Futurewei Technologies, Inc. Caching structure for nested preemption
KR20200101682A (ko) * 2019-02-20 2020-08-28 삼성전자주식회사 전자 장치 및 그 제어 방법
CN110221907B (zh) * 2019-05-24 2023-06-27 昆明理工大学 一种基于edf算法和模糊集的实时任务调度方法
CN110784418B (zh) * 2019-10-24 2022-06-24 烽火通信科技股份有限公司 一种基于时延约束的数据发送方法及系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
BARUAH S: "The Limited-Preemption Uniprocessor Scheduling of Sporadic Task Systems", REAL-TIME SYSTEMS, 2005. (ECRTS 2005). PROCEEDINGS. 17TH EUROMICRO CONFERENCE ON PALMA DE MALLORCA, BALEARIC ISLANDS, SPAIN 06-08 JULY 2005, PISCATAWAY, NJ, USA,IEEE, 6 July 2005 (2005-07-06), pages 137 - 144, XP010835774, ISBN: 978-0-7695-2400-9 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2545507A (en) * 2015-12-18 2017-06-21 Imagination Tech Ltd Controlling scheduling of a GPU
GB2545507B (en) * 2015-12-18 2019-07-17 Imagination Tech Ltd Controlling scheduling of a GPU
US11847492B2 (en) 2015-12-18 2023-12-19 Imagination Technologies Limited Controlling scheduling of a GPU
CN109684060A (zh) * 2018-12-21 2019-04-26 中国航空工业集团公司西安航空计算技术研究所 一种多类型时间关键任务的混合调度方法
WO2023180265A1 (fr) * 2022-03-24 2023-09-28 Vitesco Technologies GmbH Procédé de gestion d'exécution d'une pluralité de fonctions
FR3133934A1 (fr) * 2022-03-24 2023-09-29 Vitesco Technologies Procédé de gestion d’exécution d’une pluralité de fonctions

Also Published As

Publication number Publication date
WO2009087317A2 (fr) 2009-07-16
JP2011501309A (ja) 2011-01-06
WO2009087317A3 (fr) 2009-09-03
EP2203817A2 (fr) 2010-07-07

Similar Documents

Publication Publication Date Title
FR2923039A1 (fr) Procede de gestion des preemptions dans un systeme d&#39;exploitation en temps reel
KR102585591B1 (ko) 이기종 프로세서 기반 엣지 시스템에서 slo 달성을 위한 인공지능 추론 스케쥴러
CN107291548B (zh) 任务的资源调度方法及装置
US8397235B2 (en) User tolerance based scheduling method for aperiodic real-time tasks
US20150295970A1 (en) Method and device for augmenting and releasing capacity of computing resources in real-time stream computing system
US8250579B2 (en) Method for stage-based cost analysis for task scheduling
EP2987081B1 (fr) Procédé d&#39;allocation temporelle de tâches permettant une récupération d&#39;erreur deterministe en temps réel
WO2002039256A2 (fr) Procede et systeme de determination du temps de reponse dans le meilleur des cas pour une tache periodique
US20120102088A1 (en) Prioritized client-server backup scheduling
KR101366802B1 (ko) 실시간 운영체제를 위한 스케쥴링 방법 및 장치
EP2266011B1 (fr) Procede de gestion de la consommation d&#39;energie pour les systemes multiprocesseurs
FR2927438A1 (fr) Methode de prechargement dans une hierarchie de memoires des configurations d&#39;un systeme heterogene reconfigurable de traitement de l&#39;information
Kim et al. Improving Hadoop performance in intercloud environments
CN105389204A (zh) 一种多资源偏序调度策略
WO2014072628A1 (fr) Procédé, dispositif et programme d&#39;ordinateur de placement de tâches dans un système multi-coeurs
EP2850520B1 (fr) Procede de gestion d&#39;une execution de taches dans un systeme informatique
EP3519954A1 (fr) Procede de gestion des taches de calcul sur un processeur multi-coeurs fonctionnellement asymetrique
US7293004B1 (en) Method for tuning state-based scheduling policies
FR2980611A1 (fr) Circuit pour planifier le deroulement d&#39;un traitement de donnees
Liu et al. On-line scheduling of real-time services with profit and penalty
Springer et al. Resource synchronization in hierarchically scheduled real-time systems using preemptive critical sections
FR3087982A1 (fr) Procede et circuit de multiplexage temporel d&#39;acces concurrents a une ressource informatique
US7444316B1 (en) Method for scheduling jobs using distributed utility-based preemption policies
Zhao et al. Worst case response time analysis of sporadic graph tasks with fixed priority scheduling on a uniprocessor
CN115981829B (zh) 一种物联网中的调度方法及系统

Legal Events

Date Code Title Description
ST Notification of lapse

Effective date: 20120629