581305-6 Tietokoneen toiminta, 4 op, koe 14.6.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] Tiedon esitys.
    1. Anna kokonaisluvulle -5 kolme erilaista tiedon talletusmuotoa muistissa. Nimeä talletusmuodot ja näytä kuinka luku -5 esitetään niiden avulla.
    2. Miten liukuluvut esitetään muistissa? Mikä on liukulukujen normeerattu esitysmuoto ja miksi sitä käytetään?
    3. Mitä tarkoittavat käsitteet Little Endian ja Big Endian tiedon talletuksen yhteydessä? Anna kuvaava esimerkki käyttäen 32-bittistä kokonaislukua 258.
     
  2. [9 p] Konekäskyjen suoritus.
    1. Määrittele käsite "käskyjen suoritussykli". Mitkä ovat sen vaiheet ja mitä vaiheissa tapahtuu? Anna konkreettinen esimerkki, kun suoritusvuorossa on konekäsky "add r1, index(fp)".
    2. Oletetaan, että käskyn suoritusaikana tapahtuu jokin virhetilanne. Kuinka tämä havaitaan? Kuinka käyttöjärjestelmä saa kontrollin ja käsittelee virhetilanteen? Mitä sitten tapahtuu? Anna konkreettinen esimerkki, kun suoritusvuorossa on konekäsky "add r1, index(fp)".
    3. Oletetaan, että levyohjain on saanut työnsä valmiiksi ja haluaisi ilmoittaa asiasta laiteajurilleen. Kuinka tämä tapahtuu konekäskyjen suoritustasolla? Kuinka laiteajuri saa lopulta suoritusvuoron? Mitä sitten tapahtuu? Anna konkreettinen esimerkki. Tee tarvittavat oletukset I/O:n tyypistä.

       
  3. [9 p] Ohjelman suoritus.
    1. Mikä on prosessi ja mikä on sen esitysmuoto järjestelmässä?
    2. Mitä järjestelmässä tapahtuu konekäskytasolla prosessin vaihdon yhteydessä? Käytä esimerkkinä tilannetta, jossa suorituksessa oleva prosessi P joutuu odottamaan I/O:n päättymistä ja seuraavaksi suoritetaan prosessia Q. Miten ja milloin suoritusvuoro siirtyy prosessille Q?
    3. Milloin ja miten b-kohdan tapauksessa prosessi P pääsee taas takaisin suoritukseen? Miten taataan, että P:n suoritus jatkuu juuri oikeasta kohdasta ja että P:n suoritusympäristö on juuri samanlainen kuin mitä se oli P:n suorituksen keskeytyessä aikaisemmin?

     
  4. [9 p] Titokone, TitoTrainer ja ttk-91. Funktio F(a, b, c) palauttaa arvonaan lausekkeen 2a+3b-4c+5 arvon. Esimerkiksi lausekkeen x = F(1,2,3) suorituksen jälkeen muuttujan x arvo on 1. Parametrit a ja b ovat arvoparametreja ja parametri c 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+123, x-y, x-y).
       
    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