Projet : SOLIDOR

previous up next contents
Précédent : Architectures logicielles pour systèmes distribués Remonter : Résultats nouveaux Suivant : Systèmes d'information spontanés


Sous-sections


   
Environnement pour le développement et l'exécution d'applications distribuées à contraintes temps réel dur

 



Participants : Emmanuelle Anceaume, Michel Banâtre, Gilbert Cabillic, Pascal Chevochot, Antoine Colin, David Decotigny, Mathias Herberts, Isabelle Puaut.

Nos travaux sur la définition d'un environnement de développement et d'exécution visent à fournir une plate-forme exploitable pour une large gamme d'applications distribuées temps-réel à sûreté critique, à partir de composants logiciels et matériels standard. Les objectifs visés dans la conception de cet environnement sont multiples: (i) fournir des mécanismes de tolérance aux fautes compatibles avec des échéances temps-réel dur et transparentes pour le concepteur d'application ; (ii) fournir des mécanismes permettant de récupérer en-ligne les ressources inutilisées ; (iii) s'adapter à des demandes de qualité de service variées (en particulier par rapport au caractère critique des échéances temporelles et par rapport aux besoins en terme de tolérance aux fautes). Pour atteindre ces objectifs, la structure logicielle de l'environnement HADES (Highly Available Distributed Embedded System) [[7]] a été conçue comme suit:

Nous précisons ci-après les résultats obtenus dans chacun de ces domaines.

Outils exécutés hors-ligne

Deux catégories d'outils hors-ligne ont été isolées. La première relève de la tolérance aux fautes dans les applications temps-réel, alors que la deuxième relève de l'analyse de programmes afin de garantir avant exécution le respect de leurs échéances temporelles.

Tolérance aux fautes dans les applications temps-réel

La gestion des fautes dans les applications temps-réel est très souvent à la charge du concepteur d'application, ce qui présuppose de sa part une connaissance pointue des mécanismes de tolérance aux fautes. Notre objectif est de rendre transparente cette gestion de la tolérance aux fautes au concepteur d'applications. L'approche retenue [[30],[36]] consiste à intégrer les mécanismes de tolérance aux fautes dans un outil de réplication automatique exécuté hors-ligne. Cet outil prend en entrée une tâche non tolérante aux fautes et la transforme automatiquement en une tâche tolérante aux fautes, selon le modèle de fautes spécifié dans le cahier des charges. L'utilisateur de cet outil peut spécifier les portions de tâches à répliquer, la technique de réplication à utiliser (réplication active, passive, semi-active ou temporelle), le nombre de répliques à utiliser et leur localisation. Ceci permet d'appliquer des techniques de tolérance aux fautes adaptées aux besoins des applications (en termes de consommation en ressources et de temps de réponse).

Garantie hors-ligne des échéances d'applications temps-réel

Nous nous intéressons ici à l'analyse de programmes temps-réel dans l'objectif de garantir avant exécution le respect de leur échéances temporelles.

En l'état actuel de nos travaux, nous nous sommes principalement concentrés sur l'analyse des temps d'exécution au pire-cas de programmes temps-réel dur. Une des difficultés dans ce domaine est d'éviter l'obtention de temps pire-cas qui soient une estimation trop pessimiste des temps d'exécution effectifs des programmes, ce qui entraîne une surestimation des ressources matérielles nécessaires à l'exécution des programmes, et donc une sous-utilisation de ces ressources lors de l'exécution. La prise en compte de certains éléments de l'architecture comme la présence de caches ou de pipelines permet de réduire cette sous-utilisation des ressources. Nous avons montré qu'il est possible d'analyser hors-ligne le mécanisme de prédiction de branchement d'un processeur Pentium et ainsi de réduire le pessimisme dans la détermination du temps d'exécution au pire-cas de programmes s'exécutant sur ce type d'architecture. L'objectif est à terme d'utiliser ce type d'outil pour analyser le comportement temporel d'un système d'exploitation temps-réel.

Support d'exécution

La flexibilité du support d'exécution HADES a été obtenue grâce à la séparation des services en-ligne en deux catégories [[7]]: (i) les services offrant des propriétés partagées par un large éventail d'applications; (ii) les services dédiés à un domaine d'application propre, c'est-à-dire dépendants des caractéristiques exhibées par les applications distribuées temps-réel à sûreté critique. La première catégorie regroupe tous les services indispensables à l'exécution de tous types de tâches temps-réel. Ces services recouvrent notamment le contrôle de l'éligibilité des tâches, l'attribution de la ressource processeur aux tâches, la surveillance de leur exécution (dépassement d'échéance, détection d'interblocage) ou encore la détection de fautes. La deuxième catégorie regroupe un ensemble de services, d'interface prédéfinie, dont les propriétés sont dépendantes des besoins spécifiques des applications et de l'architecture matérielle utilisée. L'extensibilité de ces services (i.e., l'évolution de leurs fonctionnalités et donc de leurs propriétés est facilement intégrable) permet de personnaliser le support d'exécution HADES en fonction des spécificités des applications ou du matériel. Des exemples de tels services relèvent:

Nos travaux ont plus particulièrement porté sur:

1.
la construction de politiques d'ordonnancement des processus. En particulier, nous avons conçu et implanté un service d'ordonnancement distribué adapté à des tâches périodiques ayant des contraintes de précédence et de partage de ressources. Le test de faisabilité associé a été développé sous la forme d'un outil exécuté hors-ligne;
2.
la construction de politiques de communication. Dans ce cadre, nous avons conçu un service de diffusion garantissant différentes qualités de service, suivant les besoins de l'application. A titre d'exemple, la diffusion de base garantit les propriétés de validité, d'intégrité, d'accord, et de temps-réel. La diffusion causale totalement ordonnée garantit quant à elle les trois propriétés de la diffusion de base auxquelles est ajoutée la propriété d'ordre causal totalement ordonné. Ce service de diffusion est couplé à un service de gestion de groupe dont le but est de garantir que tout changement de configuration du système, suite à des défaillances ou réinsertion de composants, est perçue de façon cohérente dans le système. Ce service garantit les propriétés de vivacité, d'unicité, de terminaison, de cohérence et de temps-réel.



previous up next contents
Précédent : Architectures logicielles pour systèmes distribués Remonter : Résultats nouveaux Suivant : Systèmes d'information spontanés