581305-6 Tietokoneen toiminta, 4 op, koe 4.2.2014   

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 32-bittinen 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] 32-bittinen 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] Konekäskyjen suoritus.
    1. [3 p] Määrittele käsite "käskyjen suoritussykli".
      Mitkä ovat sen vaiheet ja mitä vaiheissa tapahtuu?
      Anna konkreettinen konekäskytason esimerkki käyttäen konekäskyä "ADD R1, T(R2)".
    2. [2 p] Mikä on etuoikeutettu käskyjen suoritustila, mihin sitä tarvitaan ja kuinka se on käytännössä toteutettu käskyjen suoritussyklissä?
      Miten siitä palataan normaaliin käskyjen suoritustilaan?
    3. [2 p] Mitä ovat keskeytykset (interrrupts), mihin niitä tarvitaan ja kuinka ne on käytännössä toteutettu käskyjen suoritussyklissä?
      Anna konkreettinen konekäskytason esimerkki käyttäen jotain konekäskyn "ADD R1, T(R2)" suoritukseen liittyvää keskeytystä.
    4. [2 p] Miten käyttöjärjestelmä käsittelee keskeytykset?
      Miten keskeytyksen käsittelyn jälkeen palataan keskeytyneen ohjelman suorittamiseen?
      Anna konkreettinen konekäskytason esimerkki käyttäen jotain konekäskyn "ADD R1, T(R2)" suoritukseen liittyvää keskeytystä.
       
  3. [9 p] Ohjelman suoritus järjestelmässä.
    1. Mitä tarkoittaa, kun prosessi P on suoritus tilassa (running)?
      Miten ja milloin se pääsee siihen tilaan?
      Miten se pääsee sieltä pois ja mihin tilaan se silloin siirtyy?
      Miten käyttöjärjestelmä toteuttaa tuon tilasiirtymän? Mitä silloin tapahtuu?
    2. Mitä tarkoittaa, kun prosessi P on valmis suoritukseen tilassa (ready-to-run)?
      Miten ja milloin se pääsee siihen tilaan?
      Miten se pääsee sieltä pois ja mihin tilaan se silloin siirtyy?
      Miten käyttöjärjestelmä toteuttaa tuon tilasiirtymän? Mitä silloin tapahtuu?
    3. Mitä tarkoittaa, kun prosessi P on odotus tilassa (waiting, blocked, suspended)?
      Miten ja milloin se pääsee siihen tilaan?
      Miten se pääsee sieltä pois ja mihin tilaan se silloin siirtyy?
      Miten käyttöjärjestelmä toteuttaa tuon tilasiirtymän? Mitä silloin tapahtuu?
     
  4. [9 p] Titokone, TitoTrainer ja ttk-91. Oletetaan, että 2-ulotteinen 80-alkioinen taulukko T[8,10] on valmiiksi määriteltynä globaalina (pääohjelmatasolla) 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. [4 p] Toteuta ttk-91 symbolisella konekielellä lauseke T[i,j] = x.
    2. [3 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 T[i,j] = x.
    3. [2 p] 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