58123-3 Tietokoneen toiminta (3 ov) Koe 9.2.2000 Kuulustelija Liisa Marttinen 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? (9 p) b) Miksi tarvitaan linkittäjää? Mitä se tekee? (4 p) c) Mitä latauksessa tehdään? (2 p) 2.a) Selvitä prosessori- ja rekisteritasolla, miten kurssilla käytetyn esimerkkikoneen TTK-91:n keskussuoritin toimii suorittaessaan seuraavan käskysarjan (10 p): .... DIV R1, 200 JUMP 100 .... 100 SVC SP,=11 ; palvelupyyntö HALT b) Mitä virhetilanteita suorituksessa voi tapahtua? Miten niihin reagoidaan? (5p) 3. a) Laadi funktio Poskarvo, joka laskee taulukkoon talletettujen positiivisten lukujen lukumäärän ja keskiarvon. Taulukon osoite ja koko välitetään parametreina pinossa. Funktio palauttaa samoin pinossa laskemansa lukumäärän ja keskiarvon. (7 p) b) Laadi myös pääohjelma, joka kutsuu aliohjelmaa Poskarvo laskemaan taulukkoon Taulu talletettujen positiivisten lukujen lukumäärän ja keskiarvon. Pääohjelma tulostaa näytölle aliohjelman laskemat arvot. Taulukon Taulu koko on 100 alkiota.(5 p) c) Piirrä pinon rakenne heti kutsun jälkeen ennen aliohjelman ensimmäisen käskyn suoritusta sekä juuri ennen aliohjelmasta paluuta. (3 p) 4. Kerro millä tavalla seuraavat asiat liittyvät tietokoneen suorituskykyyn ja tehokkuuteen (15 p, a' 3p). a) kellojakso b) välimuisti c) RISC d) liukuhihna (pipeline) e) siirtoväylänleveys ja sananpituus