• Aucun résultat trouvé

Représentation des propriétés temporelles

Dans le document Gestion du temps par le raffinement (Page 74-77)

4.7 Patron de chronomètres

4.7.4 Représentation des propriétés temporelles

Nous avons maintenant défini comment obtenir une machine contenant un

modèle du temps et des contraintes temporelles. Le dernier volet de

l’applica-tion du patron consiste à écrire les propriétés du système que l’on veut vérifier

sous la forme d’un invariant. Pour cela nous pouvons utiliser les valeurs des

chronomètres pour décrire les propriétés que nous voulons. Celles-ci dépendent

du système, et l’on peut utiliser toutes expressions arithmétiques nécessaires

légales en B évènementiel pour les exprimer.

On peut aussi remarquer que les bornes supérieures des contraintes

tem-porelles, celles qui apparaissent dans la garde detic, mènent systématiquement

à une clause d’invariant. En effet, en considérant un chronomètre s_e (d’un

évènementeavec une gardeG) avec une borne supérieurea, nous avons

systé-matiquement en invariant :

Gs_ea

Cela se vérifie aisément au vue de la forme des gardes detic.

Exemple : Dans l’exemple de la lampe, nous trouvons d’abord l’invariant tel

que décrit ci dessous puis un autre concernant la borne inférieure.

inv3:lo=TRUEs_oc+d

inv4:lo=FALSEcds_o

Il faut noter qu’un invariant comme inv4 n’est pas systématiquement valide.

De plus, lors de la conception du modèle il faut prendre garde à

l’initialisa-tion. En effet le concept des chronomètres sous-entend que dans tous les états

du système, tous les évènements se sont déclenchés dans le passé et on connait

la durée depuis laquelle cela s’est produit. Évidemment ce n’est pas le cas lors

de l’initialisation, il faut donc donner une valeur artificielle aux chronomètres

de manière à respecter l’invariant. Si on veut éviter d’avoir à considérer ce cas

d’initialisation, il est possible d’utiliser un type plus complexe que les entiers où

l’on pourrait avoir une valeur spéciale indiquant que l’évènement ne s’est jamais

déclenché dans le passé. Toutefois le recours à ce type d’expression complexifie

le modèle et ne justifie pas systématiquement. De plus rappelons que

l’initial-isation est surtout là pour démontrer qu’il existe un état initial qui respecte

l’invariant.

Exemple : pour l’initialisation de l’exemple, comme le système commence

avec la lampe éteinte il faut prendre une valeur pour le chronomètre après la

borne supérieur du délai d’extinction.

Initialisations=b

With

s’:s

={o7→c+d+ 1}

Begin

act1:lo:=FALSE

act2:s_o:=c+d+ 1

End

4.8 Conclusion

Dans ce chapitre nous avons défini notre point de vue sur les patrons et

donné en exemple trois patrons servant à aider à la modélisation de systèmes

temporels. Nous pensons que ces exemples montrent l’intérêt de capitaliser

l’-expérience obtenue en modélisant et prouvant des systèmes. Ces patrons sont

à prendre comme le fruit d’expérimentations sur des études de cas et nous

espérons qu’ils permettront à d’autres personnes d’accélérer leurs études de

sys-tèmes temporisés.

Les deux concepts (en regroupant les variantes de l’agenda relatif et absolu)

que nous avons défini sont complémentaires, en effet, le patron d’agenda permet

de contraindre fortement le déroulement d’un système dans le temps tandis que

le patron de chronomètre superpose des contraintes temporelles de manière plus

lâche sur le comportement sur système.

Étude de la résolution de la

contention

5.1 Introduction

Nous présentons ici un modèle du protocole IEEE 1394 Root Contention

Protocol (RCP) avec une démonstration des ses propriétés de sureté et

tem-porelles (quantitatives).

Nous allons utiliser notre patron dit d’agenda en valeurs absolues pour

in-troduire de manière incrémentale les propriétés temporelles de RCP.

Le protocole normé FireWire (IEEE 1394) est une norme créée pour gérer

la communication entre des périphériques informatiques. Ce protocole permet

de connecter tout un ensemble de matériels entre eux. Chaque nœud du réseau

ainsi constitué peut être directement relié à plusieurs autres à la manière d’un

switch. Le réseau peut donc avoir une topologie libre selon le branchement que

réalise l’utilisateur, la seule limitation topologique est qu’il est interdit de

for-mer des boucles. À noter qu’un ordinateur de bureau est considéré comme un

périphérique comme les autres. Le protocole est utilisé dans de nombreux

pé-riphériques et ordinateurs du commerce. L’utilisateur de ce système n’a pas à

réaliser la configuration du réseau, les périphériques doivent être capables de

se configurer de manière autonome. Pour cela, une phase d’initialisation du

réseau (appeléeBus Reset) est lancée dès qu’un ou plusieurs périphériques sont

branchés ou débranchés, cette phase d’initialisation a pour but «d’élire» un

pé-riphérique dirigeant unique qui servira à réguler le réseau. Le sujet qui nous

intéresse ici est cette phase d’initialisation. Algorithmiquement, cela correspond

à trouver un arbre enraciné, la racine étant le dirigeant, au sein d’un graphe

non-orienté acyclique.

La phase d’élection du dirigeant,Tree Indentify Protocol dans la norme, se

réalise par soumission des nœuds, chaque nœud «feuille» dans le graphe,

c’est-à-dire relié à un seul autre périphérique, décide qu’il ne sera pas le dirigeant et

transmet sa décision de subordination à son unique voisin. Ensuite on considère

qu’un nœud soumis ne fait plus partie du reseau actif pour l’algorithme et la

procédure se poursuit en vague jusqu’à ce qu’il ne reste plus qu’un nœud et c’est

alors lui, le dirigeant du réseau.

En effet, il se peut que les messages de soumission des deux derniers nœuds

75

se croisent dans la liaison auquel cas l’élection ne peut pas se faire. Le protocole

Remote Contention Protocol (RCP) de détection et de résolution est alors

ap-pliquée pour ce cas dit de contention. Ce protocole fait appel à des mécanismes

temps-réel, que nous allons modéliser.

Un développement prouvé sur un modèle (raffiné) duTree Indentify Protocol

dépourvu de contraintes temporelles (c’est à dire avec la phase RCP traitée de

manière abstraite) a déjà été réalisé avec la méthode B évènementielle par J.-R.

Abrial, D. Cansell et D. Méry [7, 8].

Dans le document Gestion du temps par le raffinement (Page 74-77)