581305-6 Tietokoneen toiminta, 4 op, koe 16.8.2013
Kirjoita jokaiseen vastauspaperiisi seuraavat tiedot:
nimi ja nimikirjoitus, opiskelijanumero ja kurssin nimi.
Kuhunkin tehtävään riittää noin 1-2 sivun vastaus.
- [9 p] IEEE standardin mukaiset 32 bitin liukuluvut.
- [2 p] Miten liukuluvut eroavat reaaliluvuista?
Anna konkreettinen esimerkki.
- [3 p] Mikä on IEEE standardin mukainen liukulukujen esitystapa?
Mitä tarkoittaa esitysmuodon normalisointi? Mitä hyötyä siitä on ja milloin sitä käytetään?
- [2 p] Mitkä ovat lukujen 1.0, -0.25 ja 16.0 IEEE standardin mukaiset esitysmuodot?
- [2 p] Liukuluku voidaan tallettaa Little-Endian tai Big-Endian talletusmuodossa. Selitä, miten nämä eroavat toisistaan. Anna joku konkreettinen esimerkki (esimerkiksi luvulla 1.0).
- [9 p] Keskeytykset
- [1 p] Määrittele käsite "keskeytys". Mitä yllättävää keskeytyksissä voi olla?
- [4 p] Minkälaisia oleellisesti erilaisia keskeytystyyppejä on olemassa? Anna ainakin kolme erilaista keskeytystyyppiä ja selitä, mikä niissä on olennaista. Anna ainakin 6 erilaista keskeytystä ja kerro mihin keskeytystyyppiluokkaan ne kuuluvat. Anna kuhunkin keskeytystyyppiluokkaan ainakin yksi esimerkki.
- [2 p] Miten laitteisto käsittelee keskeytykset? Anna täsmällinen käskyjen suoritussyklitason esimerkki.
- [2 p] Miten käyttöjärjestelmä käsittelee keskeytykset? Anna täsmällinen esimerkki, josta selviää, miten keskeytyksen käsittelyn jälkeen toimitaan.
- [9 p] Ohjelma ja sen suoritus.
- [2 p] Miten tekstimuotoisesta (esim. Java tai C) ohjelmasta saadaan järjestelmässä suoritettava ohjelma?
- [3 p] Mikä on prosessi ja mikä on sen esitysmuoto järjestelmässä?
- [2 p] Mitkä ovat järjestelmässä olevan prosessin elinkaaritilat ja niiden merkitykset?
- [2 p] Mitä ovat etuoikeutetut (privileged) prosessit, miten ne eroavat tavallisista (user) prosesseista ja miksi niitä tarvitaan?
-
[9 p] Titokone, TitoTrainer
ja ttk-91. Oletetaan, että 2-ulotteinen 80-alkioinen taulukko T[8,10] on valmiiksi määriteltynä globaalina tietorakenteena. Taulukossa T on siis 8 riviä (rivit 0-7) 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 < 8 ja 0 ≤ j < 10.
- Toteuta ttk-91 symbolisella konekielellä lauseke T[i,j] = x.
- Oletetaan nyt, että taulukon T tarkka sijainti muistissa on tuntematon, mutta osoitinmuuttujan pT arvona on T:n osoite. Toteuta ttk-91 symbolisella konekielellä lauseke T[i,j] = x.
- Oletetaan taas, että T on valmiiksi määritelty globaali tietorakenne, mutta se onkin talletettu nyt sarakettain. Toteuta ttk-91 symbolisella konekielellä lauseke T[i,j] = x.
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