581305-6 Tietokoneen toiminta, 4 op, koe 4.5.2015   

Kirjoita jokaiseen vastauspaperiisi seuraavat tiedot: nimi ja nimikirjoitus, opiskelijanumero ja kurssin nimi. Kuhunkin tehtävään riittää 1-2 sivun vastaus.

  1. [12 p] Tiedon esitysmuodot
    1. [4 p] Mikä on kokonaisluvun -13 32-bittinen Big-Endian 2-komplementin esitysmuoto?
    2. [4 p] Mikä on kokonaisluvun -13 8-bittinen Big-Endian vakiolisäys 127 -esitysmuoto?
    3. [4 p] Mikä on liukuluvun -13.0 32-bittinen Little-Endian IEEE-standardin mukainen esitysmuoto?

  2. [13 p] Konekäskyjen suoritus.
    1. [5 p] Määrittele käsite "käskyjen nouto- ja suoritussykli". Mitkä ovat sen vaiheet ja mitä vaiheissa tapahtuu? Anna konkreettinen konekäskytason esimerkki käyttäen konekäskyä "ADD R1, T(R2)".
    2. [4 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 konekäskyä "ADD R1, T(R2)", jonka suoritusaikana havaitaan muistinviittaus ohjelman sallitun alueen ulkopuolelle. (Esimerkiksi, T=100 ja R2:n arvo -500).
    3. [4 p] Miten käyttöjärjestelmä käsittelee keskeytykset?
      Miten keskeytyksen käsittelyn jälkeen tehdään?
      Anna konkreettinen esimerkki käyttäen edellisen kohdan keskeytystä.
       
  3. [13 p] Ohjelman suoritus järjestelmässä.
    1. [4 p] 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?
    2. [4 p] Mitä tarkoittaa, kun prosessi P on odotus tilassa (waiting, suspended)?
      Miten ja milloin se pääsee siihen tilaan?
      Miten se pääsee sieltä pois ja mihin tilaan se silloin siirtyy?
    3. [2 p] Mitä kaikkea tapahtuu käyttöjärjestelmätasolla, kun prosessi Q jää odottamaan I/O:n päättymistä ja prosessille P annetaan suoritusvuoro?
    4. [3 p] Mitä kaikkea tapahtuu konekäsky- ja rekisteritasolla, kun prosessi Q jää odottamaan I/O:n päättymistä ja prosessille P annetaan suoritusvuoro?
     
  4. [12 p] Titokone, TitoTrainer ja ttk-91. Funktio F(a, b) palauttaa arvonaan lausekkeen a+3b arvon. Esimerkiksi lauseen x = F(1, 2) suorituksen jälkeen muuttujan x arvo on 7. Parametri a on arvoparametri ja parametri b on viiteparametri. Muuttujat x ja y on määritelty pääohjelmatasolla.
    1. [4 p] Toteuta ttk-91 symbolisella konekielellä (funktiota F kutsumalla) lause
              x = F(x, x).
    2. [4 p] Toteuta ttk-91 symbolisella konekielellä (funktiota F kutsumalla) lause
              x = F(x-y, y+23456789).  
    3. [4 p] Funktion F(a, b) asemesta käytetäänkin nyt aliohjelmaa S(a, b, c), joka palauttaa ulostuloparametrissa c lausekkeen a+3b arvon. Esimerkiksi kutsun S(1, 2, x) suorituksen jälkeen muuttujan x arvo on 7. Parametri a on arvoparametri. Parametrit b ja c ovat viiteparametreja. Muuttujat x ja y on määritelty pääohjelmatasolla.
      Toteuta ttk-91 symbolisella konekielellä (aliohjelmaa S kutsumalla) lause
              S(x, x, x).
       
    Noudata suositusten mukaista aliohjelmien (funktioiden) kutsumekanismia.
    Huomaa, että sinun ei tarvitse toteuttaa funktiota F tai aliohjelmaa S.

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