581305-6 Tietokoneen toiminta, 4 op, koe 2.5.2013
Kirjoita jokaiseen vastauspaperiisi seuraavat tiedot:
nimi ja nimikirjoitus, opiskelijanumero ja kurssin nimi.
Kuhunkin tehtävään riittää 1-2 sivun vastaus.
- [12 p] IEEE standardin mukaiset 32 bitin liukuluvut.
- [3 p] Mikä on liukuluku? Miten liukuluvut eroavat reaaliluvuista?
- [3 p] Mikä on IEEE standardin mukainen liukulukujen esitystapa?
Mitä tarkoittaa esitysmuodon normalisointi? Mitä hyötyä siitä on ja milloin sitä käytetään?
- [3 p] Mitkä ovat lukujen 1.0, -0.25 ja 16.0 IEEE standardin mukaiset 32-bittiset esitysmuodot?
- [3 p] Liukuluku voidaan tallettaa Little-Endian tai Big-Endian talletusmuodossa. Selitä, miten nämä eroavat toisistaan. Anna konkreettinen esimerkki (esimerkiksi luvulla 1.0).
- [12 p] Keskeytykset
- [3 p] Määrittele käsite "keskeytys". Mitä yllättävää keskeytyksissä voi olla?
- [3 p] Anna ainakin kolme olennaisesti erilaista keskeytystyyppiä. Selitä, mikä niissä on olennainen piirre verrattuna muihin keskeytystyyppeihin.
- [3 p] Anna ainakin 5 erilaista keskeytystä ja kerro mihin keskeytystyyppiluokkaan ne kuuluvat. Anna kuhunkin keskeytystyyppiluokkaan ainakin yksi esimerkki.
- [3 p] Miten laitteisto ja käyttöjärjestelmä käsittelevät keskeytykset? Anna täsmällinen esimerkki.
- [13 p] Ohjelma ja sen suoritus.
- [5 p] Miten tekstimuotoisesta korkean tason ohjelmointikielellä (esim. Java, C tai Fortran) kirjoitetusta ohjelmasta saadaan järjestelmässä suoritettava prosessi?
- [4 p] Mikä on prosessin esitysmuoto järjestelmässä? Tarkenna.
- [4 p] Mikä ovat etuoikeutettu (privileged) prosessin suoritustila? Miksi sitä tarvitaan?
Miten se eroaa tavallisesta (user) suoritustilasta?
Miten etuoikeutettuun suoritustilaan päästään ja miten sieltä palataan tavalliseen suoritustilaan?
-
[13 p] Titokone, TitoTrainer
ja ttk-91. Oletetaan, että 2-ulotteinen 60-alkioinen taulukko T[6,10] on valmiiksi määriteltynä globaalina tietorakenteena. Taulukossa T siis 6 riviä (rivit 0-5) ja 10 saraketta (sarakkeet 0-9). Taulukko T on talletettu riveittäin. Muuttujat i, j, x ja pT on määritelty pääohjelmatasolla. Voit olettaa, että 0 ≤ i < 6 ja 0 ≤ j < 10.
- [5 p] Toteuta ttk-91 symbolisella konekielellä lauseke x =T[i, j].
- [4 p] Oletetaan nyt, että taulukon T tarkka sijainti muistissa on tuntematon, mutta osoitinmuuttujan pT arvona on T:n osoite. Toteuta ttk-91 symbolisella konekielellä lauseke x = T[i, j].
- [4 p] Oletetaan nyt, että T on valmiiksi määritelty globaali tietorakenne, mutta se onkin talletettu sarakkeittain. Toteuta ttk-91 symbolisella konekielellä lauseke x = T[i, j].
Noudata suositusten mukaista aliohjelmien (funktioiden) kutsumekanismia.
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