Käyttöjärjestelmät (8 op), erilliskoe 14.8.2015                      in EnglishOther side in English

Kirjoita jokaiseen vastauspaperiisi kurssin nimi, pvm, oma nimi, nimikirjoitus ja opiskelijanumero.
Kuhunkin tehtävään riittää 1 sivun vastaus.
Tämä koe on tavallinen erilliskoe, sen koealue on koko kurssi ja arvosana määräytyy ainoastaan kokeen perusteella.

  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 semaforeilla. Muista määritellä käyttämäsi semaforit ja niiden alkuarvot. 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 monitoriin perustuva pseudokooditason ratkaisu tuottaja-kuluttaja ongelmaan. Muista määritellä kaikki ehtomuuttujat ja muut monitorin tietorakenteet.
      Jos et osaa antaa monitoriratkaisua, niin mainitse asiasta ja anna semaforiratkaisu (max 2p).

  3. [6 p] Virtuaalimuisti
    1. [3 p] Miten yksitasoisen sivuttavan virtuaalimuistin osoitteenmuunnos tapahtuu laitteisto- ja ohjelmistotasolla? Kuinka kauan osoitteenmuunnos kestää eri tapauksissa?
    2. [3 p] Mitä muistinhallinnan (käyttöjärjestelmän) komponentteja (sivuttavaan) virtuaalimuistiin liittyy ja minkä ongelman kukin komponentti ratkaisee?

  4. [6 p] Tosiaikajärjestelmän suorittimen vuoronanto (skedulointi)
    1. [3 p] Miten tosiaikajärjestelmän vuoronanto eroaa tavallisen järjestelmän vuoroannosta?
      Miksi FIFO (FCFS) tai aikaviipalevuorottelu (Round-Robin) eivät ole yleensä sovi tosiaikajärjestelmien vuoronantoon?
    2. [3 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ä (rate monotonic scheduling).
      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] Järjestelmän tietoturva. Prosessi P haluaa lukea tiedostoa FileX.
    1. [2 p] Miten järjestelmässä määritellään, kuka saa lukea FileX:ää?
      Miten FileX:n käyttöoikeuksien hallinta on toteutettu käyttöjärjestelmän tietorakenteissa?
    2. [2 p] Miten P saa oikeudet FileX:n lukemiseen? Kuka ne antaa ja milloin?
      Milloin P lukuoikeus FileX:ään tarkistetaan?
    3. [2 p] Miten sormenjälkien tunnistaminen ja salasanojen suolaus liittyy siihen, että prosessi P haluaa lukea tiedostoa FileX?