Tik-79.193 Rinnakkaisohjelmistojen määrittelymenetelmät/Esa Kettunen

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ä.)

Kuva

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?