• Aucun résultat trouvé

5.6 Coût du regroupement

Dans ce chapitre, nous avons montré que lorsque l’échéance la plus grande est choisie et que la contrainte (5.3a) est vérifiée, il est possible de regrouper les tâches sans diminuer aucune échéance, tout en garantissant le respect de toutes les échéances initiales des tâches qui com- posent le regroupement. Il est également prouvé que dans ce cas, il n’est pas nécessaire de réaliser une nouvelle analyse d’ordonnançabilité. Lorsqu’il n’est pas possible d’opérer de regroupement à coût nul, c’est sur l’échéance minimale (cas (5.3b)) que les tâches sont regroupées. Nous assu- rons certes que toutes les échéances initiales sont respectées mais en pratique, nous diminuons l’échéance de la tâche ayant l’échéance initiale la plus grande. En diminuant des échéances, nous réduisons les marges qui existent entre les dates de fin d’exécution des tâches et leurs échéances. D’une part, nous augmentons la « pression » sur la tâche elle-même et nous rendons le système plus dur à ordonnancer. D’autre part, nous réduisons nos chances de réaliser de futurs regroupe- ments puisque la tâche en question aura moins de marge pour s’exécuter conjointement avec une autre tâche candidate au regroupement. Il apparaît donc que nous devons utiliser les regroupe- ments à coût nul autant que faire se peut au détriment des regroupements sur les échéances les plus courtes. De surcroît, le regroupement à coût nul évite l’application coûteuse d’un nouveau test d’ordonnançabilité. Dans la suite, le regroupement de tâches sera guidé par l’objectif de maximisation des marges à chaque étape.

Chapitre

6

Minimisation du nombre de tâches

Après avoir défini comment nous regroupons des tâches, nous entrons dans le vif du sujet : trouver l’ensemble de tâches minimal en utilisant le regroupement de tâches. Dans ce chapitre, nous étudions la complexité du problème, une heuristique qui permet d’y apporter une solution et des résultats relatifs à la viabilité de la non-ordonnançabilité qui servent cette heuristique. Enfin, nous présentons une technique de résolution alternative à notre heuristique basée sur une formulation du problème en optimisation linéaire en nombres entiers. Le regroupement de tâches est un problème d’optimisation combinatoire et ce type de problème est classiquement traité par cette technique.

6.1 Complexité du problème de regroupement de tâches

6.1.1 Espace des solutions

Le problème consiste à trouver une partition de tâches ordonnançable avec un nombre mini- mal de sous-ensembles. Une partition d’un ensemble X est un ensemble de sous-ensembles non vides de X construit de manière à ce que chaque élément n de X est exactement dans un de ces sous-ensembles. Le nombre de partitions possible d’un ensemble correspond au nombre de Bell [88]. Le nombre de Bell est exponentiel sur la cardinalité de X et peut être calculé par la relation de récurrence suivante :

Bn+1= nk=0 ( n k ) Bk avec B0 = 1 (6.1)

Comme nous ne regroupons que des tâches de même période, l’espace des solutions peut être restreint à ∏m

i=0

Bni où Bnest le nombre de Bell d’un ensemble de n tâches avec périodes égales et

m le nombre d’ensembles. Néanmoins, ce nombre reste exponentiel. Pour donner une intuition

de la taille de l’espace de recherche, notons que B500≃ 10844.

6.1.2 Le regroupement de tâches est un problème difficile

La taille de l’espace de recherche laisse présager une complexité du problème élevée. Cepen- dant, exprimer une combinatoire élevée n’est pas suffisant pour juger de la dureté du problème dans les termes de la théorie de la complexité. En ce sens, nous soutenons dans cette section que le regroupement de tâches synchrones indépendantes est un problème difficile (le terme diffère ici de NP-difficile) du point de vue de la théorie de la complexité [51] et qu’il justifie l’utilisation de méthodes approchées.

6. Minimisation du nombre de tâches

Définissons premièrement le problème de regroupement de tâches plus formellement. Soit

S = ({τi(Ci, Di, Ti)}1≤i≤n) un ensemble de tâches synchrones. Soit C(S) qui dénote l’ensemble

des ensembles de tâches ordonnançables obtenus par des regroupements de tâches tels que définis dans le chapitre 5 et appliqués récursivement sur S. Le problème que nous adressons est le suivant :

Soit S, trouver l’élément de C(S) de cardinalité minimale.

En préambule, nous rappelons un théorème sur la faisabilité d’un ensemble de tâches issu des travaux de Leung et Merril [70] puis de Baruah et al. [14] et Ekberg and Yi [44].

Théorème 4

Le problème de faisabilité d’un ensemble de tâches périodiques et indépendantes sur un processeur est co-NP-complet au sens fort.

Nous distinguons deux cas. Le premier correspond à la situation où le caractère ordonnan- çable de l’ensemble de départ S n’est pas connu. Le second fait l’hypothèse que l’ensemble de départ est ordonnançable.

Cas 1 : le caractère ordonnançable de S n’est pas connu

Ici, aucune hypothèse n’est faite quant à l’ordonnançabilité de S. Considérons alors notre problème formulé dans sa version décisionnelle de la manière suivante :

Soit un ensemble S de n tâches, existe-t-il un ensemble S de k tâches formé par des regroupements de tâches à partir de l’ensembleS faisable sur un processeur avec k ≤ n ?

Nous relevons trivialement que le problème de faisabilité d’un ensemble sur un processeur est un cas particulier du (et donc se réduit au) problème de regroupement de tâches lorsque k = n. Néanmoins, cette piste n’est pas pleinement satisfaisante puisqu’elle masque la complexité du problème de partitionnement, inhérente au problème de regroupement de tâches.

Cas 2 : S est ordonnançable

Dans ce second cas, nous partons du principe que l’ensemble de tâches initialS est ordonnan- çable. Il faut désormais montrer qu’il n’est pas possible de trouver l’élément minimal appartenant

à C(S) obtenu par regroupement à partir de S sans avoir à aucun moment besoin de juger l’or-

donnançabilité d’un ensemble. Le regroupement à coût nul défini en section 5.5 permet sous certaines conditions de réaliser un regroupement sans avoir à décider de l’ordonnançabilité de l’ensemble après coup. Il est en fait trivial de construire un ensemble de tâches appartenant

C(S), minimal, tel que la condition de regroupement à coût nul ne soit pas applicable.

En conséquence, dans le cas général, résoudre le problème de regroupement de tâches néces- site d’être en mesure de décider de l’ordonnançabilité d’un ensemble de tâches, problème connu comme étant co-NP-complet au sens fort. Cette indication ne permet pas de définir précisément la complexité du problème, cependant elle indique que le problème est au moins aussi difficile qu’un problème co-NP-complet et justifie pleinement l’utilisation de méthodes approchées dans la suite du travail.