• Aucun résultat trouvé

Variable vivace Une variable v d’un système est dite vivace si pour toute exécution σ de ce système on a :

∀i ∈ N, ∃j > i ∶ v.σj≠ v.σi

Si une variable est vivace et que les exécutions d’un système sont séparables alors la variable T est vivace. On déduit une propriété qui concerne l’hypothèse d’un système non Zénon.

Proposition 1. Soit S un système séparable et une variable v de S vivace, alors S est non Zénon. Démonstration. Soit S un système séparable et v une variable vivace. On considère une

exécution σ de S. La variable T prend valeur dansN, on utilise alors un raisonnement

par récurrence. L’hypothèse de récurrence est donc pour un entier n : ∃i ∶ T.σi≥ n

Étant donné qu’à l’état initial T .σ0= 0, l’hypothèse est vérifiée au rang 0. Supposons

qu’elle soit vérifiée au rang n. Alors∃i ∶ T.σi= n. Comme v est vivace on a :

∃j > i ∶ v.σj≠ σi

⇒ {S est séparable et par contraposée}

∃j > i ∶ T.σj≠ T.σi ⇒ {T est croissante} ∃j > i ∶ T.σj> T.σi ⇒ {définition de i} ∃j > i ∶ T.σj> n ⇔ {propriété deN} ∃j > i ∶ T.σj≥ n + 1

L’hypothèse de rang(n + 1) est donc vérifiée et donc par récurrence étendue à tout

Même si nous travaillons avec les valeur de T dansN, une exécution qui ne prend pas

toutes les valeurs deN est possible. On pourrait définir une exécution où dans chaque

état les valeurs de T sont paires. Un parcours de ces états ne permet pas de vérifier les propriétés du système dans les instants impairs. On veut donc que toutes les valeurs de N soient prises lors de l’exécution afin d’étudier l’état du système à tout instant. On suppose donc par la suite que l’on a la propriété suivante :

Axiome . Pour toute exécution, la variable T vérifie la propriété suivante : T.σ= N

3.1.2 Les horloges

Afin de décrire le comportement temporel des variables du système on définit l’ensem- ble des horloges. Il s’agit de fonctions définies sur un ensemble muni d’un ordre total tel

queN ou R+et définissant une sous-séquence de valeurs de cet ensemble obéissant à

des propriétés de sûreté et de vivacité. Considérant les fonctions que l’on définit, on note [X → Y] l’ensemble des fonctions de l’ensemble de départ X vers l’ensemble d’arrivée Y.

Définition 9. Horloge. Soit un ensembleD muni d’un ordre total ≤. Une horloge c est une

fonction de[D → D] telle que : – elle ne dépasse pas son argument :

∀t ∈ D ∶ c(t) ≤ t

– elle est monotone et croissante :

∀t1, t2∈ D ∶ t1< t2⇒ c(t1) ≤ c(t2)

– elle est vivace :

∀t1∈ D ∶ ∃t2∈ D ∶ c(t2) ≠ c(t1)

On noteC(D) l’ensemble des horloges définies sur D

On utilise des horloges définies sur N mais avec cependant deux significations

différentes. Dans un cas,N représente le domaine de définition de la variable de temps

T. Les horloges caractérisent alors les décalages temporels introduits par l’architecture du système pour la propagation des valeurs prises par les différentes variables. Par

ailleurs,N définit aussi les indices des états. Les horloges basées sur N représentent

alors la précédence logique.

Proposition 2. Valeur initiale des horloges surN. Pour toute horloge c de C(N), on a :

c(0) = 0

Démonstration. Une horloge ne dépasse pas son argument donc pour une horloge c

deC(N), on a c(0) ≤ 0. Comme cette horloge prend ses valeurs dans N, on a de plus

c(0) ≥ 0. On en déduit donc que c(0) = 0.

P R O P R I É T É S D E S H O R L O G E S

Proposition 3. Soit un ensemble d’horlogesC(N). La composition de deux horloges de C(N)

est une horloge deC(N).

Démonstration. Soit un ensemble d’horloges C(N) et deux horloges c1 et c2 de cet

ensemble. Alors c1○ c2est bien une fonction de[N → N]. Vérifions les trois propriétés

– soit t1, t2∈ N ∶ t1< t2alors d’après les propriétés de c1et c2on a : t1≤ t2 ⇒ {c2croissante} c2(t1) ≤ c2(t2) ⇒ {c1croissante} c1(c2(t1)) ≤ c1(c2(t2))

donc c1○ c2est croissant ;

– soit t∈ N alors c2ne dépasse pas son argument donc :

c2(t) ≤ t

⇒ {c1ne dépasse pas son argument}

c1(c2(t)) ≤ c2(t) ≤ t

donc c1○ c2ne dépasse pas son argument ;

– On utilise le lemme suivant, démontré à la suite, pour une horloge c deC(N) :

∀k ∈ N ∶ ∃t ∈ N ∶ c(t) > k

Soit t1∈ N alors d’après le lemme et comme c1(c2(t1)) ∈ N, on a :

∃t2∈ N ∶ c1(t2) > c1(c2(t1)) ⇒ {lemme :∃t3∈ N ∶ c2(t3) > t2)} ∃t2, t3∈ N ∶ c2(t3) > t2 ∧ c1(t2) > c1(c2(t1)) ⇒ {c1croissante} ∃t2, t3∈ N ∶ c1(c2(t3)) ≥ c1(t2) ∧ c1(t2) > c1(c2(t1)) ⇒ {simplification} ∃t3∈ N ∶ c1(c2(t3)) > c1(c2(t1))

donc c1○ c2est vivace.

On en déduit donc que c1○ c2est une horloge.

On démontre le lemme par récurrence surN. Au rang 0, on a c(0) = 0. Comme c est

vivace, il existe t> 0 tel que c(t) ≠ 0. Comme c est croissante, on a c(t) > 0 et donc la propriété est vérifiée.

On suppose qu’on a un rang k tel que la propriété est vérifiée en k− 1. Donc il existe t tel que c(t) > k − 1 et comme on est dans le domaine des entiers, c(t) ≥ k. Or, il existe t′> t tel que c(t′) ≠ c(t) et donc, comme c est croissante, c(t′) > c(t). Donc c(t′) > k et le lemme est vérifié par récurrence.

3.2 L A R E L AT I O N D’O B S E R VAT I O N

3.2.1 Définition

Nous reprenons la définition de la relation d’observation telle qu’initialement donnée par [Cha97]. Cette relation a été définie pour abstraire les communications dans les systèmes distribués. Elle décrit la vision partielle et retardée qu’un site a d’un autre site dans une application répartie. Le but est de définir un outil simple pour la description et l’étude des programmes répartis. Cet outil permet de s’abstraire du protocole de communication utilisé en ne s’intéressant qu’au décalage introduit par la répartition.

Définition 10. Relation d’observation. Soit deux expression‘e et e. Pour une exécution σ, ces

deux expressions sont liées par une relation d’observation ‘e≺⋅ e si : σ⊧ ‘e ≺⋅ e ≜ ∃c ∈ C(N) ∶ ∀i ∈ N ∶ ‘e.σi= e.σc(i)

`e e

1 1 2 2 2 3 3 4 5 5 5 6

0 1 1 1 2 2 3 3 3 5 5 5

e

`e

FIG. 5: Représentation d’une observation

On dit alors que l’expression ‘e est une observation de e. Au long de l’exécution et grâce aux propriétés des horloges, on exprime que les valeurs prises par l’expression ‘e sont des valeurs antérieures de e, prises dans l’ordre chronologique. De plus la vivacité des horloges implique que ‘e prend des valeurs de plus en plus récentes de e. La perte est autorisée et donc toutes les valeurs de e ne sont pas nécessairement prises par ‘e. On appelle l’expression ‘e l’image de l’observation et e la source de l’observation. On dit alors que ‘e observe e dans une exécution σ ou encore que ‘e est une observation de e. On utilise le terme observation dans la suite du document pour désigner une relation d’observation.

L’observation est illustrée figure 5. Chaque état correspond aux deux cases alignées verticalement et les valeurs prises par les expressions ‘e et e le long d’une exécution sont représentées. Les flèches représentent une possible horloge de l’observation en donnant l’état pointé par cette horloge en chaque état.

P R O P R I É T É S On liste les propriétés de la relation d’observation, propriétés démon-

trées dans [Cha97].

Proposition 4. Propriétés de la relation d’observation Soit trois expressions e1, e2, e3alors :

– dans l’état initial σ0d’une exécution, source et image d’une observation ont même valeur ;

∀σ ∶ σ ⊧ e2≺⋅ e1⇒ e2.σ0= e1.σ0

– la relation d’observation est réflexive, antisymétrique et transitive ; ∀σ ∶ σ ⊧ e1≺⋅ e1

∀σ ∶ σ ⊧ e2≺⋅ e1 ∧ e1≺⋅ e2⇒ e2.σ= e1.σ

∀σ ∶ σ ⊧ e3≺⋅ e2 ∧ e2≺⋅ e1⇒ σ ⊧ e3≺⋅ e1

c’est donc une relation d’ordre partiel. 3.2.2 Restriction de la relation d’observation

On veut utiliser la relation d’observation pour décrire l’architecture d’un système distribué temps réel. On s’intéresse à la propagation des valeurs de chaque variable dans le système et au retard introduit par chacune des étapes de la propagation. Ces étapes sont les communications et les calculs effectués par le système. On restreint l’usage de la relation d’observation à une définition permettant de modéliser une telle architecture.

Définition 11. Restriction de la relation d’observation. On restreint la relation d’observation