Ordonnancement dans les systèmes répartis et en temps réel, comment cela fonctionne ; l’ordonnancement est un processus de prise de décision qui est aujourd’hui utilisé dans presque toutes les industries. Il traite de l’allocation des ressources rattachées aux processeurs à des tâches sur des périodes données et a pour objectif d’optimiser un ou plusieurs objectifs en réalisant des tâches dans des délais spécifiés.
L’architecture repartie ou distribuée permet d’augmenter les ressources disponibles sur un réseau. Seulement, elle présente aussi l’inconvénient d’être complexe à gérer. Alors, pour tirer parti de ce type de système, des algorithmes d’ordonnancement des tâches ont été développés.
Comment fonctionne l’ordonnancement dans les systèmes temps réel repartis ? Ces algorithmes d’ordonnancement procèdent de quelle manière pour allouer les ressources disponibles (les moyens de stockage de données et fichiers, la charge CPU, les utilisateurs, les applications…) et ordonnancer l’exécution des tâches ? La réponse tout de suite, dans le présent article !
Sommaires
Système en temps réel – définition
En informatique, un système en temps réel est un système dans lequel l’exactitude des calculs dépend de l’exactitude logique du calcul, mais également du moment auquel le résultat est produit.
Si une seule de ces deux contraintes n’est pas respectée, le risque de provoquer une défaillance du système est certain.
Le temps réel est donc une propriété des systèmes où le temps est littéralement « de l’essence ».
Dans ce type de système, la valeur d’un calcul dépend de la rapidité de la réponse, mais surtout du moment exact où elle est délivrée. En d’autres termes, les tâches doivent exactement être exécutées au bon moment, ni en avance ni en retard, sinon le système subit une défaillance.
Système réparti ou distribué – c’est quoi ?
Un système reparti ou distribué, quant à lui, dans sa définition la plus simple désigne un groupe d’ordinateurs ou machines travaillant ensemble pour apparaître comme un seul ordinateur pour l’utilisateur final. Ces machines ont un état partagé, fonctionnent simultanément et peuvent échouer indépendamment sans affecter la disponibilité de l’ensemble du système.
Dans un environnement partagé, les ressources sont réparties sur plusieurs ordinateurs (ou autres appareils informatiques) sur un réseau. Ces appareils divisent le travail, coordonnant leurs efforts pour terminer, plus efficacement que si un seul appareil avait été responsable de la tâche. Les systèmes repartis constituent un développement important pour l’informatique, car certaines tâches sont si massives et complexes qu’il serait impossible pour un seul ordinateur de les gérer seul.
Cette architecture permet le partage de ressources (les moyens de stockage de données et fichiers, la charge CPU, les utilisateurs, les applications…) pour plus de capacités de traitement et de stockage. Elle propose aussi une meilleure disponibilité et fiabilité, car quand une machine tombe par exemple en panne, les autres machines n’auront qu’à prendre le relais.
Notez cependant que pour les responsables informatiques, les systèmes sont généralement repartis par nécessité tellement leur gestion au quotidien représente un vrai casse-tête. Ce type de systèmes présente l’inconvénient d’être difficile à déployer, à maintenir et à déboguer. Pour gérer efficacement un système temps réel réparti, l’utilisation d’un ordonnanceur adapté est nécessaire.
Qu’est-ce que l’ordonnancement réparti, dans des systèmes temps réel ?
L’ordonnancement des tâches est le processus consistant à déterminer l’ordre dans lequel les tâches seront exécutées sur un système. Dans un système temps réel réparti, l’objectif principal des
algorithmes d’ordonnancement des tâches est d’utiliser les performances maximales du système dans le but d’exécuter les tâches dans les délais spécifiés.
L’ordonnancement peut aussi être définit comme l’attribution de chaque tâche au processeur le plus approprié tandis que les algorithmes d’ordonnancement des tâches déterminent dans quel ordre
chaque tâche doit être exécutée sur tous les processeurs présents sur le réseau, créant ce que l’on appelle un calendrier. Mais il arrive que dans certains cas, l’ordonnanceur s’occupe à la fois d’allouer les tâches aux processeurs et de déterminer l’ordre d’exécution.
Dans un modèle dynamique, et c’est le cas d’un système temps réel répartis, l’ordonnancement ne concerne pas seulement la gestion des ressources et l’ordonnancement des tâches (le fait de déterminer l’ordre dans lequel les tâches seront exécutées), il prend aussi en compte le respect du temps et des délais d’exécution des tâches.
Comment fonctionne l’ordonnancement dans un système temps réel reparti
Dans sa globalité, l’ordonnancement d’un système distribué fonctionne comme l’ordonnancement de processus sur n’importe quel système d’exploitation mono processeur ou multiprocesseur. Cela dans le sens où il peut y avoir un ordonnanceur global qui dirige toutes les tâches vers tous les travailleurs connectés.
Il peut également y avoir des planificateurs locaux qui gèrent les tâches/réponses entrantes et sortantes sur les nœuds principaux. L’organisation de cette échelle dynamique d’événements est une composante majeure de l’efficacité des systèmes repartis. Dans un système distribué centralisé, il est plus courant de voir un ordonnanceur global gérer l’allocation des ressources et des tâches entre le primaire et les travailleurs.
Cependant, dans un système distribué décentralisé, il peut exister plusieurs ordonnanceurs qui sont responsables d’une partie du système global. La gestion de cet état décentralisé peut être répartie sur des ressources. Chaque ordonnanceur dans un système décentralisé peut être considéré comme l’ordonnanceur d’un système centralisé.
Conclusion – Ordonnancement de système reparti ou distribué et gestion de conflits
Pour le puriste, nous nous devons de signaler les différentes méthodes ou algorithmes qui peuvent être utilisés, volontairement nous n’entrerons pas dans le détail de chacun, et cela fera l’objet d’un autre article à publier sur ce site, nous les citons pour mémoire :
- Précédence causale
- Ordonnancement par estampille
- Ordonnancement par horloges vectorielles
Un système réparti est organisé comme un ensemble de processus qui s’exécutent sur des sites reliés par un réseau de communication et qui communique par envoi de messages, et l’horloge unique permet de donner une date exacte à chacun des événements.
Un système distribué, comme évoqué plus haut, désigne un groupe d’ordinateurs travaillant
ensemble. Avec ce type de configuration, il y a toujours des conflits que l’ordonnanceur (le système en charge de l’ordonnancement) doit gérer en permanence.
Auteur Antonio Rodriguez, Directeur Clever Technologies
Autres articles