• Aucun résultat trouvé

Th´eorie et pratique de la concurrence – Master 1 II TD 1 : Concurrence et LTL

N/A
N/A
Protected

Academic year: 2022

Partager "Th´eorie et pratique de la concurrence – Master 1 II TD 1 : Concurrence et LTL"

Copied!
3
0
0

Texte intégral

(1)

Th´ eorie et pratique de la concurrence – Master 1 II TD 1 : Concurrence et LTL

Exercice 1 : Algorithmes concurrents et leur propri´et´es Soit une fonction f pour laquelle il existe une valeur i telle que f(i) = 0. Les algorithmes concurrents ci-dessous cherchent une telle valeuri(appel´ee aussi le point z´ero) en divisant l’espace de recherche en deux parties : les points z´ero positifsi≥0 et les points z´ero n´egatifsi <0.

Un algorithme est correct si, pour toutes les ex´ecutions, les deux processus terminent apr`es que l’un d’entre eux a trouv´e un point z´ero. Pour chaque algorithme, prouvez qu’il est correct en utilisant les diagrammes d’´etats ou trouvez une ex´ecution incorrecte.

Algorithme Z´ero A.

b o o l e a n found ; p r o c e s s P ( )

i n t e g e r i : = 0 ; p1 : found := f a l s e ; p2 : while not found p3 : i := i +1

p4 : found :=( f ( i )==0)

p r o c e s s Q( )

i n t e g e r j : = 1 ; q1 : found := f a l s e ; q2 : while not found q3 : j := j−1

q4 : found :=( f ( j )==0) Algorithme Z´ero B.

b o o l e a n found := f a l s e p r o c e s s P ( )

i n t e g e r i : = 0 ; p1 : while not found p2 : i := i +1

p3 : found :=( f ( i )==0)

p r o c e s s Q( )

i n t e g e r j : = 1 ; q1 : while not found q2 : j := j−1

q3 : found :=( f ( j )==0) Algorithme Z´ero C.

b o o l e a n found := f a l s e p r o c e s s P ( )

i n t e g e r i : = 0 ; p1 : while not found p2 : i := i +1

p3 : i f ( f ( i )==0) p4 : found := t r u e

p r o c e s s Q( )

i n t e g e r j : = 1 ; q1 : while not found q2 : j := j−1

q3 : i f ( f ( j )==0) q4 : found := t r u e

Dans les algorithmes suivants, on utilise la constructionawait B then Rqui bloque l’ex´ecution deRjusqu’`a ce que la condition bool´eenneBsoit vraie. De plus, l’ex´ecution de Rest faite atomi- quement apr`es le test deB. Si la conditionBest ´evalu´ee (atomiquement) `a faux, alors le processus qui ex´ecuteawaitest suspendu et il peut r´eessayer plus tard d’ex´ecuterawait.

Exercice 2 : Sˆuret´e et vivacit´e

Pour chacune des phrases suivantes, indiquez quel type de propri´et´e (sˆuret´e ou vivacit´e) elle exprime en identifiant bien la partie qui y est int´eressante :

1. Au plus 5 personnes sont dans l’ascenseur `a un moment donn´e.

2. Les patrons sont servis dans l’ordre de leur arriv´ee.

3. Le coˆut de la vie ne d´ecroˆıt jamais.

(2)

Algorithme Z´ero D.

b o o l e a n found := f a l s e i n t e g e r tur n :=1 p r o c e s s P ( )

i n t e g e r i : = 0 ; p1 : while not found

p2 : a wa it tur n==1 then tur n :=2 p3 : i := i +1

p4 : i f ( f ( i )==0) p5 : found := t r u e

p r o c e s s Q( )

i n t e g e r j : = 1 ; q1 : while not found

q2 : a wa it tur n==2 then tur n :=1 q3 : j := j−1

q4 : i f ( f ( j )==0) q5 : found := t r u e

Algorithme Z´ero E.

b o o l e a n found := f a l s e i n t e g e r tur n :=1 p r o c e s s P ( )

i n t e g e r i : = 0 ; p1 : while not found

p2 : a wa it tur n==1 then tur n :=2 p3 : i := i +1

p4 : i f ( f ( i )==0) p5 : found := t r u e p6 : tur n :=2

p r o c e s s Q( )

i n t e g e r j : = 1 ; q1 : while not found

q2 : a wa it tur n==2 then tur n :=1 q3 : j := j−1

q4 : i f ( f ( j )==0) q5 : found := t r u e q6 : tur n :=1

4. Toute bonne chose a une fin.

5. Un livre s’am´eliore `a chaque lecture.

6. Ce qui croit doit d´ecroˆıtre.

7. Si deux processus attendent pour leur section critique, exactement un va y entrer.

8. Au plus une personne doit parler `a un moment, les autres doivent ´ecouter.

9. Si une interruption arrive, alors un message sera affich´e.

10. Si une interruption arrive, alors un message sera affich´e dans une seconde.

Exercice3 : Equivalences de formules LTL

Dire si les formules suivantes sont valides. Si oui prouvez-le, si non montrez un contre-exemple : 1. 22ϕ⇔2ϕ

2. 33ϕ⇔3ϕ

3. 3ϕ∧3ψ⇔3(ϕ∧ψ)

4. 3ϕ∨3ψ⇔3(ϕ∨ψ) 5. 323ϕ⇔32ϕ 6. 323ϕ⇔23ϕ

Exercice4 : Formules ferm´ees

Une formuleϕde LTL est dite ferm´ee par pr´efixe si pour toute suitex, et pour toute suite finie z, six|=ϕalorszx|=ϕ. Une formule ϕde LTL est dite ferm´ee par coupure si pour toute suite x, et pour tout entier i, si x|=ϕalorsx, i |=ϕ. Soient p, q formules d’´etat. Dire, pour chacune des formules suivantes, se elle est ferm´ee par pr´efixe ou/et par coupure.

(3)

1. 2p 2. 3p 3. 23p

4. 32p

5. 32p⇒23q

Références

Documents relatifs

Le premier argument est l’adresse d’un descripteur de thread, le deuxi`eme argument (que nous mettrons toujours ` a NULL dans ces TP) est un attribut de thread de type pthread_attr_t

L` a aussi il est recommand´ e d’appeler cette fonction au sein d’une section critique prot´eg´ee par le mutex utilis´e par le thread en attente (dans l’exemple pr´ec´edent

Expliquer-lui pourquoi sa solution ne marche pas en lui montrant une trace d’ex´ ecution dans laquelle les deux processus se retrouvent en mˆ eme temps dans leur section critique..

Donner des formules de LTL qui formalisent les propri´ et´ es suivantes - pr´ ecisez quelles sont les propositions atomiques dont vous avez besoin :.. Deux feux de croisements ne

Le premier thread attend que x1 est true, et le mets ` a false, ensuite attend que x2 soit true et le mets ` a false, et ensuite affiche un message, remet les drapeaux ` a true et

Pour cela, d´ eveloppez une solution qui laisse au plus entrer 4 voitures sur le pont, si une voiture qui va dans la direction oppos´ ee veut entrer. Exercice 4: Le train

Chaque voiture sera un thread diff´ erent, qui, une fois pass´ ee sur le pont, recommence toujours dans la mˆ eme direction2. Modifiez votre solution pour permettre au plus 4

Dans ce Tp on impl´ ementera quelques algorithmes d’exclusion mutuelle sans utiliser les prim- itives de haut niveau comme les m´ ethodes synchronized ou les variables de