Ordonnancements multiprocesseurs (hors-lignes) optimaux

Transcription

Ordonnancements multiprocesseurs (hors-lignes) optimaux
Ordonnancements multiprocesseurs (hors-lignes) optimaux
Frédéric Boniol, Mikel Cordovilla, Eric Noulard, Claire Pagetti
ONERA - Toulouse, France
Mots-clés : ordonnancement temps réel, tâches périodiques, optimalité, multiprocesseur
1
Introduction
L’avènement des multicœurs dans le domaine des processeurs généralistes sera très prochainement
suivi par l’utilisation de ces technologies dans l’embarqué critique. La maîtrise et la programmabilité
de ces architectures nécessitent de proposer des outils d’ordonnancement ayant de bonnes propriétés :
analyse d’ordonnançabilité efficace, ordonnanceur embarqué simple, faibles coûts.
Plusieurs surveys [9, 7] résument les dernières avancées dans ce domaine. Un algorithme d’ordonnancement attribue au cours du temps les processeurs aux tâches actives. Carpenter et al. [3] ont
classifié les familles d’ordonnancement selon 3 critères : la migration (règles d’allocation physique
sur un processeur, par ex. aucune migration correspond aux stratégies dites partitionnées), la priorité
(affectation d’une priorité aux tâches) et la préemption (possibilité d’interrompre une tâche en cours
d’exécution pour un travail plus prioritaire).
2
Problématique
Dans la suite, nous considérons des ensembles de tâches périodiques S = {τi = (ri , Ti , Di ,Ci )}i=1,...,n
où r est la date de réveil, T la période de répétition de la tâche, D l’échéance relative et C le pire temps
d’exécution. Les politiques standards monoprocesseur comme rate monotonic ou earlest deadline
first sont applicables. Malheureusement aucune d’entre elles ne possède la propriété d’être optimale
dans le cas multiprocesseur. Un algorithme d’ordonnancement est optimal s’il peut ordonnancer tout
ensemble de tâches faisable, c’est-à-dire un ensemble qui peut être ordonnancé.
Deux politiques optimales Pfair [1] et LLREF [4] ont été proposées pour des ensembles de tâches
temps réel synchrones (r=0) et à échéance sur requêtes (D=T). Cependant, elles ne le restent pas pour
des échéances arbitraires (D≤T) et encore moins pour des ensembles asynchrones (r≥0). En effet, les
auteurs de [8] ont montré qu’un algorithme optimal devait être clairvoyant, c’est-à-dire qu’il devait
connaître les dates d’arrivée des tâches.
Pour certaines applications critiques, comme les commandes de vol d’un avion ou le logiciel de
navigation d’un satellite, les données applicatives sont connues ainsi que les dates de réveil. Il est
dès lors tout à fait naturel d’utiliser des ordonnancements clairvoyants (c’est le cas notamment des
séquenceurs). Plusieurs auteurs, en particulier [10] et [11] ont exhibé des algorithmes optimaux, et
de complexité polynomiale, pour des ensembles finis de travaux. Notre contexte est un peu différent
car nous considérons des tâches périodiques et donc des ensembles infinis de travaux. Comme eux,
nous allons chercher une solution hors ligne mais nous devons de plus trouver un préfixe et un motif
répétitif.
La taille du motif est ppcm(Ti ) (cela peut aisément se montrer). En revanche, la taille du préfixe
n’est pas connue a priori. On parle en général de fenêtre d’étude, qui contient un majorant du préfixe +
un motif. Cette fenêtre est connue dans le cas monoprocesseur [12, 5] : il s’agit de [0, ppcm(Ti )] pour
des tâches synchrones et [0, max(ri ) + 2ppcm(Ti )] pour des tâches asynchrones. Cucu et Goossens [6]
ont étendu le résultat aux multiprocesseurs pour des tâches synchrones et priorités fixes.
3
Approche proposée
Nous proposons un outil de recherche d’ordonnancement préemptif à migration complète de tâches
périodiques. Si l’ensemble de tâches est faisable, l’outil trouvera une solution. Pour ce faire, nous utilisons le model checker U PPAAL [2]. Les librairies d’U PPAAL contiennent des primitives efficaces
pour explorer des ensembles infinis et détecter des états déjà traversés. On code les données de l’ensemble de tâches par des listes et on décrit toutes les exécutions possibles à l’aide d’un automate
très simple à un état (en fait, un grande nombre d’états en tenant compte des variables entières)
et deux transitions (une transition pour un pas d’exécution, une transition pour les changements
de priorité). Les mises à jour se font par des fonctions C. Pour la recherche du cycle, nous utilisons une transition supplémentaire qui mémorise l’état de l’ordonnancement à instants réguliers
(max(ri ) + k × ppcm(Ti )) et un état Ordo atteignable si aucune contrainte temporelle n’a été violée
(unhappy==0), s’il s’est écoulé k × ppcm(Ti ) unités de temps depuis la sauvegarde et si l’état rencontré est identique à la sauvegarde (cycle==1). La recherche se ramène alors à un contre exemple
de l’accessibilité de l’état Ordo. On obtient ainsi un majorant de la taille du préfixe et une allocation
valide des tâches.
Nous faisons alors ensuite appel à un solveur de contraintes pour améliorer l’ordonnancement
trouvé en minimisant la taille du préfixe, le nombre de préemptions et de migrations. D’autres critères
peuvent également être pris en compte. La question du comportement en ligne et de la gestion des
temps creux est en cours d’étude. Nous évaluerons également les performances de l’outil.
Références
[1] Sanjoy K. Baruah. Fairness in periodic real-time scheduling. Real-Time Systems Symposium, IEEE International,
0 :200, 1995.
[2] Gerd Behrmann, Alexandre David, and Kim G. Larsen. A tutorial on UPPAAL. In Marco Bernardo and Flavio
Corradini, editors, Formal Methods for the Design of Real-Time Systems : 4th International School on Formal Methods
for the Design of Computer, Communication, and Software Systems, SFM-RT 2004, number 3185 in LNCS, pages
200–236. Springer–Verlag, September 2004.
[3] John Carpenter, Shelby Funk, Philip Holman, Anand Srinivasan, James Anderson, and Sanjoy Baruah. A categorization of real-time multiprocessor scheduling problems and algorithms. In Handbook on Scheduling Algorithms,
Methods, and Models. Chapman Hall/CRC, Boca, 2004.
[4] Hyeonjoong Cho, Binoy Ravindran, and E. Douglas Jensen. An optimal real-time scheduling algorithm for multiprocessors. Real-Time Systems Symposium, IEEE International, 0 :101–110, 2006.
[5] Annie Choquet-Geniet and Emmanuel Grolleau. Minimal schedulability interval for real time systems of periodic
tasks with offsets. Theoretical of Computer Sciences, 310 :117–134, 2004.
[6] Liliana Cucu and Joël Goossens. Feasibility intervals for multiprocessor fixed-priority scheduling of arbitrary deadline
periodic systems. In DATE ’07 : Proceedings of the conference on Design, automation and test in Europe, pages
1635–1640, San Jose, CA, USA, 2007. EDA Consortium.
[7] Robert I. Davis and Alan Burns. A survey of hard real-time scheduling algorithms and schedulability analysis techniques for multiprocessor systems. techreport YCS-2009-443, University of York, Department of Computer Science,
2009.
[8] Michael L. Dertouzos and Aloysius K. Mok. Multiprocessor online scheduling of hard-real-time tasks. IEEE Transaction Software Engineering, 15(12) :1497–1506, 1989.
[9] Joël Goossens. Systémes temps réel – Ordonnancement réseaux et qualité de service, volume 2. N. Navet, Hermés,
2006. Chapitre 2 : Ordonnancement temps réel multiprocesseur (24 pages). ISBN 2–7462–1304–4.
[10] W. A. Horn. Some simple scheduling algorithms. Naval Research Logistics Quaterly, 21 :177–185, 1974.
[11] David Karger. Scheduling algorithms. In In CRC Handbook of Computer Science. CRC Press, 1997.
[12] Joseph Y.-T. Leung and Jennifer Whitehead. On the complexity of fixed-priority scheduling of periodic, real-time
tasks. performance evaluation. Performance Evaluation, pages 237–250, 1982.