Rinnakkaisohjelmistot kuulustelu 24.9.2002 1. a) Olet tekemässä oppimateriaalia ja tarkoituksena on havainnollistaa rinnakkaislaskentaa. Anna tiedostopalvelimeen liittyviä esimerkkejä siitä, - mitä voidaan rinnakkaistaa (ja miten ko. rinnakkaisuus saadaan aikaan) - mitä ei voida rinnakkaistaa - mitä hyötyä rinnakkaistamisesta on (mainitsemissasi esimerkeissä) - mitä haittaa rinnakkaistamisesta on (mainitsemissasi esimerkeissä). Tiedostopalvelimen oletetaan toimivan yhdellä koneella. b) Mitä tarkoittaa, kun tietty toimenpidesarja on suoritettava "atomisena"? Mitä tämä vaikuttaa muiden prosessien etenemiseen? c) Mitä tarkoittaa "vartioitu lause" (guarded communication statement)? Anna esimerkki, jossa käsitettä sovelletaan (kirjoita koodista oleelliset osat; jos käytät jotain omaperäistä syntaksia, niin selitä riittävän täsmällisesti merkintöjesi semantiikka). (a: 8p, b: 3p, c: 4p) 2. 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] { while (true) {get serving from the pot; eat; } } process cook { while (true) {sleep; put M servings in the pot; } } Kirjoita asiakkaiden ja kokin toimenpiteiden koodien keskeiset osat käyttäen semaforeja ja P/V-operaatioita. 3. Esitä "nukkuvan parturin ongelman" ratkaisu käyttäen sanomanvälitystä. Partureita oletetaan olevan useita. 4. a) Mitkä ovat ne kolme ehtoa, joiden vallitessa saattaa syntyä lukkiutumis- tilanne? Miten kukin näistä ehdoista täyttyy aterioivien filosofien ongelmassa? b) Voidaanko filosofien tapauksessa lukkiutuminen estää muuttamalla haarukoiden käyttösääntöjä siten, että jokin em ehdoista ei täyty. Tarkastele kutakin sääntöä erikseen. c) Laske ns. pankkiirin algoritmia käyttäen seuraava esimerkki. Järjestelmässä on kolmea resurssityyppiä A, B ja C. Resurssia A on 6 yksikköä, resurssia B 4 yksikköä ja resurssia C 4 yksikköä. Tietyllä hetkellä varaustilanne on seuraavanlainen: prosessi prosessille prosessin varattu maksimitarve A B C A B C P1 2 2 2 2 3 2 P2 4 1 0 5 1 1 P3 0 0 1 2 2 2 Prosessi P2 pyytää saada lisää yhden C-resurssin. Voidaanko se myöntää? Perustele vastauksesi. Entä jos P3 pyytää yhden A-resurssin? Pyyntöön ei selvästikään voida suostua. Mitä tapahtuu tämän jälkeen? (a: 6p, b: 3p, c: 6p) +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Algoritmien kielen tulee olla suhteellisen lähellä Andrewsin käyttämää pseudo- kieltä (ja ainakin sen tulee olla riittävän täsmällistä - jos käytät kovin omaperäistä kieltä, niin selitä, mitä tarkoitat). HUOMAA myös, että kussakin tehtävässä on käytettävä vaadittua rakennetta (sema- fori, monitori, sanomanvälitys, etäproseduuri); tämä on edellytys sille, että tehtävä arvostellaan.