Tietokoneen toiminta (2 ov) Avoin yliopisto, kesä 2000 /Liisa Marttinen Koetehtävät 28.8.2000 1. a) Taulukkoon on talletettu ei-negatiivisia lukuja esim. opiskelijoiden kokeesta saamat pistemäärät. Lukujen määrää ei tiedetä, mutta taulukkoon talletettu negatiivinen luku ilmoittaa varsinaisten lukujen loppuneen. Tee aliohjelma karvo, joka laskee taulukkoon talletettujen lukujen keskiarvon. Parametrien välitykseen käytetään pinoa. Aliohjelmalle annetaan pinossa parametrina taulukon osoite ja aliohjelma palauttaa pinossa laskemansa keskiarvon. (6 p) b) Tee myös pääohjelma, joka kutsuu aliohjelmaa karvo taulukkoon Pisteet talletettujen koepisteiden keskiarvon laskemiseen ja tulostaa saamansa keskiarvon. Voit olettaa että pistemäärät on jo valmiiksi talletettu halutulla tavalla taulukkoon Pisteet. (4 p) c) Piirrä pinon rakenne heti kutsun jälkeen ennen aliohjelman ensimmäisen käskyn suoritusta sekä juuri ennen aliohjelmasta paluuta. (2 p) 2. 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. (6 p) b) Esitä prosessorin rekisterien tasolla, miten suoritetaan käskyt: LOAD R2, =7 (R1) MUL R2, R2 STORE R2, @R2 (5 p) c) Miten muistin sisältö muuttuu näiden käskyjen suorituksen jälkeen, kun rekisterissä R1 on aluksi 3? (2 p) 3. a) Mikä on prosessi? Mitä tietoja käyttöjärjestelmä ylläpitää prosesseista? Mihin tiedot on talletettu? (4 p) b) Prosessin elinkaarta voidaan kuvata tiloina ja tilojen välisinä siirtyminä. Piirrä kaaviokuva, jossa on esitetty prosessin elinkaaren tilat ja tilojen väliset siirtymät. Selvitä myös, miksi ja milloin prosessi siirtyy tilasta toiseen. (8 p) 4. Koneessa on käytössä virtuaalimuisti (virtual memory) ja sivun koko on 1024 tavua. a) Kun ohjelmassa on suoritettavana käsky LOAD R1, 2001, niin kuinka saadaan selville, mistä muistipaikasta data noudetaan? (4 p) b) Mitä hyötyä on osoitemuunnospuskurista TLB (Translation Lookaside Buffer) virtuaalimuistin yhteydessä? Vai onko siitä ylipäänsä mitään hyötyä? Mitä TLB:hen on talletettu? (4 p) c) Onko mahdollista, että ohjelman viittaamaa osoitetta ei löydy keskusmuistista? Miten ohjelmalle tällöin käy? (2 p) d) Miksi ja missä välimuistia (cache) käytetään? Onko siitä hyötyä myös virtuaalimuistia käytettäessä? (3 p)