Käyttöjärjestelmät, 12.5.2016                                     in EnglishOther side in English

Kirjoita jokaiseen vastauspaperiisi kurssin nimi, pvm, oma nimi, nimikirjoitus ja opisk.numero.
Kuhunkin tehtävään riittää 1-2 sivun vastaus. Anna kunkin tehtävän vastaus eri paperille.
Kukin tehtävä vastaa samannumeroista minikoetta. Minikokeiden 4-7 uusintakuulustelut ovat siis tehtävät 4-7. Minikoe 8 on tehtävä 8. Välikoe 2 on tehtävät 5-8.
HUOM: Palauta jokainen tehtävä omalla konseptiarkillaan oikeaan pinoon!

  1. [6 p] Muistinhallinta, virtuaalimuisti. Sivun koko 4 KB. Viitattu tavuosoite 0x00B06012.
    1. [2 p] Kuinka 2-tasoista sivutaulua käyttävän virtuaalimuistin osoitteenmuunnos tapahtuu? Mitä hyötyä 2-tasoisesta sivutaulusta on verrattuna 1-tas. sivutauluun?
    2. [2 p] Kuinka käänteistä sivutaulua käyttävän virtuaalimuistin osoitteenmuunnos tapahtuu? Mitä hyötyä käänteisestä sivutaulusta on verrattuna tavalliseen sivutauluun?
    3. [2 p] Kuinka TLB:tä käytetään virtuaalimuistin osoitteenmuunnoksessa? Mitä hyötyä TLB:stä käytännössä on?

  2. [6 p] Prosessien vuoronanto
    1. [1 p] Miten "Shortest Process" määritellään SPN (Shortest Process Next) vuoronantoalgoritmissa? Mikä prosessi on "Shortest Process"?
    2. [1 p] Mitä hyötyä SPN:stä on verrattuna FIFO:on?
    3. [1 p] Kuinka "Shortest Process" voidaan määritellä, kun prosessien resurssitarpeista ei tiedetä etukäteen mitään?
    4. [1 p] Miksi reaaliaikajärjestelmissä ei voi yleensä käyttää tavallisiin järjestelmiin suunniteltuja yksinkertaisia vuoronantoalgoritmeja, kuten esimerkiksi aikaviipalevuorottelua (Round-Robin) tai prioriteettipohjaisia ratkaisuja? Mitä erikoista reaaliaikajärjestelmien vuoronannossa on?
    5. [2 p] Missä tilanteessa reaaliaikajärjestelmän vuoronannon voi toteuttaa prioriteettipohjaisella ratkaisulla? Mitä järjestelmältä tuolloin vaaditaan? Kunka ratkaisu toimii? Miksi prioriteetteja ei voi aina käyttää?

  3. [6 p] I/O:n hallinta, tiedostojen hallinta
    1. [2 p] N-Step-SCAN vuoronantaja. Minkä (C-SCAN) ongelman se ratkaisee ja kuinka se sen tekee? Mitä hyötyä siitä on? Mitä haittaa?
    2. [2 p] Linuxin ennakoiva vuoronantaja (Anticipatory Scheduler). Minkä (C-SCAN) ongelman se ratkaisee ja kuinka se sen tekee? Mitä hyötyä siitä on? Mitä haittaa?
    3. [2 p] Indeksoitu sarjallinen tiedosto (indexed serial file). Mikä on sen rakenne? Anna esimerkki, jolloin se olisi järkevin organisaatiotapa tiedostolle? Miksi läjä (heap), sarjallinen tiedosto (serial file) tai indeksoitu tiedosto (indexed file) eivät olisi hyviä tiedoston organisaatiotapoja esimerkkitapauksessasi?

  4. [6 p] Sulautetut ja hajautetut järjestelmät
    1. [2 p] Mitä hyötyä on eCos'in tapahtumalipukkeista (event flags)?
    2. [1 p] Kuinka eCos'in tapahtumalipukkeiden avulla ratkaistaan kolmen juoksijan (A, B, C) synkronointiongelma, jossa joka kierroksen alussa A:n pitää odottaa kunnes B tai C on juossut vähintään yhtä monta kierrosta kuin A? (Käytä löysästi määriteltyä pseudo-eCos syntaksia. Muista määritellä tapahtumalipukkeet alkuarvoineen.)
    3. [3 p] Etäproseduurin kutsu (RPC). Mihin sitä tarvitaan? Miten se toteutettu? Mitä etuja sillä on verrattuna tavalliseen proseduurin kutsuun? Miten parametrien välitys on siinä toteutettu ja mitä ongelmia siinä on?

  5. [6 p] Tietoturva
    1. [3 p] Puskurin ylivuotohyökkäys (buffer overflow attack). Mikä se on? Anna esimerkki sen käytöstä. Millä eri tavoin sitä vastaan voi suojautua?
    2. [3 p] Salasanan "suola". Mikä se on? Miksi sitä tarvitaan? Mitä hyötyjä siitä saadaan? Miten sitä käytetään? Anna esimerkki sen käyttämisestä.