A. Types d'algorithmes d'ordonnancement
Nous distinguons plusieurs types d'algorithmes d'ordonnancement
dont on peut
citer :
1. Algorithmes hors ligne et en ligne ;
2. Algorithmes préemptifs et non préemptifs ;
3. Algorithmes centralisés ou répartis.
1. Algorithme d'ordonnancement hors ligne :
ce type d'algorithme d'ordonnancement correspond à la construction d'une
séquence d'exécution complète basée sur des
paramètres temporels des tâches en utilisant une
modélisation (réseaux de Pétri) ou une simulation
(animation ou énumération du modèle). L'ordonnanceur est
simple puisque la séquence d'exécution est
prédéfinie, il est réduit à un séquenceur et
comme conséquence l'application est peu flexible.
2. Algorithme d'ordonnancement en ligne :
cet algorithme permet à l'ordonnanceur de faire un choix dynamique de la
prochaine tâche et cela en fonction des paramètres
d'exécution de la tâche. Lorsque le système a des
contraintes temporelles, il est préférable de mettre en place un
système des tests qu'on appelle tests d'ordonnançabilité.
Ce système permettra de vérifier qu'en toutes circonstances les
contraintes temporelles seront respectées.
3. Algorithme d'ordonnancement préemptif
: cet algorithme permet à l'ordonnanceur d'interrompre une
tâche à n'importe quel instant et d'affecter le processeur
à une autre tâche. Dans ce cas, le temps de réponse
à un événement extérieur peut être
très court ; mais nous aurons un problème lors de la
programmation car elle sera très complexe.
4. Algorithme d'ordonnancement non préemptif
: cet algorithme permet à l'ordonnanceur de n'interrompre une
tâche qu'à la demande de celle-ci. Dans ce cas, le temps de
réponse peut être assez long.
5. Algorithme centralise : l'ordonnancement
est centralisé s'il s'exécute sur une architecture
centralisé ou sur un site privilégié de l'architecture
distribuée qui contient l'ensemble des paramètres des
tâches.
L'ordonnancement est reparti lorsque les décisions
d'ordonnancement sont prises sur chaque site par un ordonnancement local,
après une éventuelle coopération pour effectuer un
ordonnancement global.
Dans ce dernier cas, peuvent aussi intervenir les placements
des taches sur un site et leur migration d'un site à un autre.
B. Politique d'ordonnancement classique
D'une manière classique l'ordonnancement peut se faire
selon une certaine stratégie comme la stratégie d'ordonnancement
sans recyclage des travaux et l'ordonnancement avec recyclage des travaux.
15
L'ordonnancement sans recyclage des travaux renferme en son
sein des techniques d'ordonnancement telle que : file d'attente simple (FIFO),
file d'attente ordonnée suivant le temps estimé
d'exécution.
L'ordonnancement avec recyclage des travaux lui, renferme les
techniques d'ordonnancement suivantes : l'ordonnancement circulaire
(tourniquet, round-robin), l'ordonnancement par priorité avec une seule
tâche par niveau de priorité et l'ordonnancement par
priorité avec files multiples.
Nous pouvons distinguer deux modèles d'exécution
dans un système temps réel embarqué qui sont le
modèle d'exécution synchrone et le modèle
d'exécution asynchrone.
Le modèle d'exécution synchrone. Ce type
d'exécution permet une synchronisation directe entre le système
informatique et le procédé. Mais du point de vue interne ce
modèle traite l'occurrence des événements du
système d'une manière différée par rapport à
son temps d'exécution ceci pour permettre aux tâches en cours
d'exécution par l'environnement extérieur du (système
informatique) d'arriver au bout.
Dans le modèle d'exécution asynchrone,
l'occurrence de tout événement est directement prise en compte
par le système pour tenir compte de son urgence ou de son importance.
Donc, d'une manière interne, le système informatique n'est pas
directement synchronisé avec le procédé. En quelque sorte,
ce modèle d'exécution utilise l'algorithme d'ordonnancement en
ligne ayant des tâches préemptives.
Ainsi l'architecture logicielle d'une application temps
réel est composée de plusieurs tâches
réalisées par le concepteur d'un environnement spécifique
et d'un noyau temps réel. Le point central de cet environnement est
l'ordonnanceur car il permet d'affecter au processeur, à chaque instant,
une tâche afin de respecter l'ensemble des contraintes temporelles
attachées à la gestion du procédé.
|