Tietojenkäsittelytiede (Avoin yliopisto) Tietokoneen toiminta (2 ov) Kuulustelija: Liisa Marttinen Uusintakuulustelu 4.9.2004 1. Olet kirjoittanut isohkon, useasta ohjelmamoduulista koostuvan ohjelman jollakin yleisesti käytetyllä ohjelmointikielellä 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? Mihin käytetään uudelleensijoitushakemistoa? Mitä käännöksen tuloksena saadaan? (7 p) b) Miksi tarvitaan linkittäjää? Mitä se tekee? (4 p) c) Mitä latauksessa tehdään? (2 p) d) Miten tulkitseminen eroaa tavallista käännöksen suorituksesta? (2 p) 2. Tiedon esitys ja muuttumattomuus tietokoneessa (15 p) a) Mikä on desimaalijärjestelmän luvun 43.375 binääriesitys? (4 p) b) Anna luvun -75 esitys kahden komplementtimuodossa (two's complement) (3 p) c) Mitä tarkoittaa käsite pariteettibitti? Anna esimerkki, jossa käytetään paritettibittiä tiedon muuttumattomuuden valvonnassa. (2 p) d) Mitä tarkoittaa käsite Hamming-koodi? Anna esimerkki, jossa käytetään Hamming-koodia tiedon muuttumattomuuden valvonnassa. ( 4 p) e) Mitä tarkoittavat Big Endian ja Little Endian ja miten ne liittyvät tiedon esittämiseen? (2 p) 3. Konekäskyjen suoritus (15 p) a) Mitä suorittimella tapahtuu muistipaikassa 46 olevaa konekäskyä "ADD R2, R3" suoritettaessa? Voit olettaa, että yhteenlasku voidaan suorittaa ilman virheitä. (5 p) b) Mitä laitteistossa tapahtuu, jos edellisen kohdan käskyä suoritettaessa yhteenlaskun tulos on niin suuri, että se ei mahdu tulosrekisteriin? (3 p) c) Mitä muita keskeytyksiä voi ohjelman suorituksessa tapahtua? (4 p) d) Mitä tarkoittaa "etuoikeutettu tila" (supervisor state, priviledged state) ja miten se vaikuttaa käskyjen suoritukseen? Miten sinne päästään ja miten sieltä päästään pois? (3 p) 4. Konekielistä ohjelmointia.(15 p) a) Määrittele kokonaislukuarvoinen taulukko Luvut [0:49]. (2 p) b) Lue taulukkoon näppäimistöltä 50 lukua. (3 p) c) Laadi funktio Pienin(Taulu, Koko), joka palauttaa arvonaan taulukon Taulu[Koko] pienimmän alkion arvon. Funktiota Pienin kutsutaan välittämällä parametrit Taulu ja Koko pinossa. Samoin funktio palauttaa löytämänsä pienimmän arvon pinossa. Voit olettaa, että parametrin Koko arvo on positiivinen. (6 p) d) Laadi pääohjelma, joka kutsuu funktioita Pienin etsimään taulukon Luvut [0:49] pienimmän arvon ja tulostaa saadun arvon näytölle. (4 p) Onnea ja menestystä kokeeseen! Kokeen tulokset ovat avoimen yliopiston kansliassa viimeistään 21.9.2004.