Tietokoneen toiminta (Avoin yliopisto) Liisa Marttinen Uusintakuulustelu 11.11.2000 1. a) Laadi funktio Summa (N,T), joka palauttaa arvonaan taulukon T[0...N-1] alkioiden summan. Funktiota Summa kutsutaan normaalin kutsumenettelyn mukaan välittämällä parametrit N ja T sekä funktion paluuarvo pinossa. Voit olettaa, että parametrin N arvo on positiivinen. (6 p) b) Laadi pääohjelma, joka kutsuu funktiota Summa laskemaan taulukkoon Taulu[0...49] jo valmiiksi talletettujen lukujen summan ja tallettaa saadun summan muistipaikkaan Sum. (6 p) c) Esitä pinon sisältö heti aliohjelmakutsun jälkeen ja juuri aliohjelmasta palattua. (3 p) 2.Selitä yksityiskohtaisesti, kuinka prosessori ja käyttöjärjestelmä toimivat, kun suorituksessa olevan prosessin aikaviipale täyttyy. Selostuksestasi tulee siis käydä ilmi vastaukset ainakin seuraaviin kysymyksiin: a)Mistä CPU tietää, että viipale on täysi? (2 p) b)Miten CPU saadaan suorittamaan käyttöjärjestelmää? (4 p) c)Miten CPU otetaan pois vanhalta prosessilta? (2 p) d)Miten se annetaan uudelle prosessille? Mille? (3 p) e)Anna esimerkkejä tilanteista, jolloin on järkevää, että keskeytyksen käsittelyn jälkeen jatketaan eri käyttäjäprosessia (user process) kuin mikä oli suoritusvuorossa keskeytyksen tapahtuessa. Anna myös esimerkkejä tilanteista, jolloin keskeytyksen jälkeen on järkevää jatkaa saman prosessin suoritusta. (4 p) 3. Käytetään esimerkkinä tietokoneesta kurssilla esitettyä TTK-91 -tietokonetta, jonka prosessorissa on rekisterit LIMIT, BASE, MAR, MBR, TR, IR, PC, SR, R0-R5, SP ja FP. a)Kuvaa prosessorin rekistereiden tasolla, miten tehdään käskynouto. (7p) b)Esitä prosessorin rekisterien tasolla, miten suoritetaan käskyt: LOAD R2, =8 (R1) MUL R2, R2 STORE R2, @R2 (6 p) c)Miten muistin sisältö muuttuu näiden käskyjen suorituksen jälkeen, kun rekisterissä R1 on aluksi 2? (2 p) 4. Oletamme, että virtuaalimuistijärjestelmässä sivun koko on 1 kB (1024 tavua) ohjelman osoiteavaruus on 1 MB (1024 x 1024) käytetään tavuosoitteita eli jokaisella tavulla on osoite. a)Miten monta alkiota on ohjelman sivutaulussa? Miten monta sivutilaa on keskusmuistissa? (3 p) b) CPU suorittaa ohjelmaa, joka viittaa muuttujaan osoitteessa 2060. Selvitä miten tämän muuttujan todellinen muistiosoite saadaan, kun viitattu sivu sijaitsee viittaushetkellä keskusmuistin sivutilassa 10. (7 p) c)Mitä tapahtuu, jos ko. sivu ei ole muistissa? Miten sivun puuttuminen havaitaan? (3 p) Tulokset avoimen yliopiston kansliassa viimeistään 27.11.2000.