Käyttöjärjestelmät, erilliskoe 14.6.2013                      in EnglishOther side in English

Kirjoita jokaiseen vastauspaperiisi kurssin nimi, pvm, oma nimi, nimikirjoitus ja opiskelijanumero.
Kuhunkin tehtävään riittää 1-2 sivun vastaus.

Tämä koe on tavallinen erilliskoe ja sen koealue on koko kurssi. Jos haluatte, että koe arvostellaan myös uusintakuulusteluna, mainitkaa asiasta koepaperissa. Uusintakuulustelu korvaa vain yhden välikokeen, joko sen puuttuvan välikokeen tai sitten sen huonommin menneen välikokeen. Uusintakuulusteluna koe skaalataan välikokeen pisteisiin ja arvosanassa otetaan huomioon kaikki kurssin osiot. Erilliskokeena arvosana määräytyy ainoastaan tämän kokeen perusteella. Parempi arvosana jää voimaan. Koe arvostellaan vasta juhannuksen jälkeen.

  1. [9 p] Kriittisen vaiheen ongelma
    1. Anna kooditason esimerkki kriittisestä vaiheesta. Anna esimerkkiisi liittyvä skenaario, jossa laskennan lopputulos on virheellinen, jos kriittistä vaihetta ei ole suojattu.
    2. Selitä, miksi tämän saman skenaarion laskennan tulos on oikein, kun kriittinen vaihe on suojattu. Miksi tulos on nyt oikein kaikissa mahdollisissa skenaarioissa?
    3. Millä menetelmällä esimerkkisi kriittinen vaihe on hyvä suojata? Miksi juuri tällä menetelmällä eikä kahdella muulla tuntemallasi menetelmällä. Perustele. Näytä, miten kriittisen vaiheen suojaus toteutetaan pseudokooditasolla käyttämälläsi menetelmällä.
       
  2. [9 p] Monitori ja yksisuuntainen silta
    1. [4 p] Monitori ja synkronointiongelma. Kerro, kuinka synkronointiongelman ratkaisu monitorissa eroaa vastaavasta semaforiratkaisusta. Mitkä ovat monitorin synkronointiprimitiivit ja kuinka ne eroavat vastaavista semaforioperaatioista?
    2. [5 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 usea kerrallaan. Esimerkiksi, kun sillalla kulkee autoja A:sta B:hen, niin B:stä A:han haluavien täytyy odottaa. Ajaessaan länteen (itään) päin auto-prosessit kutsuvat rutiinia enter_bridge_west (east) ennen sillalle ajoa ja rutiinia exit_bridge_west (east) sillalta poistuessaan.

      Kirjoita monitoria käyttäen tämän synkronointiongelman ratkaisu. Siinä on neljä kutsuttavaa rutiinia autojen synkronoimiseksi: enter_bridge_west, exit_bridge_west, enter_bridge_east, exit_bridge_east. Muista määritellä kaikki monitorin ehtomuuttujat ja muut muuttujat alkuarvoineen.

  3. [9 p] Suorittimen lyhyen aikavälin vuoronanto
    1. [5 p] Milloin skedulointialgoritmi toimii oikein? Minkä ongelman Round-Robin vuoronantoalgoritmi ratkaisee ja miten? Round-Robin ei sekään ole aina niin hyvä - minkä Round-Robin algoritmin ongelman Fair-Share vuoronantoalgoritmi ratkaisee ja miten?
    2. [4 p] Miten tosiaikajärjestelmän vuoronanto eroaa tavallisen järjestelmän vuoronannosta? Mitkä ovat hyvän tosiaikajärjestelmän skedulointialgoritmin tavoitteet? Mikä on prioriteetin kääntymisongelma ja kuinka sen voi ratkaista?
     
  4. [9 p] Virtuaalimuisti
    1. [1 p] Mihin ongelmaan virtuaalimuisti on ratkaisu?
    2. [2 p] Mikä on paikallisuusominaisuus, mitä lajeja siinä on ja miten se liittyy virtuaalimuistiin?
    3. [2 p] Mikä on ruuhkautuminen (thrashing), milloin se ilmenee ja miten se liittyy virtuaalimuistiin?
    4. [2 p] Mikä on TLB, minkä ongelman se ratkaisee ja miten se liittyy virtuaalimuistiin?
    5. [2 p] Minkä ongelman virtuaalimuistin poistoalgoritmi ratkaisee? Mainitse yksi virtuaalimuistin poistoalgoritmi ja kuvaile lyhyesti kuinka se toimii esimerkki viitejonolla.