Loppukoe 26.2.1999
Kirjoita jokaisen vastauspaperisi yläreunaan kurssin nimi ja kokeen päivämäärä sekä nimesi, syntymäaikasi ja allekirjoituksesi.
1. Olet kirjoittanut isohkon, useasta ohjelmamoduulista koostuvan ohjelman jollakin yleisesti käytetyllä ohjelmointikielellä, esim. C-kielellä, Javalla tai Pascalilla ja tallettanut sen tietokoneesi muistiin. Jotta ohjelmasi voidaan suorittaa, se pitää muuttaa tietokoneen ymmärtämään muotoon. Tässä tarvitaan kääntäjää, linkittäjää ja lataajaa.
a) Selvitä, mitä kääntäjä tekee. Mihin symbolitaulua tarvitaan? Entä mihin käytetään uudelleensijoitushakemistoa? Mitä käännöksen tuloksena saadaan? (8 p)
b) Miksi tarvitaan linkittäjää? Mitä se tekee? (5 p)
c) Mitä latauksessa tehdään? (2 p)
2. Moniajojärjestelmässä keskusmuistissa on useita prosesseja, joista korkeintaan yksi on kulloinkin suorituksessa.
a) Mikä on prosessi? (1 p)
b) Mitä tarkoittaa olla suorituksessa (running)? Mitä muita tiloja prosessilla on? (4 p)
c) Milloin ja miten suorituksessa oleva prosessi siirtyy johonkin toiseen tilaan? Selvitä
kaikki mahdolliset siirtymät suoritustilasta muihin tiloihin. (6 p)
d) Mitä menetelmiä vuorottaja (scheduler) voi käyttää valitessaan kulloinkin suoritettavan prosessin? (4 p)
3. a) Laadi TTK-91 -tietokoneen symbolisella konekielellä ohjelma, joka laskee taulukon
Taulu[0...49] alkioihin talletettujen lukujen summan ja tallettaa summan muistipaik-
kaan Sum. (6 p)
b) 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 ja funktion paluuarvo pinossa. Voit olettaa, että parametrin N arvo on positiivinen. (5 p)
c) Laadi pääohjelma, joka kutsuu funktiota Summa laskemaan taulukkoon Taulu[0...49] talletettujen lukujen summan ja tallettaa saadun summan muistipaikkaan Sum. (4 p)
4. 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)
Kääntöpuolella on lueteltu TTK-91 -tietokoneen käskyt.
TTK-91 -tietokoneen käskytTiedonsiirtokäskyt LOAD STORE IN OUT
Aritmeettiset ja loogiset käskyt ADD SUB MUL DIV MOD NOT AND OR XOR SHL SHR COMP
Haarautumiskäskyt JUMP JNEG JZER JPOS JNNEG JNZER JNPOS JLES JEQU JGRE JNLES JNEQU JNGRE
Pinokäskyt PUSH POP
Aliohjelmakäskyt CALL EXIT
Palvelupyyntö SVC
Muut käskyt NOP