Käyttöjärjestelmät, välikoe 2, 2.5.2014                      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.

HUOM: Palauta jokainen tehtävä omalla konseptiarkillaan oikeaan pinoon!

  1. [6 p] Muistinhallinta
    Meillä on 48-bittiset virtuaaliset tavuosoitteet ja 32-bittiset fyysiset tavuosoitteet. Sivun koko on 4 KB.
    1. [3 p] Kuinka monta alkiota (entryä) tarvitaan yksitasoiseen virtuaalimuistin sivutauluun? Kuinka monta alkiota tarvitaan käänteiseen sivutauluun?
    2. [3 p] Selitä, kuinka virtuaaliosoite 0x123456789ABC kääntyy fyysiseksi osoitteeksi 54321ABC
      (i) yksitasoisen sivutaulun ja (ii) käänteisen sivutaulun avulla.
      Ota huomioon vaihtoehdot TLB-osuma, TLB-huti ja sivunpuutoskeskeytys.

  2. [6 p] Vuoronanto
    1. [2 p] Anna 3 erilaista yhden suorittimen ympäristöön soveltuvaa vuoronantomenetelmää.
      Selitä jokaiselle menetelmälle, milloin ja miksi sitä olisi hyvä käyttää niiden kahden muun asemesta.
    2. [2 p] Miten takarajavuoronanto (deadline scheduling) toimii pääpiirteissään?
      Mihin ympäristöön ja mihin ongelmaan se on tarkoitettu?
      Miksi se ei sovi käytettäväksi normaalissa kotikonejärjestelmässä?
    3. [2 p] Mikä on vuoronantoon liittyvä prioriteetin kääntymisongelma (priority inversion)?
      Minkälaisessa ympäristössä se voi ilmaantua ja mitä haittaa siitä tuolloin on?
      Kuinka se voidaan ratkaista?

  3. [6 p] Tiedostojen hallinta
    1. [2 p] Anna esimerkki tilanteesta, jossa olisi parempi käyttää B-puu indeksoitua tiedostoa kuin indeksoitua sarjallista tiedostoa. Perustele.
    2. [2 p] Anna esimerkki tilanteesta, jossa olisi parempi käyttää indeksoitua sarjallista tiedostoa kuin B-puu indeksoitua tiedostoa? Perustele.
    3. [2 p] Mikä on B-puu indeksin rakenne? Miten haettu tietue löytyy B-puu indeksin avulla?

  4. [6 p] Sulautettu KJ, eCos
    1. [4 p] Kuinka monitorin voi toteuttaa eCos'issa?
      Kuinka eCos ehtomuuttujat eroavat tavallisista monitorin ehtomuuttujista?
      Kuinka eCos monitorin kriittisen alueen toteutus eroaa tavallisen monitorin toteutuksesta?
      Kuinka tietorakenteiden näkyvyysalueet eroavat eCos monitorin ja tavallisen monitorin toteutuksissa?
      Mikälaista signalointisemantiikkaa (kuka jatkaa signal-operaation jälkeen) eCos monitorin toteutuksessa käytetään?
    2. [2 p] Mitä ovat eCos tapahtumalipukkeet (event flags)?
      Anna esimerkki synkronointiongelmasta, jonka ratkaisu tapahtumalipukkeilla olisi helpompi kuin semaforeilla.