|
Tehtävät 1 ja 3 arvosteli Jukka Manner, tehtävät 4 ja 5 arvosteli Mikko Rauhala ja tehtävän 2 arvosteli Auvo Häkkinen.
------------------------------------------------------------------------ Käyttöjärjestelmät I, kurssikuulustelu 9.11.2000 Tehtävä 1/Jukka ------------------------------------------------------------------------ a) etuoikeutetut käskyt (3 p.) - suoritetaan etuoikeutetussa tilassa (1 p.) - hyöty: erilaiset suojaukset (1 p.) - jos hyödyistä eritelty erikoisesti muistin suojaus ja tiedostojen suojaus (1 p.) b) Looginen osoite ja fyysinen osoite (2 p.) - looginen on osoite ohjelman alun suhteen (esim. kaikille prosesseilla 0) - fyysinen on osoite todellisessa muistissa - mahdollistaa joustavan ohjelmoinnin, kun ohjelmoijan ei tarvitse huolehtia ohjelman todellisesta sijainnista levyllä (nuo selitetty 1 p.) - ohjelma voi siis sijaita eri paikoissa muistissa eri suorituskerroilla - osoitemuunnos tehdään ajonaikana MMU:ssa (1 p.) - yksi piste selityksestä, yksi piste hyödyistä jos a) erityisen hyvin selitetty tai b) otettu huomioon tuo MMU ja "on-the-fly" muunnos c) levyvälimuisti - sijaitsee keskusmuistissa - tarkoitus tallettaa usein käsiteltyjä levylohkoja, jotta uusi käsittely ei aiheuttaisi levy-operaatiota - perustuu tiedon paikallisuuteen ja ajallisesti lähekkäisiin hakuihin (noista tuli 1 p.) - kun haetaan yhta tavua, luetaan levyltä kyseinen levylohko, joka sitten pistetään välimuistiin, sillä pian tarvitaan todennäköisesti seuraavaa tavua vierestä. Samalla voi hakea myös pari muutakin viereistä lohkoa - tarkeää: toimii molempiin suuntiin: sekä lukemisiin että kirjoittamisiin yhtälailla (1 p.) - kirjoitettaessa välimuistin lohko merkataan muuttuneeksi, ja nämä lohkot kirjoitetaan sopivin väliajoin, tai kun tarvitaan lisää tilaa, levylle takaisin - vain lukutarkoituksessa olleita muuttumattomia lohkoja ei tarvitse kirjoittaa d) DMA - prosessori aloittaa siirron antamalla DMA ohjaimelle tiedot: mistä, mihin, kuinka paljon - tämän jälkeen laite käynnistyy siirtämään tietoa, jona aika prosessori voi suorittaa muita prosesseja - kun siirto on valmis, laite aiheuttaa keskeytyksen, jonka prosessori tutkii, tsekkaa myös, onnistuiko siirto, ei pelkästää, että siirto loppunut - siirroon pyytänyt prosessi pääsee takaisin ready-jonoon - 2 p., jos kerrottu, miten DMA toimii, selitetty, että prosessorin kuormitus tippuu JA miten homma päättyy ------------------------------------------------------------------------ Käyttöjärjestelmät I, kurssikuulustelu 9.11.2000 Tehtävä 2/Averell ------------------------------------------------------------------------ Pyydetty tilakaavio löytyy kurssikirjan sivulta 113 (Fig. 3.7). Tilasiirtymien selitykset löytyvät 5:n tilan kaavion (sivut 107-110) ja tämän 7:n tilan kaavion yhteydestä (sivut 113-116). Tilasiirtymät on käsitelty luennolla ja myös harjoituksissa on ollut yksi tehtävä tästä kaaviosta (Harj 4 tehtävä 2). Tehtävä olikin osattu yleensäottaen hyvin, keskiarvo 10.7. Vain viidessä vastauksessa pistesaldo tipahti alle 6 pisteen. Pisteytys: - jos kaavio piirretty oikein = + 4p - heittovaihdon lisäsiirtymät selitetty oikein = + 3p - READY <-> RUNNING siirtymät selitetty oikein = + 2p - RUNNING -> BLOCKED -> READY selitetty oikein = + 2p - NEW ja EXIT tilat mukana ja selitetty oikein = + 1p Kaiken ei tarvinnut olla ihan prikulleen kohdallaan, esimerkiksi jos SUSPEND-tilojen idea oli selitetty oikein, sai ko. osasta täyden pistepotin vaikka joku siirtymä (yleensä B&S -> B) olisikin unohtunut. Myöskään siirtymän EXIT -> puuttumisesta ei sakotettu (sitä ei ole piirretty kirjassakaan, selitys tilan olemassaololle toki löytyy). On hieman epätäsmällistä sanoa esim. READY->RUN siirtymästä, että 'prosessi pääsee suoritukseen', vaan pitää selittää minkä (tapahtuman) seurauksena se pääsee suoritukseen. Sitähän kysyttiin! NEW- ja EXIT-tilojen olemassaolo jäi aika monelta perustelematta: ei selitetty minkä tapahtuman seurauksena tullaan NEW-tilaan, eikä minkä tapahtuman seurauksena poistutaan EXIT-tilasta Aika monessa vastauksessa oli selitetty vain, että I/O-pyyntö ja sen valmistumisen odottelu vievät prosessin BLOCKED-tilaan. Se ei ole kuitenkaan ainut, joten parempi vastata 'esim. I/O-pyyntö...' ------------------------------------------------------------------------ Käyttöjärjestelmät I, kurssikuulustelu 9.11.2000 Tehtävä 3/Jukka ------------------------------------------------------------------------ - valitettavasti monta prosessoria ja "paljon" muistia ei kelpaa tähän tehtävään - ei myöskään "keskuskone ja siihen monta terminaalia", ei säikeet, DMA, välimuistit... noi joko on kaikissa, myös "yhden ajon" järjestelmässä tai sitten nuo eivät ole LAITTEISTOpiirteitä, jotka on selvästi selitetty mm. kalvoissa. - no, mitä sitte hyväksyttiin: (1 p. jos mainittu ja toinen piste, jos lisäksi selitetty -> 2p. per asia) * erilaiset _laitekeskeytykset_ * _keskeytyskäsittelijän_ käynnistäminen keskeytyksen seurauksena, rekistereiden tallettaminen, etuoikeutettuun tilaan siirtyminen * mm. tämän takia (ja muistin- ja tiedostojen suojaus) _etuoikeutettu tila ja käskyt_ (tehtävä 1.) * aikaviipalekello ja aikaviipaleet * ajonaikainen osoitemuunnos laitetoimintona (tehtävä 1.) Tehtävän vastaus on käyty läpi harjoituksen 3 tehtävässä 1. Asiat on käsitelty kurssikirjan luvussa 2. ------------------------------------------------------------------------ Käyttöjärjestelmät I, kurssikuulustelu 9.11.2000 Tehtävä 4/Mikko ------------------------------------------------------------------------ Virtuaalimuistijärjestelmän toiminta: * Prosessit käyttävät loogista (virtuaali)muistiavaruutta, eivätkä ole tietoisia siitä, missä niiden käyttämät koodi ja data fyysisesti sijaitsevat. * Sivuttavan ratkaisun kuvaus on riittävä. - Prosessit jaetaan sivuihin ja fyysinen muisti (ja sekundäärinen muisti) sivutiloihin, joihin sivuja ajonaikaisesti jaetaan tilanteeseen sopivasti. - MMU:n, prosessorin muistinhallintayksikön tehtävänä on jakaa virtuaaliosoite sivunumeroon (alkuosa) ja siirtymään (loppuosa). Virtuaalisen sivunumeron perusteella voidaan hakea TLB:stä tai prosessikohtaisesta tai käänteisestä, hakemistolla varustetusta sivutaulusta vastaava fyysinen sivu (jos muistissa) ja katenoida sivun alkuosoitteeseen siirtymäosa. * Muunnos loogisesta osoitteesta fyysiseksi osoitteeksi tehdään ajonaikaisesti MMU:ssa seuraavissa vaiheissa: - Tarkastetaan ensin TLB:stä, onko haluttu sivutaulualkio talletettuna sinne. Jos on, voidaan muunnos tehdä nopeasti TLB:n perusteella hakematta keskusmuistin sivutauluja. - Jos ei löytynyt, haetaan keskusmuistin sivutaulusta virtuaalista sivua vastaavaa alkiota. - Tarkistetaan, onko sivu keskusmuistissa ollenkaan (Present-bitti). Jos ei, aiheutuu sivunpuutoskeskeytys, ja käyttöjärjestelmä käynnistää sivunoudon levyltä. (Joku toinen prosessi päässee suoritukseen kunnes sivu on noudettu. Saatetaan myös samantien hakea muitakin sivuja tämän ympäriltä.) - Kun sivu on keskusmuistissa (hakua ei tarvittu tai se on jo suoritettu), kopioidaan vastaava sivutaulun alkio TLB:hen ja aloitetaan keskeytyksen aiheuttanut käsky alusta. Nyt tieto fyysisestä sivusta löytyy TLB:stä, ja osoitus voidaan suorittaa. - Jos fyysinen muisti on täynnä, levyhaun yhteydessä joudutaan poistamaan jokin (mieluusti vähän tarvittu) sivu; tässä yhteydessä tarkistetaan, onko sivua muutettu sen jälkeen, kun se on viimeksi ladattu levyltä muistiin (M-bitti). Jos ei, muutoksia ei tarvitse viedä sekundääriseen muistiin ennen korvausta. * TLB:n sisältö merkitään epävalidiksi (V-bitti) prosessinvaihdon yhteydessä (tai tauluihin on merkitty muunnosriviä vastaava prosessinumero) Pisteytys: Jokusen pienen yksityiskohdan puute ei vähennä pisteitä, mutta kasautuessaan vähentävät lineaarisesti. Erityisesti painotettuja asioita pisteytyksen kannalta ovat loogiset, prosessikohtaiset osoitteet, sivutaulut ja ajonaikainen muunnos loogisesta fyysiseen osoitteeseen vaiheittain selitettynä. ------------------------------------------------------------------------ Käyttöjärjestelmät I, kurssikuulustelu 9.11.2000 Tehtävä 5/Mikko ------------------------------------------------------------------------ Käyttöjärjestelmän keskeiset tehtävät ovat: * Prosessien suoritusympäristön tarjoaminen - Käynnistys, lopetus, vuorottaminen * Muistinhallinta - Muistin varaus, vapautus, suojaus * Tiedostonhallinta - Luonti, tuhoaminen, luku, kirjoitus, suojaus, (lukitus) * Siirräntä - Luku, kirjoitus I/O-laitteille, keskeytyskäsittely - Tarvittaessa poissulkeminen * Virheiden hallinta ja niistä toipuminen - Virheet laitetoiminnoissa ja poikkeukset prosessien suorituksessa * Käyttöliittymän tarjoaminen käyttäjälle Pisteytys: 10 pistettä yllämainitut asiat sisältävästä vastauksesta. Yksittäisen pienen yksityiskohdan puuttuminen ei välttämättä vaikuta, isomman kokonaisuuden puuttuminen tai useamman pikkuyksityiskohdan puute vähentää pisteitä lineaarisesti. ------------------------------------------------------------------------
Auvo Häkkinen