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.

  1. [9 p] IEEE standardin mukaiset 32 bitin liukuluvut.
    1. [2 p] Miten liukuluvut eroavat reaaliluvuista? Anna konkreettinen esimerkki.
    2. [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. [2 p] Mitkä ovat lukujen 1.0, -0.25 ja 16.0 IEEE standardin mukaiset esitysmuodot?
    4. [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).

     
  2. [9 p] Keskeytykset
    1. [1 p] Määrittele käsite "keskeytys". Mitä yllättävää keskeytyksissä voi olla?
    2. [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.
    3. [2 p] Miten laitteisto käsittelee keskeytykset? Anna täsmällinen käskyjen suoritussyklitason esimerkki.
    4. [2 p] Miten käyttöjärjestelmä käsittelee keskeytykset? Anna täsmällinen esimerkki, josta selviää, miten keskeytyksen käsittelyn jälkeen toimitaan.

     
  3. [9 p] Ohjelma ja sen suoritus.
    1. [2 p] Miten tekstimuotoisesta (esim. Java tai C) ohjelmasta saadaan järjestelmässä suoritettava ohjelma?
    2. [3 p] Mikä on prosessi ja mikä on sen esitysmuoto järjestelmässä?
    3. [2 p] Mitkä ovat järjestelmässä olevan prosessin elinkaaritilat ja niiden merkitykset?
    4. [2 p] Mitä ovat etuoikeutetut (privileged) prosessit, miten ne eroavat tavallisista (user) prosesseista ja miksi niitä tarvitaan?

     
  4. [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.
    1. Toteuta ttk-91 symbolisella konekielellä lauseke T[i,j] = x.
    2. 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.
    3. 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