Académique Documents
Professionnel Documents
Culture Documents
idle
actif
2. L etat initial est : etat de contr ole idle, (open, cible, courant) := (true, 0, 0).
ok idle, true, 0, 0 choice choice choice active, false, 0, 2 active,false,0,0 active, false, 0, 1 up up active, false, 1, 1 choice ok choice up active, false, 1, 2
idle, true, 1, 1
down choice
idle, true, 2, 2
Exercice 2. Soit un syst` eme de transitions S = Q, T, et q0 Q une conguration initiale. Montrez que : 1. lensemble daccessibilit e post (q0 ) est le plus petit invariant de S contenant q0 ; 2. il existe k N tel que post (q0 ) = Correction.
1. On proc` ede en deux phases. Dabord on montre que post (q0 ) est un invariant de S contenant q0 , puis on montre que cest le plus petit. (a) Par d enition, post (q0 ) contient q0 . Montrons que post (q0 ) est un invariant de S , i.e. montrons que post(post (q0 )) post (q0 ). Soit x post (q0 ) et x post(x). Par d enition, il existe t tq x x . Par d enition, on i sait aussi quil existe i 0 tel que x post (q0 ). On en d eduit quil existe des congurations x1 , . . . , xi1 et t1 , . . . , ti T
1 2 1 1 2 1 i i x x . On d eduit ainsi xi1 ... x1 x. On peut ainsi ecrire que : q0 xi1 ... x1 tels que q0 que x posti+1 (q0 ), et donc x post (q0 ) Ceci montre que post (q0 ) est un invariant de S . On a aussi montr e quil contenait q0 juste avant. (b) Montrons que post (q0 ) est le plus petit invariant de S ` a contenir q0 . Soit I un invariant de S contenant q0 . On montre par r ecurrence que pour tout i, I contient posti (q0 ). La propri et e est vraie pour i = 0 par d enition de I . Si on suppose la propri et e vraie au rang i, alors posti (q0 ) I . Or posti+1 (q0 ) = post(posti (q0 )), donc posti+1 (q0 ) post(I ) (croissance de post et hypoth` ese de r ecurrence) et posti+1 (q0 ) I (I est un invariant). Ceci S i montre par r ecurrence que pour tout i, I contient post (q0 ). Or post (q0 ) = 0 posti (q0 ). Do` u la conclusion.
k 0
posti (q0 ).
ti
ti
S Sn i i 2. Montrons quil existe k N tel que post (q0 ) = k 0 post (q0 ). On note Cn = 0 post (q0 ). On remarque dabord que par d enition, pour tout n on a Cn Cn+1 (croissance). On va ensuite montrer que sil existe q tq Cq = Cq+1 , alors pour tout n q , Cn = Cq et post (q0 ) = Cq (stabilisation). Soit q tq Cq = Cq+1 . On veut montrer que pour tout n q , Cn = Cq . On proc` ede par r ecurrence sur i + q (en faisant varier i). Le cas i = 1 est vraie par hypoth` ese sur q . On suppose maintenant que Cq = Cq+i et on veut montrer que Cq = Cq+i+1 . La di erence entre Cq et Cq+i+1 est (hyp. de r ecurrence) lensemble postq+i+1 (q0 ). Or postq+i+1 (q0 ) = post(postq+i (q0 )). Or postq+i (q0 ) Cq+i donc postq+i (q0 ) Cq (hyp. de r ecurrence). On en d eduit que post(postq+i (q0 )) post(Cq ) Cq+1 (croissance de post et d enition de Cn ) et enn que q +i+1 post (q0 )) Cq (cas de base de la r ecurrence). Donc on a montr e par r ecurrence que sil existe q tq Cq = Cq+1 , alors pour tout n q , Cn = Cq . Ainsi pour tout i < q , Ci Cq et pour tout i > q , Ci = Cq . On en d eduit que post (q0 ) = Cq . Voici qui d emontre le lemme de stabilisation. On prouve maintenant le r esultat nal. Soit la suite innie des Cn . Cest une suite croissante (lemme de croissance), et chaque Ci est inclus dans Q lensemble des congurations du syst` eme S . Or, par hypoth` ese sur S , Q est ni (cest le cadre du cours). On en d eduit quil existe n ecessairement k tq Ck = Ck+1 , sinon si toutes les inclusions etaient strictes la suite (|Cn |) tendrait vers linni et d epasserait |Q|. On utilise le lemme de stabilisation pour conclure.
Exercice 3 (Co-accessibilit e). Nous avons vu comment v erier linvariance et laccessibilit ea ` partir du calcul des etats accessibles (calcul en avant). On peut aussi v erier ces propri et es en calculant en arri` ere. On d enit informellement pre(q ) comme les congurations a ` partir desquelles on peut atteindre q0 . d enir formellement la relation pre (sinspirer de post) On appelle ensemble de co-accessibilit e de q lensemble pre (q ). Que repr esente-t-il intuitivement ? Donner un algorithme pour calculer pre (q ). Justiez la terminaison. Comment v erier linvariance et laccessibilit ea ` partir de la co-accessibilit e? k Montrer quil existe k N tel que pre (q ) = 0 prei (q ). Correction.
1. On peut d enir pre par pre = {(q , q ) Q Q|t T, q q }. On peut aussi dire que pre = post1 en utilisant la notion de relation inverse ((q , q ) pre ssi (q, q ) post). 2. Lensemble de co-accessibilit e de q repr esente toutes les congurations du syst` eme ` a partir desquelles on peut atteindre q . t 3. Adaptez directement lalgorithme pour post, mais en calculant les transitions en arri` ere (attention : cela donne en g en eral un ensemble ni de congurations plut ot quune seule conguration). 4. Soit un syst` eme S avec un etat initial q0 , une propri et e dinvariance I et une propri et e daccessibilit e A (I et A sont des ensembles de congurations). Alors : A est atteignable ssi q0 pre (A) ; I est v eri e ssi q0 pre (Q\I ). 5. Sinspirer directement de la d emonstration pr ec edente.
t
Quelles sont les transitions du syst` eme concurrent dans les cas suivants : 1. s emantique synchrone ; 2. s emantique asynchrone (1) ; 3. s emantique asynchrone (2) ; 4. s emantique synchrone + synchronisation entre 1 et 3 ; 5. s emantique asynchrone (2) + synchronisation entre 1 et 3 ; 3
Exercice 5 (S uret e). On se donne un syst` eme de transitions S dont certaines transitions sont distingu ees et correspondent a ` des op erations daquisition de verrou (lock), de rendu de verrou (unlock), de lecture (read) et d ecriture (write). On se donne la propri et e suivante : Si on ne regarde que les lock et unlock : unlock est toujours pr ec ed e directement de lock ET une suite arbitraire de read,write est toujours pr ec ed ee directement dun lock . Questions : 1. Est-ce que est une propri et e de s uret e ? Sinon modiez l` a en cons equence. 2. Ecrivez un automate observeur pour v erifer (ou sa modication) et expliquez la nouvelle propri et ea ` v erier. 3. On consid` ere maintenant la sp ecication : Si on ne regarde que les lock et unlock : unlock est toujours pr ec ed e directement de lock lock est toujours suivi directement de unlock, ET une suite arbitraire de read,write est toujours pr ec ed ee directement dun lock et ferm ee directement par un unlock. Est-ce toujours une propri et e de s uret e? Correction.
1. est bien une propri et e de s uret e car (intuitivement) on peut reconnaitre une ex ecution incorrecte en consid erant juste une portion nie du pass e de cette ex ecution. Ici, il sut de regarder la trace dex ecution pour v erier que les lock, unlock, read, write sont bien mis correctement. 2. Voil` a lautomate observeur ci-dessous. La propri et ea ` v erier (dans le syst` eme produit) est que l etat de contr ole ERROR de lautomate oberveur nest pas atteignable.
unlock
read write
lock
3. Cette propri et e nest plus de la s uret e : pour savoir que tout lock est suivi dune s equence eventuelle de read/write puis dun unlock, il faut regarder le futur de lex ecution. Ainsi, une ex ecution (innie) fautive commence par exemple par un lock et na jamais de unlock. Regarder le pass e de cette ex ecution ne permet jamais de dire quelle est fautive.