------------------------------------------------------------------------- Käyttöjärjestelmät I, Erilliskoe 13.1.2004 Tehtävä 1 / Averell ------------------------------------------------------------------------- a) Ohjausyksikkö tietää käskysyklin vaiheesta onko se tekemässä käskynoutoa ("instruction fetch") vai onko se noutamassa dataa ("execute instruction"). ks. kuva 1.7. (2p) b) kirja s. 20 (2p) c) Tismalleen ottaen: ei mistään. Aina KJ:n koodia suorittamaan siirtyessä (keskeytys!) CPU asettaa itsensä etuoikeutettuun tilaan, mutta KJ voi kääntää tuon tilabitin halutessaan pois päältä. Siis: jos etuoikeutetun tilan bitti on päällä, CPU "tietää" suorittavansa KJ:tä. Mutta jos bitti ei ole päällä, suoritettava käsky voi kuulua sovellukseen tai KJ:hin. Tieto ei ole tarpeen. (2p) d) kirja s 62. Luettele (2p) & perustele (2p) e) kirja s. 30, 335-337 Mitä&Miksi (2p), esimerkit (3p) Vastatkaa selkeästi annettuihin kysymyksiin, muistakaa perustella sanottavanne! ------------------------------------------------------------------------- Käyttöjärjestelmät I, Erilliskoe 13.1.2004 Tehtävä 2 / Averell ------------------------------------------------------------------------- a) kirja s. 537: tdstoattribuutit - nimi, omistaja (uid,gid), käyttöoikeudet, koko, lohkonumerot, aikaleimoja kirja s. 129, 147: PCB - omistaja (uid,gid), tdstokuvaajataulu (file descriptor), työhston polkunimi, luotavien tdstojen oletusoikeudet Suojaukseen liittyvät asiat (2p), nimi&työhston polku (2p), lohkonumerot&koko (2p), tdstokuvaajat (1p), muut (aikaleimat, tyyppi, oletusoikeudet) (+1p) [Max kuitenkin 7 pistettä] HUOM: pelkkä luetteleminen (=4p) ei riitä, pitää kertoa mihin / milloin käytetään (=3p). Esim. suojaus tarkistetaan vain avattaessa, tdstokuvaajan kautta KJ pääsee kiinni avatun tdston attribuutteihin, nimen ja työhston polkunimen perusteella voidaan etsiä tdstoattribuutit levyltä, lohkonumeroiden ja koon perusteella osataan noutaa oikea pätkä levyltä muistiin, jne.. - PCB:n yhteydessä (liittyy tdstokuvaajiin) on tyypillisesti myös tdston luku/kirjoituspositio sekä avaamisen yhteydessä annettu käyttötapa (tavallaan näkemysasia lasketaanko ne kuuluvaksi PCB:hen...) b) kirja 543-549, 2p+2p c) kirja 549-551, 2p+2p ------------------------------------------------------------------------- Käyttöjärjestelmät I, Erilliskoe 13.1.2004 Tehtävä 3 / Averell ------------------------------------------------------------------------- 1) KJ valitsee uuden prosessin suoritukseen - nollaa TLB:n validibitit - aseta PTR = uuden prosessin sivutaulun fyys. osoite (löytyy PCB:stä) - kopioi muut rekisterit ja prosessi pääsee suoritukseen 2) Aluksi MMU selvittää millä sivulla virtuaaliosoitetta vastaava fyysinen osoite sijaitsee: sivu = 0 virt. osoitteen alkupään bitit siirtymä = 0 virt. osoitten loppuppän bitit (10 kpl) 3) Koska sivun 0 tietoja ei löydy TLB:stä, MMU noutaa muistista TLB:hen tämän prosessin sivutaulun alkion 0 osoitteesta PTR + 0 4) Sivutaulun alkiosta käy ilmi, ettei sivu 0 ole muistissa (läsnäolobitti P=0), joten MMU aiheuttaa sivunpuutoskeskeytyksen. 5) KJ käsittelee keskeytyksen ja laittaa laiteohjaimen noutamaan puuttuvaa sivua muistiin (KJ etsi vapaan sivutilan esim 77). Prosessin tilaksi tulee Blocked. 6) Kun ohjain siirtää, CPU voi suorittaa muita prosesseja. 7) Tulee "siirto valmis" keskeytys. KJ kirjaa sivutauluun sivun 0 kohdalle P=1 ja sivutilanro=77, sekä siirtää prosessin READY tilaan. 8) Aikanaan prosessi pääsee uudelleen suoritukseen. - kohdat 1) - 3) kuten edellä 9) Nyt sivutaulun alkiosta käy ilmi, että sivu 0 on muistissa ja MMU voi tehdä osoitemuunnoksen. fyys.os = katenoi(sivutilanro, siirtymä) 10) Tällä osoitteella etsitään ensin välimuistista ja vasta sitten haetaan muistista. 11) Osoitteille 1..510 osoitemuunnos onnistuu helposti, sillä nyt TLB:stä löytyy valmiiksi sivuun 0 liittyvät tiedot. 12) Kun prosessi viittaa osoitteeseen 2001, se sijaitseekin sivulla 1. Koska sivun 1 tiedot eivät ole TLB:ssä, toistuu kohdat 3) - 10) mutta sivunumerolle 1. 13) Seuraavalla viitteellä 2002 osoitemuunnoksessa tarvittavat tiedot löytyvät TLB:stä, joten osoitemuunnos on nopeaa. 14) Viite osoitteeseen 500 osuu sivulle 0. Sen tietoja ei löydy TLB:stä (validibitit nollattu välillä, CPU suoritti muita prosessja), ja sivutaulun alkio on noudettava muistista fyysisestä osoitteesta PTR + 0 (ko. muistipaikan sisältö voi löytyä toki välimuististakin!). 15) Osoitemuunnos osoitteille 500-510 kuten kohdat 9) - 11) Karkesti ottaen kukin kohta 1 piste. Täydet pisteet sai, jos kaikki yleisperiaatteet olivat vakuuttavasti kohdallaan, vaikkei esitys olisikaan ollut aivan yhtä täsmällinen kuin tässä annettu. Välimuistista ei tarvinnut mainita mitään. ------------------------------------------------------------------------- Käyttöjärjestelmät I, Erilliskoe 13.1.2004 Tehtävä 4 / Averell ------------------------------------------------------------------------- PCB: kirja s. 129 (146), 155 TCB: kirja s. 155 (Lisää: s. 181, 187) - tunnistus (2p) - muistialueet, pino (3p) - tdstot (3p) - tilatietoa (2p) - tallealue rekistereille (3p) - prioriteetti, aikalaskurti, ym (2p) Pelkkä luetteleminen ei riitä, pitää kertoa mihin / milloin käytetään. -------------------------------------------------------------------------