58123-3 Tietokoneen toiminta

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)

c) Miten muistin sisältö muuttuu näiden käskyjen suorituksen jälkeen, kun rekisterissä R1 on aluksi 2? (2 p)

Kääntöpuolella on lueteltu TTK-91 -tietokoneen käskyt.


TTK-91 -tietokoneen käskyt

Tiedonsiirtokä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