in ,

Ordonnancement multiprocesseurs en temps réel , quelles sont ses particularités.

Qui peut le plus, peut aussi le moins, l’ordonnancement qui existe depuis des décennies, à du s’adapter aussi à la technologie, et l’arrivée des multi-processeurs et du temps réel.

Ordonnanceur / Scheduler, ou Job Scheduler, pour mieux gérer ses alertes en temps réel
Ordonnanceur / Scheduler, ou Job Scheduler, pour mieux gérer ses alertes en temps réel

Ordonnancement multiprocesseurs en temps réel, quelles sont ses particularités, l’ordonnancement des tâches existe depuis des décennies. Il peut être défini comme le séquençage ordonné et fiable de l’exécution d’un programme batch (automatisation d’une suite de commandes exécutées en série sur un ordinateur sans qu’une intervention humaine ne soit nécessaire). En termes simples, l’ordonnancement en temps réel est un procédé informatique engageant un outil appelé ordonnanceur et permettant d’automatiser des processus informatiques.

Les systèmes en temps réel sont omniprésents. Systèmes de contrôle de procédés, systèmes de traitement des données boursières, systèmes de pilotage embarqués (pour les avions et les satellites) …l’ordonnancement et les multiprocesseurs sont devenus, monnaie courante.

C’est sur ce genre de systèmes que repose aujourd’hui les activités de presque toutes les entreprises quel que soit leur secteur d’activité (agroalimentaire, banque/assurance, BTP et matériaux de construction, chimie et parachimie, édition/communication/multimédia, électronique et électricité et bien d’autres encore).

Dans cet article, on vous explique comment gérer ces systèmes en temps réel de manière plus efficace grâce à l’ordonnancement en temps réel multiprocesseurs.

Une application et un système temps réel, c’est quoi ?

Une application ou système temps réel est avant tout un système en charge de la réalisation de plusieurs tâches et programmes à exécuter sur une architecture matérielle constituée d’un nombre limité de processeurs. Le terme « temps réel » sous-entend que le calcul des tâches, ou leur réalisation pour être plus clair, doit respecter des contraintes de temps.

MEMOGuard
MEMOGuard

Scheduler, ou ordonnanceur informatique en français, est un composant logiciel du système dont la mission est de décider à quel moment et sur quels processeurs les tâches doivent s’exécuter. Ainsi, un ordonnanceur en temps réel prend ses décisions en fonction de l’urgence des tâches.

En informatique, quelle est la signification de tâche ?

En informatique, une tâche peut être périodique (qui s’exécute automatiquement et selon un planning fixe), apériodique (qui s’amorce à intervalles irréguliers) ou sporadique (qui se produit d’une manière irrégulière, qui apparaît çà et là, isolément et/ou de temps en temps). Une activation de tâche donne lieu à la libération d’un travail (une instance de la tâche) qui doit se terminer avant une date limite donnée.

Autre chose importante à savoir au sujet des tâches, elles ne partagent pas de mémoire et ne communiquent pas entre elles mais ont des relations de préséance entre les tâches peuvent être spécifiées pour que l’activation d’une tâche apériodique suive la fin d’une autre tâche.

Et les tâches dites en temps réel, elles font référence à quoi ?

Quant aux tâches en temps réel, elles désignent surtout des tâches qui sont générées en réponse à certains événements qui peuvent être externes ou internes au système. Une tâche peut par exemple être générée en raison d’un événement interne tel qu’une interruption d’horloge se produisant toutes les quelques millisecondes pour interroger périodiquement la température d’une usine chimique.

Une autre tâche peut être générée en raison d’un événement externe tel que l’utilisateur appuyant sur un interrupteur. Lorsqu’une tâche est générée, on dit qu’elle est arrivée ou qu’elle a été libérée. Chaque système en temps réel se compose généralement d’un certain nombre de tâches en temps réel. Les limites de temps sur différentes tâches peuvent être différentes.

La problématique de l’ordonnancement en temps réel des tâches

L’ordonnancement des tâches en temps réel, comme il a déjà été évoqué au tout début, est le processus d’allocation des ressources système à de nombreuses tâches différentes par un système d’exploitation (OS) ou un outil appelé ordonnanceur, Job scheduler en anglais.

API SMS en masse

Le Job scheduler gère les files d’attente de travaux prioritaires en attente de temps CPU. Il doit aussi déterminer quel travail doit être extrait de quelle file d’attente et le temps à allouer pour le travail.

Ce type de planification garantit que tous les travaux sont exécutés équitablement et à temps.

En parallèle à tout cela, l’ordonnanceur doit aussi gérer efficacement les ressources disponibles, à savoir les ressources CPU, les ressources de communication et les accès aux données, qui peuvent parfois être de plus en plus importantes et volumineuses.

L’ordonnancement en temps réel multiprocesseurs, plus performant et plus complexe.

Il existe différentes classes d’ordonnancement en temps réel:

  • L’ordonnancement en temps réel monoprocesseurs ;

  • L’ordonnancement en temps réel multiprocesseurs ;

  • Et enfin, l’ordonnancement en temps réel distribué.

Dans l’ordonnancement à multiprocesseurs, plusieurs processeurs sont disponibles et le partage de charge devient donc possible. Il en résulte un système plus performant pour le traitement des tâches lourdes en temps réel.

Toutefois, contrairement à l’ordonnancement réel monoprocesseur, l’ordonnancement à multiprocesseurs est aussi beaucoup plus complexe. Cette différence s’observe sur la façon dont va opérer les algorithmes. En effet, contrairement aux algorithmes monoprocesseur, dans les algorithmes d’ordonnancement multiprocesseur, vu qu’il y a plusieurs professeurs, une décision doit d’abord être prise concernant la tâche qui doit être exécutée sur quel processeur et c’est seulement après que ces tâches sont planifiées.

Cette complexité, tous les job scheduler ou ordonnanceur ne sont malheureusement pas capables de les gérer. Voilà pourquoi, il est important de bien choisir son ordonnanceur à partir du moment où le système qu’on souhaite ordonnancer est un système en temps réel multiprocesseur. Elle exige aussi de l’utilisateur (celui qui utilise l’ordonnanceur) des configurations plus complexes de l’ordonnanceur et une connaissance parfaite des fonctionnalités de l’ordonnanceur, du nombre des processeurs et leur performance ainsi que la nature des tâches en temps réel à ordonnancer.

Sur les systèmes multiprocesseurs multicœurs, les problèmes d’ordonnancement peuvent encore être plus complexes que sur de simples systèmes multiprocesseurs. Sur ce type de systèmes, lorsque le processeur accède à la mémoire, il passe un temps considérable à attendre que les données soient disponibles.

Approches d’ordonnancement les plus connues (en temps réel) multiprocesseurs

Pour ordonnancer les tâches sur un système en temps réel multiprocesseur, les job scheduler n’utilisent pas toujours les mêmes approches. Il en existe en effet plusieurs et voici les plus fréquentes :

La première approche la plus connue s’appelle multitraitement asymétrique. Lorsque toutes les décisions de planification et le traitement des E/S sont gérés par un seul processeur appelé serveur maître et que les autres processeurs n’exécutent que le code utilisateur. Cette approche présente l’avantage d’être simple et réduit le besoin de partage de données. L’ensemble de ce scénario est appelé multitraitement asymétrique.

Une deuxième approche utilise ce que l’on appelle multitraitement symétrique où chaque processeur est autoprogrammé et pratiquement chacun d’eux prend des décisions, planifie et traite des tâches.

Auteur Antonio Rodriguez, Directeur Clever Technologies

Written by Antoine

Informaticien depuis des lustres, ancien directeur de Banque (Informatique, Comptabilité, Communication, Refonte Informatique), Antoine est un passionné par les nouvelles technologies, et les innovations liées à l'informatique. Une de ses passions est d'écrire des articles, sur les sujets les plus variés et les plus divers, mais en relation avec le monde du SMS ou de la communication, de la supervision, et de la gestion des astreintes.

Améliorer votre sécurité informatique en 2022 : 12 recommandations

Améliorer votre sécurité informatique en 2022 : 12 recommandations

Relancer les paiements par SMS

Relancer les paiements par SMS, Syndics, Agences de location, Bailleurs, Opérateurs HLM, tous loyers impayés.