Käyttöjärjestelmät II, 2 ov                         (kuvat kääntöpuolella)
Kurssikuulustelu 11.5.2004

Kirjoita jokaiseen vastauspaperiisi seuraavat tiedot: oma nimi, opiskelijanumero (tai henkilötunnus),
kurssin nimi, nimikirjoitus ja sivunumero.
  1. [13 p] Prosessit ja säikeet. Tarkastellaan Solariksen prosesseja ja säikeitä (ks. Fig. 4.15 kääntöpuolella).
    1. [3 p] Selitä kuvan perusteella käsitteet
      1. ULT (User Level Thread) - käyttäjätason säie
      2. LWP (Light Weight Process) - kevytprosessi
      3. KLT (Kernel Level Thread) - ytimen säie
    2. [2 p] Kun ULT joutuu odotustilaan (esim. odottaa I/O:ta), niin missä tilanteessa myös LWP joutuu odotustilaan? Vastaavasti, missä tilanteessa LWP ei joudu odotustilaan?
    3. [2 p] Selitä, kuka vuorottaa ULT:t ja milloin.
    4. [2 p] Selitä, kuka vuorottaa LWP:t ja milloin.
    5. [2 p] Anna esimerkki sovelluksesta, joka olisi järkevintä toteuttaa saman tyyppisillä prosesseilla kuin prosessi 3 kyseisessä kuvassa (ks. Fig. 4.15 kääntöpuolella). Perustele. Erityisesti perustele, miksi ratkaisua ei olisi järkevää toteuttaa saman tyyppisillä prosesseilla kuin prosessi 4 kyseisessä kuvassa.
    6. [2 p] Anna esimerkki sovelluksesta, joka olisi järkevintä toteuttaa saman tyyppisillä prosesseilla kuin prosessi 4 kyseisessä kuvassa (ks. Fig. 4.15 kääntöpuolella). Perustele. Erityisesti perustele, miksi ratkaisua ei olisi järkevää toteuttaa saman tyyppisillä prosesseilla kuin prosessi 3 kyseisessä kuvassa.

  2. [12 p] Virtuaalimuistin Clock sivunpoistoalgoritmi, kun joka sivuun liittyy sekä R-bitti (viitattu, referenced or accessed recently) että M-bitti (muutettu, modified). (Ks. Fig. 8.18 kääntöpuolella)
    1. [3 p] Miten Clock sivunpoistoalgoritmi toimii?
    2. [2 p] Milloin Clock algoritmi käynnistetään? Päättyykö algoritmi aina?
    3. [3 p] Kuka asettaa ja milloin R- ja M-biteille arvoja?
    4. [2 p] Määrittele käsite käyttöjoukko. Miten käyttöjoukko liittyy tähän Clock algoritmiin?
    5. [2 p] Onko Clock-algoritmi lokaali vai globaali sivunpoistoalgoritmi? Perustele.

  3. [13 p] Prosessien ja säikeiden vuorotus
    1. [3 p] Miten Feedback q=2i -vuoronantoalgoritmi toimii? Minkälaiseen suoritusympäristöön se on tarkoitettu? Anna esimerkki.
    2. [3 p] Miten Fair Share -vuoronantoalgoritmi toimii? Minkälaiseen suoritusympäristöön se on tarkoitettu? Anna esimerkki.
    3. [3 p] Mitä on kimppavuorottaminen (gang scheduling)? Minkälaiseen suoritusympäristöön se on tarkoitettu? Anna esimerkki.
    4. [4 p] Miten Rate Monotonic -vuoronantoalgoritmi toimii? Minkälaiseen suoritusympäristöön se on tarkoitettu? Anna esimerkki.

  4. [12 p] Tietoturva
    1. [3 p] Miten UNIX/Linux-järjestelmässä toteutetaan seuraava tilanne: käyttäjä (user) Antti antaa Maijan käyttöön peliohjelmansa GoodGame, jonka suorituksen aikana voidaan lukea ja kirjoittaa peliin liittyvää tiedostoa GameLog. Maija ei voi lukea tai kirjoittaa tiedostoon GameLog silloin kun hän ei ole pelaamassa peliä GoodGame. Anna täsmällinen esimerkki.
    2. [3 p] Miten Troijan hevonen -tietoturvaongelma liittyy tähän tilanteeseen? Anna esimerkki, jossa kohdan (a) ratkaisu on toteutettu, mutta Antti saa käyttöönsä tietoja Maijan tiedostosta MyjaPrivate, johon vain Maijalla on luku- ja kirjoitusoikeudet.
    3. [3 p] Miten Maija voi puolustautua kohdan (b) tietoturvahyökkäystä vastaan?
    4. [3 p] Onko kohdan (a) ratkaisussa mahdollista, että Antin luottamuksellinen tiedosto AntiSecret vuotaa pelin GoodGame pelaamisen aikana Maijalle. Miten tai miksi ei? Anna esimerkki.