581332-8 Rinnakkaisohjelmistot
Erilliskuulustelu 26.9.2006
Kirjoita jokaiseen vastauspaperiisi nimikirjoituksesi ja nimen selvennys sekä kokeen nimi että päivämäärä.
Vastausohjeita:
Semaforilla
varustettu yhteisön keittiö [15
p]
Yhteisön
keittiössä on iso pata, josta nälkäiset käyvät
noutamassa itselleen ruoka-annoksen. Jos pata on tyhjä,
niin ruokailija herättää kokin ja odottaa, kunnes
kokki on saanut padan täytettyä (pataan mahtuu M
annosta).
Asiakkaiden ja kokin käyttäytymistä kuvaavat
prosessit:
process customer[1:n] { process cook { while (true) { while (true) { get serving from the pot; sleep; eat; put M servings in the pot; } } } }Kirjoita asiakkaiden ja kokin toimenpiteiden koodien keskeiset osat käyttäen semaforeja ja P/V-operaatioita.
Monitoroitu
silta [15 p]
Kahden
kylän A ja B välissä olevan joen yli kulkee niin kapea
silta, että autot voivat ajaa sitä pitkin vain
yhteen suuntaan kerrallaan. Kun sillalla kulkee autoja A:sta B:hen, niin
B:stä A:han haluavien täytyy odottaa.
Silta ei myöskään ole kovin vankka, joten sillalla saa
olla korkeintaan 10 autoa yhdellä kertaa.
Kirjoita
koodi sillan käyttöä valvovalle monitorille Silta.
Laadi myös koodit autoprosesseille. Käytä 'Signal and
Continue' -semantiikkaa. Pyri tekemään ratkaisustasi
mahdollisimman reilu. Samalta suunnalta tulevien autojen
tulee päästä sillalle saapumisjärjestyksessä
eikä kumpikaan suunta saisi vallata siltaa vain yhden suunnan
liikenteelle. Oikein
toimivasta ratkaisusta saa maksimissaan 10 p, reiluuden
huomioonottaminen tuo lisää 1-5 p.
Esitä
"nukkuvan parturin ongelman" ratkaisu käyttäen
sanomanvälitystä. Partureita oletetaan olevan useita.