Käyttöjärjestelmät, välikoe 1, 9.3.2016                      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.
Anna kunkin tehtävän vastaus omalla konseptiarkillaan.
Kukin tehtävä vastaa samannumeroista minikoetta. Tehtävä 4 on siis minikoe 4.

HUOM: Palauta jokainen tehtävä omalla konseptiarkillaan oikeaan pinoon!

  1. [6 p] Välimuisti. Muistiviite kohdistuu yhteen tavuun tavuosoitteessa 0x12345678.
    1. [2 p] Kuinka välimuisti selvittää, löytyykö viitattu tavu välimuistista vai ei?
    2. [1 p] Jos viitattu tavu löytyy välimuistista, niin mistä kohtaa sieltä se löytyy?
    3. [1 p] Jos viitattua tavua ei löydy välimuistista, niin kuinka viitattu tavu nyt saadaan käyttöön?
    4. [1 p] Tietyn kokoinen (esim. 64 KB) välimuisti on jaettu riveihin (lohkoihin).
      Miksi välimuistin rivin koko on yleensä useampia sanoja (esim. 8 tai 16 sanaa), eikä vain 1-2 sanaa?
    5. [1 p] Miksi välimuistin rivin koko on yleensä silti aika pieni (esim. 64 tavua), eikä paljon suurempi (esim. 1 KB)?

  2. [6 p] Semaforit.
    1. [2 p] Mikä on semafori? Minkä ongelman se ratkaisee? Mitä tietorakenteita sen toteutukseen sisältyy? Mitä operaatioita siihen liittyy ja mitä ne tekevät?
    2. [1 p] Mikä on tuottaja/kuluttaja-ongelma? Mitä synkronointi- ja kommunikointiongelmia siihen liittyy?
    3. [1 p] Miksi tuottaja/kuluttaja-ongelma on helpompi, jos puskurin koko on ääretön? Minkälaisessa käytännön tilanteessa tuottaja/kuluttaja-ongelman ratkaisun voi toteuttaa olettaen puskurin koon äärettömäksi?
    4. [2 p] Anna tuottaja/kuluttaja-ongelman ratkaisu semaforien avulla, kun puskurin koko on ääretön ja tuottajia/kuluttajia voi olla monta. Anna tuottajien ja kuluttajien koodit pseudokoodina. Määrittele kaikki käyttämäsi semaforit alkuarvoineen.

  3. [6 p] Lukkiutuminen.
    1. [2 p] Mitkä neljä ehtoa tulee olla voimassa, jotta lukkiutuminen olisi mahdollista? Selitä, mitä kukin ehto tarkoittaa.
    2. [1 p] Anna esimerkki tilanteesta, jossa em. neljä ehtoa ovat kaikki voimassa ja lukkiutuminen on tapahtunut. Selitä, miksi lukkiutuminen tapahtui.
    3. [1 p] Anna esimerkki tilanteesta, jossa em. neljä ehtoa ovat kaikki voimassa, mutta lukkiutumista ei silti ole tapahtunut. Selitä, miksi lukkiutumista ei nyt tapahtunutkaan.
    4. [2 p] Anna esimerkki tilanteesta (sovelluksesta), jossa olisi järkevää käyttää lukkiutumisen havaitsemisalgoritmia (DDA). Kuinka DDA:ta tällöin käytetään? Milloin DDA ajetaan? Mitä tehdään, jos DDA havaitsee lukkiutumisen? Mitä tehdään, jos DDA ei havaitse lukkiutumista?

  4. [6 p] Muistinhallinta ja virtuaalimuisti
    1. [2 p] Kuinka virtuaalimuistin osoitteenmuunnos käytännössä tapahtuu? Käytä esimerkkinä yksitasoista sivuttavaa virtuaalimuistia, jossa tavuosoitteet ovat 32-bittisiä, sivun koko on 4KB ja viitattu osoite on 0x12345678.
      Minkä osoitteenmuunnoksen ongelman TLB ratkaisee ja miten se sen tekee?
    2. [2 p] Minkä ongelman Clock algoritmi ratkaisee ja miten se sen ratkaisee?
    3. [2 p] Minkä ongelman PFF (Page Fault Frequency) algoritmi ratkaisee ja miten se sen ratkaisee?