581305-6 Tietokoneen toiminta, 2 ov, loppukoe 26.1.2001
(Other side in English
)
Kirjoita jokaiseen vastauspaperiisi seuraavat tiedot:
oma nimesi, henkilötunnus, kokeen tai kurssin nimi,
nimikirjoitus ja sivunumero.
- [15 p] Keskeytykset (interrupt, trap, exception, ...)
- Anna neljä eri tyyppistä keskeytystä?
Kerro, miten tyypit eroavat toisistaan.
- Miten keskeytys näkyy suoritusvuorossa olevalle ohjelmalle?
- Miten keskeytys näkyy suorittimelle (processor)?
- Miten keskeytys käsitellään?
- Miksi keskeytysten käsittely voidaan estää? Anna esimerkki.
- Miten keskeytysten ollessa estettynä tapahtuva keskeytys käsitellään?
- [15 p] Tiedon esitysmuodot
- [5 p] Miten laitteisto tietää, sisältääkö jokin muistipaikka
kokonaisluvun, liukuluvun vai konekäskyn?
Mitä tapahtuu, jos kokonaislukujen yhteenlaskukäskyä suoritettaessa
argumenttirekisterissä onkin liukuluku kokonaisluvun asemesta?
- [5 p] Oletetaan, että suorittimella ei ole toteutettu
totuusarvojen (boolean) tiedonesitystä,
eli siinä ei siis ole totuusarvoja käyttäviä konekäskyjä.
Java-kielessä on kuitenkin totuusarvoinen tietotyyppi boolean,
jonka arvoalue on {true, false}, ja erityisesti
pätee, että Javan boolean ei ole Javan kokonaisluku ja että
Javan kokonaisluvut eivät ole Javan boolean.
Voidaanko em. suorittimella suorittaa Java-ohjelmia?
Jos voidaan, niin miten? Jos ei voida, niin miksi ei?
- [5 p] Oletetaan, että Hamming koodia (parillinen pariteetti) käytetään
turvaamaan kahdeksan data-bitin sisäistä väylää.
Montako pariteetti-bittiä tarvitaan (8 tietobitin lisäksi)
virheenkorjaavaa Hamming koodia varten?
Anna esimerkki pariteettibittien sijainnista ja niiden arvoista,
kun siirrettävänä on 8-bittinen tavu
0111 0101 ('u').
Mitä kaikkea laitteistossa tapahtuu, jos em. tavussa 4. bitti vasemmalta on muuttunut matkalla ja tavu tulee perille muodossa
0110 0101 ('e')?
- [15 p] Muistihierarkia
- Minkä ongelman välimuisti ratkaisee?
Millä tavoin ratkaisu on toteutettu?
Miten sovelluksen ohjelmoija voi parhaiten vaikuttaa ratkaisun toimivuuteen?
Mitä tarkoitavat termit "osuma" ja "huti" tässä yhteydessä
ja mikä on hudin hinta?
- Minkä ongelman virtuaalimuisti ratkaisee?
Millä tavoin ratkaisu on toteutettu?
Miten sovelluksen ohjelmoija voi parhaiten vaikuttaa ratkaisun toimivuuteen?
Mitä tarkoitavat termit "osuma" ja "huti" tässä yhteydessä
ja mikä on hudin hinta?
- Minkä ongelman osoitteenmuunnostaulukko
(Translation Lookaside Buffer, TLB) ratkaisee?
Millä tavoin ratkaisu on toteutettu?
Miten sovelluksen ohjelmoija voi parhaiten vaikuttaa ratkaisun toimivuuteen?
Mitä tarkoitavat termit "osuma" ja "huti" tässä yhteydessä
ja mikä on hudin hinta?
- [15 p] Konekielinen ohjelmointi
Tarvitsemme kokonaislukuarvoisen
funktion int FindMin (var int Arr, int N).
Funktiolla FindMin on siis kaksi parametria:
kokonaislukuarvoinen taulukko Arr ja
kyseisen taulukon alkioiden lukumäärä N.
Funktio palauttaa arvonaan taulukon Arr
pienimmän alkion arvon.
Parametri N on arvoparametri ja parametri Arr on viiteparametri.
Funktio toteutetetaan käyttäen suositusten mukaista aliohjelmien (funktioiden)
toteutustapaa ja kutsumekanismia.
- [6 p] Toteuta ttk-91 symbolisella konekielellä edellämainittu funktio FindMin.
- [5 p] Anna ttk-91 symbolisella konekielellä käskyt, joilla
em. funtiota FindMin apuna käyttäen tulostetaan 35-alkioisen taulukon
Speed pienimmän alkion arvo.
- [4 p] Miten funktiota FindMin tulisi muuttaa, jos se palauttasikin
pienimmän alkion arvon asemesta pienimmän alkion osoitteen?
TTK-91 konekielen käskyt ovat:
NOP, STORE, LOAD, IN, OUT,
ADD, SUB, MUL, DIV, MOD,
AND, IR, XOR, SHL, SHR, COMP,
JUMP,
JNEG, JZER, JPOS, JNNEG, JNZER, JNPOS,
JLES, JEQU, JGRE, JNLES, JNEQU, JNGRE,
CALL, EXIT, PUSH, POP, PUSHR, POPR,
SVC