Vous êtes sur la page 1sur 3

Solution - Basic LOTOS

Dr. Saı̈d LAYADI


Méthodes formelles - Master2

Exercice 1
rdp1: lire; traiter; écrire; stop

rdp2: (lire; stop) [ ] ((ecrire; traiter; stop) [ ] (ouvrir; stop))

rdp3: (a; b; c; stop) |[a,b]| (a; d; b; stop)

Exercice 2
PROCESS Two Buffers[in, out]:=

hide middle in buff[in, middle] |[middle]| buff[middle, out]

WHERE ...

ENDPROC

PROCESS Protocol-v3[int1, int4]:=

hide int2, int3 in (entité1[int1, int2] ||| entité2[int3, int4]) |[int2, int3]| service[int2, int3]

WHERE ...

ENDPROC

Exercice 3
1) SYSTEM ProducteurConsommateur [produire, consommer, in, out]:=

(Producteur[produire, in] ||| Consommateur[consommer, out]) |[in, out]| Buffer[in, out]

WHERE

PROCESS Producteur[produire, in]:=

produire; in; Producteur[produire, in]

ENDPROC

PROCESS Consommateur[consommer, out]:=

1
out; cosommer; Consommateur[consommer, out]

ENDPROC

PROCESS Buffer[in, out]:=

in; out; Buffer[in, out]

ENDPROC

ENDSYSTEM

2) STEs des processus

produire; in; Producteur[produire, in]


produire
in in; Producteur[produire, in]

Figure 1: STE Producteur

out; consommer; Consommateur[consommer, out]


out
consommer
consommer; Consommateur[consommer, out]

Figure 2: STE Consommateur

in; out; Buffer[in, out]


in
out out; Buffer[in, out]

Figure 3: STE Buffer

S0 : (produire; in; Producteur[produire, in] ||| out; consommer; Consommateur[consommer, out])


|[in, out]| (in; out; Buffer[in, out])
S1 : (in; Producteur[produire, in] ||| out; consommer; Consommateur[consommer, out]) |[in, out]|
(in; out;Buffer[in, out])

2
consommer S0 produire

S3 S1
out
produire
in
consommer
S5
in S2
out
produire
S6 produire
S7 consommer
S4
consommer
Figure 4: STE Système Global

S2 : (produire; in; Producteur[produire, in] ||| out; consommer; Consommateur[consommer, out])


|[in, out]| (out; Buffer[in, out])
S3 : (produire; in; Producteur[produire, in] ||| consommer; Consommateur[consommer, out])
|[in, out]| (in; out; Buffer[in, out])
S4 : (in; Producteur[produire, in] ||| out; consommer; Consommateur[consommer, out]) |[in, out]|
(out; Buffer[in, out])
S5 : (in; Producteur[produire, in] ||| consommer; Consommateur[consommer, out]) |[in, out]|
(in; out; Buffer[in, out])
S6 : (produire; in; Producteur[produire, in] ||| consommer; Consommateur[consommer, out])
|[in, out]| (out; Buffer[in, out])
S7 : (in; Producteur[produire, in] ||| consommer; Consommateur[consommer, out]) |[in, out]|
(out; Buffer[in, out])

Vous aimerez peut-être aussi