Ordonnancement temps réel multiprocesseur de tâches non-préemptives avec contraintes de précédence, de périodicité stricte et de latence

par Omar Kermia

Thèse de doctorat en Informatique

Sous la direction de Yves Sorel.


  • Résumé

    La réalisation de systèmes temps réel embarqués complexes que l'on trouve dans les domaines de l'avionique, de l'automobile, de la robotique, etc. Conduisent à résoudre des problèmes d'ordonnancement temps réel non préemptif pour des architectures multiprocesseurs en respectant des contraintes multiples de précédence, de périodicité stricte et de latence. Dans la littérature les problèmes de ce type sont résolus avec des méthodes approchées (heuristiques) donnant des résultats dans un temps raisonnable comparées à des méthodes exactes. Par ailleurs le problème tel que nous le posons a été peu étudié. Ce dernier étant complexe nous avons choisi d'étudier séparément la périodicité d'une part et la latence d'autre part, avec aussi dans les deux cas des contraintes de précédence. L'ensemble des résultats obtenus est utilisé pour traiter l'ordonnancement avec les trois contraintes. Afin de résoudre le problème d'ordonnancement avec précédence et périodicité stricte nous avons proposé une heuristique composée de trois étapes. La première étape appelée "assignation" est la plus importante car elle permet de décider si un système est ordonnançable ou pas sans être obligé d'attendre l'exécution des deux autres étapes de l'heuristique. Comme nous avons choisi d'utiliser la méthode du partitionnement - partitionner le problème multiprocesseur en plusieurs problèmes monoprocesseur - plutôt que la méthode globale pour faire l'ordonnancement multiprocesseur, nous avons pu donner une condition pour qu'une tâche, éventuellement plusieurs, soient ordonnançables sur un processeur auquel d'autres tâches ont déjà été assignées. Nous avons proposé deux versions d'algorithme d'assignation, une version gloutonne très rapide et une version. Recherche locale. Fondée sur le retour arrière (backtracking) qui revient à tester localement plusieurs assignations pour trouver celle qui satisfait les contraintes de périodicité stricte. Nous avons montré que la version "recherche locale", bien que moins rapide que la version gloutonne, donne des résultats très proches de ceux d'un algorithme exact de type "Branch & Cut". La seconde étape appelée "déroulement". Consiste simplement à répéter chaque tâche et les arcs de précédence qui la concernent suivant le rapport entre l'hyper-période (PPCM des périodes de toutes les tâches) et sa période. La troisième étape consiste à ordonnancer les tâches sur les processeurs auxquels elles ont été assignées tout en minimisant le temps d'exécution de toutes les tâches (makespan), en prenant en compte le coût des communications interprocesseurs dues au fait que deux tâches liées par une précédence ont été assignées à deux processeurs différents. Par ailleurs comme nous considérons des systèmes embarqués pour lesquels les ressources sont limitées nous avons ajouté une quatrième étape, spécifique à l'embarqué, qui effectue de manière gloutonne de la répartition de charge et de mémoire. L'heuristique d'ordonnancement avec précédence et périodicité stricte a été programmée en OCAML dans le logiciel SynDEx diffusé par l'équipe projet AOSTE. Pour tester ces résultats théoriques ainsi que leur implantation dans le logiciel SynDEx on a effectué une expérimentation sur une application de suivi en train virtuel de CyCabs (véhicule électrique automatique conçu par l'équipe projet IMARA) avec contraintes de précédence et de périodicité. Afin de résoudre le problème d'ordonnancement multiprocesseur avec précédence et latence nous avons effectué une étude d'ordonnançabilité qui a montré que sa résolution est très liée aux chemins de tâches reliant la paire de tâches sur laquelle la contrainte de latence est imposée. Nous avons proposé une heuristique dans le cas d'une seule latence se composant d'une première étape appelée "clusterisation" et une deuxième étape appelée "union". La clusterisation consiste à regrouper les tâches faisant partie du même chemin dans le graphe et l'union cherche à adapter le nombre de ces clusters au nombre de processeurs en procédant à des unions entre clusters. Le cas de plusieurs latences demande de prendre en compte les différentes possibilités de chemins entre plusieurs paires de tâches soumises à différentes latences. Pour le cas le plus complexe correspondant à des chemins, entre paires de tâches soumises à différentes latences, croisés on a proposé une heuristique qui minimise la durée de l'ordonnancement entre chacune de ces paires de tâches. Les résultats obtenus précédemment ont été utilisés pour proposer une heuristique d'ordonnancement avec contraintes de précédence, de périodicité et de latence.

  • Titre traduit

    Multiprocessor scheduling of non-preemptive real time tasks with predecence, strict periodicity and latency constraints


  • Pas de résumé disponible.


  • Résumé

    Throughout this Ph. D thesis we have performed a schedulability study which led to a schedulability condition taking into account only two tasks at the same time. From this condition we proposed, first, a greedy heuristic for non-preemptive multiprocessor scheduling of systems with precedence and strict periodicity constraints. Secondly, in order to improve the first algorithm, we introduced a back-tracking procedure leading to a better schedulability ratio. In order to evaluate the performances of our heuristic we compared it to an optimal algorithm. We implemented a ``Branch and Cut'' algorithm which distributes and schedules systems with precedence and periodicity constraints. This algorithm effectively explores the search tree and uses the conditions obtained from the scheduling analysis to decide, at each step of the solution construction, if it proceeds or do back-tracking. The comparison between our heuristic and the optimal algorithm showed that our heuristic had a bad scheduling success ratio, and that the problem comes from the assignment algorithm. By looking closely to this latter it appeared that the increasing sort used to define the order the operations are assigned to the processors, reduces the scheduling possibilities. In order to make our heuristic more effective we replaced the increasing sort by a mixed sort which takes into account two criteria first the priority level and second the increasing order of the period. The priority order is given to every operation relatively to the number of operations the periods of which divide this operation period. Thus, we perform an increasing sort according to the priority level, and when several priority levels are equal we perform an increasing sort according to the period only. The tests performed on the new version of our heuristic are very satisfying: the scheduling success ratio is greater than 90% and it is very fast. We continued the schedulability study by proposing a more general schedulability condition which checks whether a task satisfies or not its periodicity and precedence constraints on a processor where some tasks have already been scheduled. Since the problem of deciding that such systems are schedulable or not is NP-hard in the strong sense, this condition constitutes an important outcome. It can be used in partitioned scheduling approaches for solving the multiprocessor scheduling problem. In this approach tasks are partitioned among the processors, which transforms the multiprocessor problem to several monoprocessor problems. We proposed a new heuristic using this condition. It has a much more effective schedulability ratio than the previous versions, and a satisfying execution time. Furthermore, these results have been exploited to develop in Ocaml a new major version of SynDEx (V7) which allows the designer to specify now multiperiod applications. After that, we introduce the latency constraints in the schedulability study. The considered latency constraint corresponds to a delay between whatever pair of tasks in the system. Most of the time it is imposed between an input event consumed by the system and an output event produced by the system. As the scheduling problem under latency constraints is also an NP-hard problem, we chose to first study schedulabilty under latency and precedence constraints first, and then to deal with schedulability under all constraints. As a result we proposed a schedulability condition and a heuristic for multiprocessor scheduling of tasks under precedence, strict periodicity and latency constraints. All previous scheduling heuristics aim at minimizing the makespan which is the total execution time of all the tasks, in addition to satisfy all the constraints. However, the makespan can be more minimized with a load balancing heuristic. Moreover, since memory is limited in embedded systems, we need a heuristic to perform an efficient memory usage. Thus, we proposed a heuristic for load balancing and efficient memory usage of homogeneous distributed real-time embedded systems. Basically, it is achieved by grouping the tasks into blocks, and moving them to the processor such that the block start time decreases, and this processor has enough memory capacity to execute the tasks of the block. We have shown that the proposed heuristic has a polynomial complexity which ensures a fast execution time. We performed also a theoretical performance study which bounds the total execution time decreasing, and shows that our heuristic is a ( )-approximation algorithm for the memory usage, with M the number of processors.

Consulter en bibliothèque

La version de soutenance existe sous forme papier

Informations

  • Détails : 1 vol. (208 p.)
  • Annexes : Bibliogr. p. 197-208

Où se trouve cette thèse ?

  • Bibliothèque : Université Paris-Sud (Orsay, Essonne). Service Commun de la Documentation. Section Sciences.
  • Disponible pour le PEB
  • Cote : 0g ORSAY(2009)291
Voir dans le Sudoc, catalogue collectif des bibliothèques de l'enseignement supérieur et de la recherche.