Käyttöjärjestelmät (6 op), erilliskoe 15.8.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.
Tämä koe on tavallinen erilliskoe ja sen koealue on koko kurssi (6 op).

  1. [9 p] Editori, näppäimistön ajuri ja monitori. Tekstieditori (TE) lukee merkkipuskurista B merkkejä yksi merkki kerrallaan ja tekee sen vaatimat muutokset editoitavaan tiedostoon. Näppäimistön laiteajuri (DD) lukee näppäimistön painallukset (yksi kerrallaan) ja kirjoittaa niitä vastaavat merkit merkkipuskuriin B.
    1. [3 p] Kuvaile TE:n ja DD:n välinen synkronointi- ja kommunikointiongelma. Kuka odottaa ketä ja milloin? Miten tieto siirtyy?
    2. [6 p] Anna tämän synkronointi- ja kommunikointiongelman ratkaisu monitorin avulla. Esitä ratkaisu TE:n, DD:n ja monitorin pseudokoodien avulla. Määrittele selkeästi kaikki käyttämäsi ehtomuuttujat ja muut tietorakenteet alkuarvoineen. Selitä, miksi ratkaisusi on oikein.

  2. [9 p] Vuoronanto
    1. [3 p] Miten aikaviipaleen pituus olisi hyvä valita, kun interaktiivisessa järjestelmässä käytetään aikaviipalevuoronantoa? Mitä haittaa on liian pitkästä tai liian lyhyestä aikaviipaleesta?
    2. [1 p] Miten tosiaikavuoronannon tavoitteet eroavat normaalin vuoronannon tavoitteista?
    3. [2 p] Miten RMS (Rate Monotonic Scheduling) toimii pääpiirteissään?
      Minkä erityisen tosiaikajärjestelmien vuoronantoon liittyvän ongelman se ratkaisee ja kuinka?
    4. [3 p] Mikä on prioriteetin kääntymisongelma (priority inversion) ja kuinka se voidaan ratkaista? Anna esimerkki.

  3. [9 p] Tiedostojärjestelmä
    1. [5 p] Mikä on indeksoitu sarjallinen tiedosto ja miten toimii? Milloin sitä olisi hyvä käyttää? Milloin sitä ei kannata käyttää? Kuinka (ilman B-puuta toteutettu) indeksointi toimii? Miksi indeksointi kannattaisi toteuttaa B-puuna? Kuinka B-puun avulla toteutettu indeksointi toimii?
    2. [4 p] Selitä käsitteet pääsymatriisi, pääsylista ja valtakirjalista, ja kuinka ne liittyvät toisiinsa. Mikä ongelma ratkaistaan niiden avulla? Anna Unix tai Linux tiedostojärjestelmään liittyvä esimerkki, käyttäen tekstitiedostoa myfile.txt, jota kaikki saavat lukea, mutta vain omistaja muokata.

  4. [9 p] Muistinhallinta
    1. [3 p] Koneessa on 48-bittiset virtuaaliset tavuosoitteet ja 32-bittiset fyysiset tavuosoitteet. Sivukoko on 4KB. Kuinka monta alkiota tarvitaan tavallista sivutaulua varten? Entä käänteistä sivutaulua varten?
    2. [3 p] Mikä on osoitteenmuunnospuskuri (TLB) ja mikä on sen tehtävä osoitteen muunnoksessa? Mitä yhteistä/eroavaisuuksia on TLB:llä ja välimuistilla (toteutus, paikallisuus)?
    3. [3 p] Koneessa on 16-bittiset virtuaaliset tavuosoitteet ja 16-bittiset fyysiset tavuosoitteet. Sivukoko on 1KB. Miten fyysiseen muistiin viittaus toteutuu, kun käyttäjän ohjelma viittaa  virtuaaliseen muistiosoitteeseen
      1. 00011001 01010101  
      2. 00110010 10101010
      3. 00001100 00111100

      ja sivutaulusta löytyy seuraavat rivit:

      Sivun nro
      Kehys nro
      11
      110
      110
      11
      1100
      -
      11001
      1100
      110010
      -