581305-6 Tietokoneen toiminta, 5 op, koe 6.9.2016      in EnglishOther side in English  

Kirjoita jokaiseen vastauspaperiisi: oma nimi ja nimikirjoitus, opiskelijanumero ja kurssin nimi.
Kuhunkin tehtävään riittää noin 1-2 sivun vastaus. Tämä on tavallinen erilliskoe ja kattaa koko kurssin. Kokeen arvostelu tapahtuu vasta 18.9.2016 jälkeen.

  1. [9 p] Tiedon esitys.
    1. [3 p] Anna kokonaisluvulle -13 kolme erilaista 16-bittistä tiedon talletusmuotoa muistissa. Nimeä talletusmuodot ja näytä kuinka luku -13 esitetään niiden avulla.
    2. [3 p] Mikä on liukulukujen IEEE 32-bittinen esitysmuoto ja miksi sitä käytetään? Miten 32-bittinen IEEE liukuluku +2.5 esitetään muistissa?
    3. [3 p] Mitä tarkoittavat käsitteet Little Endian ja Big Endian tiedon talletuksen yhteydessä? Milloin toinen on parempi kuin toinen? Anna kuvaava esimerkki käyttäen 32-bittistä kokonaislukua 0x00000012.

  2. [9 p] Konekäskyjen suoritus.
    1. [4 p] Milloin tarkalleen rekistereihin PC, IR, SR, MAR, R1 ja R7 kirjoitetaan uusia arvoja konekäskyjen suorituksen aikana?
    2. [5 p] Oletetaan, että käskyn suoritusaikana tapahtuu I/O laitekeskeytys. Mistä tällainen keskeytys voisi aiheutua? Kuinka tämä havaitaan suorittimella? Kuinka käyttöjärjestelmä saa kontrollin ja käsittelee tilanteen? Mitä sitten tapahtuu? Miten ja milloin keskeytyneen prosessin suoritus lopulta jatkuu? Anna konkreettinen konekäskytason esimerkki, kun keskeytyshetkellä suoritusvuorossa on muistiosoitteen 100 konekäsky "DIV R1, X" ja muistiosoitteessa 101 on konekäsky "SUB R1, =300".
        
  3. [9 p] Ohjelman suoritus järjestelmässä.
    1. [3 p] Mikä on prosessi ja mikä on sen esitysmuoto järjestelmässä? Mihin sitä tarvitaan, mitä tietoja siihen kuuluu ja mihin se on talletettu?
    2. [3 p] Kuinka korkean tason kielellä (esim. Java tai C) kirjoitetusta ohjelmasta P saadaan prosessi?
    3. [3 p] Kuinka prosessin vaihto (prosessilta P prosessille Q) on toteutettu? Anna kolme esimerkkitilannetta, joissa suoritusvuoro vaihtuu processilta P prosessille Q.

  4. [9 p] Titokone, TitoTrainer ja ttk-91. Funktio F(a, b, c) palauttaa arvonaan lausekkeen 4a-3b+c arvon. Esimerkiksi lausekkeen x = F(1,2,3) suorituksen jälkeen muuttujan x arvo on 1. Parametrit a ja c ovat arvoparametreja ja parametri b on viiteparametri. Muuttujat x ja y on määritelty pääohjelmatasolla.
    1. [3 p] Toteuta ttk-91 symbolisella konekielellä (funktiota F kutsumalla) lauseke
      x = F(x, y, y)
      .
    2. [3 p] Toteuta ttk-91 symbolisella konekielellä (funktiota F kutsumalla) lauseke
      x = F(x+1, y-2, 2345678).
    3. [3 p] Toteuta ttk-91 symbolisella konekielellä funktio F.
       
    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