Tentti 17.5.1995
Kustakin tehtävästä voi saada kuusi pistettä paitsi kuudennesta, joka on yhden pisteen arvoinen. Hyväksyttyyn suoritukseen tarvitaan 11 pistettä.
Paljon onnea tentissä ja hyvää kevättä!
Tehtävä 1
Suunnittele sellainen SDL-prosessi P, joka kommunikoi alla olevan instantioituneen SDL-prosessin Q kanssa niin, että P tekee mahdolliseksi kaikkien Q:n haarojen läpikäymisen. Pystyykö P tekemään varmaksi, että kaikki Q:n haarat käydään läpi? Miksi? Miksi ei? Piirrä järjestelmän tila-avaruus saavutettavuusgraafina, johon on merkitty kaikki P:n ja Q:n operaatiot. Oletetaan, että P tietää Q:n prosessitunnisteen (pidin). Miten se on voitu saada selville?
(Sekä SDL:n graafinen että ohjelmointikielimäinen muoto on sallittu P:n esittämisessä.)
Tehtävä 2
Käytössä ovat prosessit U ja V.
process U [a,b,c,d]: noexit :=
(a; b; stop
[]
d; d; exit) [> c; c; stop
endproc
process V [e,f,g,h ]: noexit :=
g; e; h; h; stop
[]
i; f; f; e; e; stop
endproc
Kirjoita U[j,k,m,n] | | V[k,n.j,m] yhtenä prosessina W niin, että
käytät perus-LOTOS-operaattoreista vain seuraavia: action prefix eli
puolipiste (;), valinta ([]) ja stop.
Tehtävä 3
Käytössä ovat prosessit X, Y ja Z.
process X [a, b] (i. integer) : exit(integer) :=
a?j:integer; b?k:integer; exit (i+j+k)
endproc
process Y [a, b] (m: integer) : exit(integer) :=
a?n:integer[n>7]; b?p:integer[p<10]; exit (m+n+p)
endproc
Mitkä arvot voivat sitoutua r:ään seuraavassa lausekkessa? Vai
onko niitä? Piirrä tapahtumapuu, johon on merkitty myös
synkronoinneissa sidotut muuttujien arvot.
(X[g,h](2) | | Y[g,h](2))
>> accept r:integer in Z[g,h](r+7))
Tehtävä 4
TarkasteHaan prosesseja X, Y ja Z:
process X [a,b,c] : exit :=
a; b; c; X [a,b,c ]
[]
a; c; b; exit
endproc
process Y [a,b,c]: exit :=
a; b; c; Y [a,b,c]
[]
a; c; b; exit
endproc
process Z [a,b,c] : exit :=
a; b; Z [a,b,c]
[]
a; c; b; exit
endproc
Piirrä seuraavan lausekkeen tapahtumapuu, jossa onnistunut terminointi on
merkitty deltalla (5):
X[a,b,cl
| |
Y[a,b,c]
|[a,b,c]|
Z[a,b,c]
Tehtävä 5
Piirrä lausekkeen M [a, b] tapahtumapuu ulkopuolisen tarkastelijan
näkökulmasta:
process M [a,b] : exit:=
hide x,y in
((a; b; stop
[]
x; y; exit
[]
i; stop)
|[x,y]| (x; y; exit)
endproc
Tehtävä 6
Oliko opintojakso mielestäsi vaivan arvoinen? Miksi? Miksi ei?