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.

  1. [12 p] IEEE standardin mukaiset 32 bitin liukuluvut.
    1. [3 p] Mikä on liukuluku? Miten liukuluvut eroavat reaaliluvuista?
    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. [3 p] Mitkä ovat lukujen 1.0, -0.25 ja 16.0 IEEE standardin mukaiset 32-bittiset esitysmuodot?
    4. [3 p] Liukuluku voidaan tallettaa Little-Endian tai Big-Endian talletusmuodossa. Selitä, miten nämä eroavat toisistaan. Anna konkreettinen esimerkki (esimerkiksi luvulla 1.0).

     

  2. [12 p] Keskeytykset
    1. [3 p] Määrittele käsite "keskeytys". Mitä yllättävää keskeytyksissä voi olla?
    2. [3 p] Anna ainakin kolme olennaisesti erilaista keskeytystyyppiä. Selitä, mikä niissä on olennainen piirre verrattuna muihin keskeytystyyppeihin.
    3. [3 p] Anna ainakin 5 erilaista keskeytystä ja kerro mihin keskeytystyyppiluokkaan ne kuuluvat. Anna kuhunkin keskeytystyyppiluokkaan ainakin yksi esimerkki.
    4. [3 p] Miten laitteisto ja käyttöjärjestelmä käsittelevät keskeytykset? Anna täsmällinen esimerkki.


     
  3. [13 p] Ohjelma ja sen suoritus.
    1. [5 p] Miten tekstimuotoisesta korkean tason ohjelmointikielellä (esim. Java, C tai Fortran) kirjoitetusta ohjelmasta saadaan järjestelmässä suoritettava prosessi?
    2. [4 p] Mikä on prosessin esitysmuoto järjestelmässä? Tarkenna.
    3. [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?


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