1.3.2 Architectures pour systèmes embarqués . . . . . . . . . . . . . . . . . . . 34
1.3.3 Contraintes d’embarquabilité . . . . . . . . . . . . . . . . . . . . . . . . . 35
1.3.3.1 Gestion de la mémoire . . . . . . . . . . . . . . . . . . . . . . . 36
1.3.3.2 Consommation d’énergie . . . . . . . . . . . . . . . . . . . . . 37
1.3.4 Autres contraintes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
1.4 Algorithmes d’ordonnancement et conditions d’ordonnançabilité . . . . . . . . . . 37
1.4.1 Monoprocesseur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
1.4.2 Multiprocesseur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
1.5 Complexités . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
1.5.1 Calcul de la complexité d’un algorithme . . . . . . . . . . . . . . . . . . . 43
1.5.2 Théorie de la complexité . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
1.5.3 Classes de complexité de quelques problèmes d’ordonnancement multi-
processeur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
1.6 Ordonnancement multiprocesseur non-préemptif avec contraintes de précédence,
de périodicité stricte, et de latence . . . . . . . . . . . . . . . . . . . . . . . . . . 45
1.6.1 Contexte de l’étude . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
1.6.2 Algorithmes exacts ou optimaux . . . . . . . . . . . . . . . . . . . . . . . 46
1.6.3 Algorithmes approchés ou sous-optimaux . . . . . . . . . . . . . . . . . . 49
1.6.3.1 Métaheuristiques . . . . . . . . . . . . . . . . . . . . . . . . . . 51
1.6.3.2 Algorithmes gloutons . . . . . . . . . . . . . . . . . . . . . . . 54
1.6.3.3 Algorithmes d’approximation . . . . . . . . . . . . . . . . . . . 54
1.6.4 Approche probabiliste . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
1.7 Réduction de la consommation d’énergie et gestion de la mémoire . . . . . . . . . 55
1.7.1 Équilibrage de charge . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
1.7.2 Optimisation multicritère . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
2 Ordonnancement temps réel multiprocesseur avec contraintes de précédence et de
périodicité 59
2.1 Modèles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
2.1.1 Modèle d’algorithme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
2.1.1.1 Modèle flot de donnée classique . . . . . . . . . . . . . . . . . . 60
2.1.1.2 Modèle flot de données multipériode . . . . . . . . . . . . . . . 61
2.1.2 Modèle d’architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
2.1.3 Modèle temporel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
2.1.4 Périodicité stricte vs. périodicité classique . . . . . . . . . . . . . . . . . . 63
2.2 Heuristique d’ordonnancement . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
2.2.1 Assignation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
2.2.1.1 Étude d’ordonnançabilité . . . . . . . . . . . . . . . . . . . . . 66
2.2.1.2 Algorithme glouton d’assignation . . . . . . . . . . . . . . . . . 79
2.2.1.3 Algorithme d’assignation de type “Recherche Locale” . . . . . . 82
2.2.2 Déroulement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
2.2.2.1 Contrainte de périodicité et transfert de données . . . . . . . . . 83
2.2.2.2 Algorithme du déroulement . . . . . . . . . . . . . . . . . . . . 83
4