Käyttöjärjestelmät (6 op), erilliskoe 16.9.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] Lukkiutuminen
    1. [3 p] Mikä on lukkiutumisongelma? Anna konkreettinen (pseudokoodi) esimerkki Aterioivien filosofien ongelman avulla.
    2. [3 p] Millä tavoin lukkiutuminen voidaan ennakolta estää Pankkiirin algoritmin avulla?
      (Huom: tarkoitus ei ole esittää itse algoritmia, vaan kuinka sitä hyödynnetään.)
      Selitä, kuinka ratkaisu toimisi Aterioivien filosofien tapauksessa. Mitä etuja tällä ratkaisumenetelmällä on verrattuna pelkästään lukkiutumisen havaitsemiseen perustuviin ratkaisuihin? Mitä haittaa?
    3. [3 p] Lukkiutuminen voidaan kokonaan välttää varaamalla resurssit aina tietyssä järjestyksessä. Miksi tämä menetelmä toimii? Selitä, kuinka ratkaisu toimisi Aterioivien filosofien tapauksessa. Miksi tämä menetelmä lukkiutumisen välttämiseen olisi parempi kuin Pankkiirin algoritmiin perustuvat ratkaisut? Mitä ongelmia menetelmässä on?

  2. [9 p] Suorittimen vuoronanto
    1. [3 p] Minkä ongelman (lyhyen aikajakson, suorittimen) vuoronantoalgoritmi ratkaisee? Milloin se toimii hyvin? Milloin se toimii huonosti? Millä kriteereillä algoritmin hyvyyttä mitataan?
    2. [3 p] Mainitse kolme (3) erilaista yhden suorittimen ympäristöön soveltuvaa vuoronantoalgoritmia ja selitä pääpiirteissään kuinka ne toimivat. Mainitse kustakin algoritmista esimerkki tilanteesta, jossa juuri se olisi parempi kuin ne muut.
    3. [3 p] Kuinka moniprosessorikoneen vuoronanto eroaa tavanomaisesta yhden suorittimen järjestelmän vuoronannosta? Miksi yhden suorittimen koneelle kehitetyt algoritmit eivät yleensä ole niin hyviä moniprosessorikoneille? Mainitse yksi erityisesti moniprosessorikoneelle soveltuva vuoronantoalgoritmi ja selitä pääpiirteissään, kuinka se toimii.

  3. [9 p] Levyjen hallinta. Oletetaan, että levyllä on 200 uraa. Työjonossa on (saapumisjärjestyksessä) levypyyntöjä urille 55, 58, 39, 18, 90, 160, 150, 38 ja 184. Viimeksi käsiteltiin levypyyntö uralle 100.
    1. [3 p] Missä järjestyksessä jonossa olevat levypyynnöt käsitellään, jos politiikkana on SCAN (hissialgoritmi)? Oletetaan tässä epärealistisesti, että uusia levypyyntöjä ei tule kunnes nyt jonossa olevat on käsitelty.
    2. [3 p] Mitä etuja SCAN algoritmilla on verrattuna FIFO:n ja SSTF:ään? Mitä haittoja?
    3. [3 p] Miksi SCAN suosii uudempia levypyyntöjä vanhempien levypyyntöjen kustannuksella? Kuinka tämän voisi välttää ja taata vanhoille levypyynnöille reilua palvelua? Perustele.

  4. [9 p] Muistinhallinta
    1. [2 p] Minkä ongelman sivuttavan virtuaalimuistin poistoalgoritmi ratkaisee? Milloin se toimii hyvin? Mitä tapahtuu, jos se toimii huonosti? Millä kriteereillä algoritmin hyvyyttä mitataan?
    2. [2 p] Kuinka poistoalgoritmi Clock toimii? Mitä laitteistotukea se tarvitsee?
    3. [1 p] Mikä ongelma on perus-Clock algoritmissa ja kuinka sen voisi välttää? Tarvitaanko lisää laitteistotukea?
    4. [2 p] Minkä ongelman käyttöjoukon koon hallinta-algoritmi ratkaisee? Milloin se toimii hyvin? Mitä tapahtuu, jos se toimii huonosti?
    5. [2 p] Kuinka käyttöjoukon koon hallinta-algoritmi PFF (Page Fault Frequency) toimii? Mihin ympäristöön se sopii? Mitä laitteistotukea se tarvitsee?