Käyttöjärjestelmät (8 op), erilliskoe 12.8.2016

Kirjoita jokaiseen vastauspaperiisi kurssin nimi, pvm, oma nimi, nimikirjoitus ja opiskelijanumero. Tämä koe on tavallinen erilliskoe. Vastaa kaikkiin kysymyksiin. Kuhunkin tehtävään riittää 1 sivun vastaus.

  1. [6 p] Kriittinen vaihe (alue)
    1. [3 p] Anna pseudokoodiesimerkki tilanteesta, jossa kriittinen alue koostuu kahdesta erillisestä koodisegmentistä. Anna esimerkkiisi liittyvä monisäikeinen skenaario, jossa lopputulos on virheellinen sen vuoksi, että kriittistä aluetta ei ole suojattu oikein.
    2. [3 p] Näytä (pseudokooditasolla), kuinka edellä mainittu kriittinen alue suojataan monitorin avulla. Selitä, miksi edellisen kohdan virheellinen skenaario ei nyt voi tapahtua.

  2. [6 p] Tuottaja-kuluttaja ongelma
    1. [3 p] Selitä, mikä on tuottaja-kuluttaja ongelma ja mitä erityisiä synkronointi- ja kommunikointiongelmia siihen sisältyy.
    2. [3 p] Anna semaforeihin perustuva pseudokooditason ratkaisu tuottaja-kuluttaja ongelmaan. Muista määritellä kaikki semaforit alkuarvoineen.

  3. [6 p] Virtuaalimuisti
    1. [3 p] Miten kaksitasoisen sivuttavan virtuaalimuistin osoitteenmuunnos tapahtuu laitteisto- ja ohjelmistotasolla? Kuinka kauan osoitteenmuunnos kestää eri tapauksissa? Älä unohda TLB:tä ja osuutta osoitteenmuunnoksessa.
    2. [3 p] Minkä sivuttavan virtuaalimuistin hallintaongelman Clock-algoritmi ratkaisee? Mitä laitteistotukea se tarvitsee? Kuinka Clock-algoritmi pääpiirteissään toimii?

  4. [6 p] Tosiaikajärjestelmän suorittimen vuoronanto (Real time scheduling)
    1. [2 p] Miksi etua rate monotonic scheduling (RMS) vuoronantomenetelmällä on tosiaikajärjestelmissä usein käytettyihin aikarajavuorontantomenetelmiin (deadline scheduling)?
    2. [4 p] Tosiaikajärjestelmän tulee pystyä samanaikaisesti käsittelemään (i) kaksi (ääni-) puhelua ja (ii) yhden videon lähettämisen. Äänipuhelut tarvitsevat kumpikin 5 ms välein 1 ms CPU aikaa. Videossa on 25 kehystä/s ja kukin kehys tarvitsee 15 ms CPU aikaa. Nämä kolme prosessia ovat skeduloitavissa RMS:llä.
      Selitä, miksi prosessit ovat skeduloitavissa RMS:llä ja minkälainen vuoronanto siitä seuraa.

  5. [6 p] Tiedostojen hallinta
    1. [4 p] Mikä on indeksoitu tiedosto (IF) ja kuinka se eroaa indeksoidusta sarjallisesta tiedostosta (ISF)? Milloinka sitä (IF) kannattaa käyttää? Missä tapauksessa IF:n käyttö on hitaampaa kuin ISF:n käyttö? Kuinka monta indeksiä IF:ssä tarvitaan ja kuinka suuria ne ovat?
    2. [2 p] Miksi indeksi kannattaa usein toteuttaa B-puuna? Mitä etua B-puu toteutuksella on verrattuna tavalliseen (monitasoiseen) indeksiin?

  6. [6 p] Etäproseduurin kutsu (RPC, Remote Procedure Call)
    1. [2 p] Mikä on RPC? Miten se eroaa tavallisesta aliohjelman (proseduurin, metodin) kutsusta? Mitä yhteistä sillä on tavallisen aliohjelmakutsun kanssa?
    2. [2 p] Kuinka RPC toteutetaan? Minkälaisessa tilanteessa RPC:tä on hyvä käyttää ja minkälaiseen tilanteeseen se ei sovi?
    3. [2 p] Mikä on asynkroninen RPC ja miten sen käyttö eroaa normaalista synkronisesta RPC:stä? Mitä hyötyä siitä voisi olla synkroniseen RPC:hen verrattuna?