• Aucun résultat trouvé

Logique de réécriture en tant que sémantique pour les systèmes temps réels

Spécification des Systèmes Temps-Réel dans le Cadre de la Logique de Réécriture

Définition 7.1. Un domaine temporel peut être considéré comme un monoïde commutatif (D,+,0) qui satisfait les besoins suivants :

7.4 Logique de réécriture en tant que sémantique pour les systèmes temps réels

7.4.1 Application aux automates temporisés

Nous pouvons omettre les détails sur les états initiaux et les conditions d'acceptation. Donc nous pouvons d'ores et déjà définir un automate par ce suit et qui consiste-en :

Rappelons la définition d'un automate temporisé telle que définie auparavant. Donc, nous supposons que l'automate temporisé A = (∑,S,C,E) peut être représenté d'une façon naturelle dans la logique de réécriture par la théorie de réécriture temps-réel ψTA(A) = ((∑A,EA,LA,RA),φA,TA) comme suit :

• (∑A,EA) contient une axiomatisation équationnelle du domaine temporisé R+. De plus, la signature ∑A content une sorte TAState avec une constante s : Æ TAState pour chaque sorte s∈S, une sorte State munie d'un opérateur (n+1)-aire _, _ ,_ , … , _ : TAState TIME … Time Æ State, et un opérateur {-} : State Æ System .

• L'ensemble LA des labels est ∑ ∪{tick}.

• L'ensemble des règles RA et son affectation (duration) contient une règle instantanée, [a] : {s,x1, … , xn} Æ {s',t1, … , tn} if ϕ(x1, …, xn)

pour chaque transition (s,s',ai,λ, ϕ) ∈ E, telles que les variables xi sont de type sort Time et les termes ti sont nuls si ci ∈ λ et ti = xi sinon, et ϕ(x1, …, xn) est obtenu à partir de ϕ par substitution de chaque horloge ci avec la valeur xi et en remplaçant les opérateurs ∧ et ¬ par "and" et le "not". En plus de cela une règle du type :

[tick] : {z,x1, .. ,xn}

yr {z,x1 = yr, .. ,xn + yr} (ou z, yr, x1, … , xn sont des variables) est rajoutée au model du passage de temps.

L'automate temporisé de la figure 7.1 sera représenté par la théorie de réécriture temporisée qui contient les règles suivantes :

rl [a] : {s0,x,y} Æ {s1,0,0} .

crl [b] : {s1,x,y} Æ {s2,0,y} if 5 ≤ x ≤ 10

crl [a] : {s2,x,y} Æ {s1,0,0} if y ≤ 15 and 4 ≤ x ≤ 8 rl [tick] : {z,x,y}

yr {z, x + yr, y + yr}

101

Figure 7.1 : Graphe d’un Automate

7.4.2 Systèmes temps-réel orienté-objets

Dans un système concurrent orienté-objet [Olv00, Reb00], l'état qui est appelé configuration possède la structure d'un multi-ensemble constitué d'objets et de messages. La déclaration en MAUDE d'une telle configuration s'écrit selon la syntaxe suivante :

op _ _ : Configuration Configuration Æ Configuration [assoc comm id : none] .

Ou l'opérateur de l'union (multi-ensemble) est déclaré pour satisfaire les lois structurelles de l'associativité, de la commutativité et de l’identité none. La déclaration du sous-sorte (subsort)

Object Msg ≤ Configuraton

qui déclare les objets et les messages comme un singleton (multi-ensemble) de configurations à partir duquel des configurations plus complexes peuvent être générées par l'union de multi-ensembles.

Object ≤ ObjConfiguration ≤ Configuration et l'opérateur

_ _ : ObjConfiguration ObjConfiguration Æ ObjConfiguration [assoc comm id : none].

Les objets sont des termes de type Object de la forme déclarée de la même manière qu’auparavant, c'est-à-dire < O : C | att1 : val1, …, attn : valn > dénotant un objet O, ou O est de sorte Oid (identificateur d'objets).

Le comportement dynamique d'un système concurrent orienté-objet sera axiomatisé en spécifiant chacune de ces transitions courantes par une règle de réécriture. Par exemple la règle suivante définie une transition temporisée :

rl [l] : m(O,w) < O : C |att1 : x, att2 : y, att3 : z > Æ

< O : C |att1 : x + w, att2 : y,att3 : z > m'(y, x + w)

En résumé, un système orienté objet peut être spécifié à l'aide de théories de réécriture temps-réel comme c'est déjà fait, plus une extension à l'aide de l'opérateur suivant :

{_} Configuration Æ System .

Nous illustrons cette partie de notre présentation des systèmes temps-réel dans le cadre de la logique de réécriture par l'exemple suivant [Reb02a].

102

Sensor1 Sensor2

Safe Approaching Crossing

Figure 7.2 : Un passage à niveau et son automate correspondant

7.4.3.1 Spécification d'un croisement au niveau d'un passage à niveau

Un système concurrent gérant le croisement au niveau d'un passage à niveau est un dispositif composé formellement d'un ou de plusieurs trains, d'un contrôleur et d'une barrière automatique. La partie la plus intéressante dans ce système étant de gérer ce passage pour qu'il n'y ait pas d'accidents entre trains et automobilistes passant en sens croisé. Ce système peut être représenté par trois processus qui évoluent tout à fait en parallèle, disons Train pour le train, Controller pour le contrôleur et Gate pour la barrière. Relatif au passage à niveau tout train peut se trouver dans l’un des trois modes suivants : safe, approaching ou crossing. Tout train passe d'un état safe lorsqu'il se trouve très loin de l'intersection, puis arrivé à une distance connue, il passe à l'état approaching, et finalement à l'état crossing et lorsqu’il quitte le passage à niveau il devient safe (Figure 7.2).

Quand le train pénètre dans la surface approaching, un objet de sorte Timer est forcé avec la valeur d1 qui est le temps nécessaire avant que le système déclenche le signal lower. Lorsque d1 unités de temps auraient été consommées le Timer déclenche une opération interne de Time-out et le signal Approach_Signal est transmis au système de contrôle. Quand le Contrôleur reçoit ce message, il positionne son état interne à ''lower'' et envoie le signal lower_signal au système qui contrôle la barrière qui lui donne l’ordre de se mettre à la position ''lowered'' qui doit se faire dans un délai de d2 unités de temps qui est l’intervalle de temps prévu entre le dernier time-out l’aire de croisement ''crossing area'' et la position de la barrière ''gate position''. Lorsque la barrière se met à baisser, le contrôleur de cette dernière réinitialise son Timer à d3 unités de temps qui correspond exactement au temps qu’il faut pour un train de dépasser l »aire de croisement. Quand le quantité de temps d3 est consommée le Timer time-out, le signal Exit_Signal est alors envoyé au contrôleur qui à son tour repositionne son état interne à la position ''raising'' (remonter) et transmet le signal raising_signal au contrôleur de la barrière pour qu’elle se remette à la position ''raised'' pour libérer la route. L’un des critères les plus importants étant de s’assurer que lorsque le train se trouve sur l’aire d’intersection la barrière doit être fermée (critère de sûreté). Pour assurer une telle spécification nous devons supposer que le train passe de l’état safe à l’état crossing pendant un temps égale à d1 + d2 unités de temps.

Nous nous arrêtons à ce point de définition et nous redirigeons le lecteur sur d’autres détails de la spécification et de la vérification dans le langage MAUDE du système global et de certaines propriétés qui sont consignées (voir les articles [Reb00, Reb02a]). Nous informons aussi le lecteur qu’une autre approche similaire pour définir ce système (critique temps réel) se trouve introduite dans le chapitre 8.

7.5 Conclusion

Dans ce chapitre, nous avons montré les possibilités qu’offrent la logique de réécriture et le langage MAUDE pour spécifier les systèmes temps-réel ordinaires mais aussi ceux à caractéristiques objets ainsi que les automates temporisés. Nous avons vu, qu’avant d’entamer la description du système structurellement, il faut tout d’abord définir méticuleusement le ou les types de temps qu’il faut au préalable mettre en place. Ces définitions sont simplistes puisque nous utilisons des théories (modules fonctionnels) élémentaires qui sont ensuite sont généralisées.

103

CHAPITRE 8

Proposition d’un Environnement pour la