581305-6 Tietokoneen toiminta, 4 op, erilliskoe 9.9.2008   

Kirjoita jokaiseen vastauspaperiisi seuraavat tiedot: nimi ja nimikirjoitus, opiskelijanumero, kurssin nimi ja sivunumero.

  1. [9 p] Tiedon esitys
    1. Miten tietokonejärjestelmässä talletetaan ja käsitellään kokonaislukuja?
    2. Miten tietokonejärjestelmässä talletetaan ja käsitellään realilukuja?
    3. Miten tietokonejärjestelmässä talletetaan ja käsitellään merkkijonoja?
    4. Miten tietokonejärjestelmässä talletetaan ja käsitellään kuvia?
    5. Miten tietokonejärjestelmässä talletetaan ja käsitellään tarvitsemaasi uutta tietotyyppiä (esim. haju, hevoslaji, kengän jälki, perhosen siiven kuvio)?
       
  2. [9 p] Ohjelman suoritus.
    1. Mikä on käskyjen suoritussykli?
    2. Miten suoritin tietää, mistä seuraava suoritettava käsky löytyy?
    3. Mitä ovat keskeytykset ja miten ne on toteutettu suoritussyklissä?
    4. Mikä on etuoikeutettu (privileged) suoritustila ja miten se on toteutettu suoritussyklissä?

     
  3. [9 p] Prosessi.
    1. Mikä on prosessi ja mikä on sen esitysmuoto järjestelmässä?
    2. Mitä tarkoittaa käsite prosessin vaihto?
    3. Anna esimerkki tilanteesta, jossa prosessi siirtyy suorituksessa (running) tilasta odotus (waiting) tilaan. Mikä prosessi ja tapahtuma aiheuttaa tämä siirtymän ja mitä järjestelmässä tämän tapahtuman seurauksena tapahtuu? Mitä tietoja siirretään ja minne?
    4. Anna esimerkki tilanteesta, jossa prosessi siirtyy valmiina suoritukseen (ready) tilasta suorituksessa (running) tilaan. Mikä prosessi ja tapahtuma aiheuttaa tämä siirtymän ja mitä järjestelmässä tämän tapahtuman seurauksena tapahtuu? Mitä tietoja siirretään ja minne?

     
  4. [9 p] Funktio ffunny( x, y, z) palauttaa arvonaan x*y+z/x. Esimerkiksi, kutsu ffunny(4,8,9) palauttaa arvon 30. Kaikki parametrit x, y ja z ovat kokonaislukuarvoisia viiteparametreja.
    1. Toteuta ttk-91 symbolisella konekielellä sijoituslauseke c = ffunny (a, b, c), jossa muuttujan c uusi arvo lasketaan funktion ffunny() avulla. Muuttujat a, b ja c on määritelty pääohjelmatasolla.
    2. Toteuta ttk-91 symbolisella konekielellä sijoituslauseke c = ffunny (a+4, 7, c), jossa muuttujan c uusi arvo lasketaan funktion ffunny() avulla. Muuttujat a ja c on määritelty pääohjelmatasolla.
    3. Toteuta ttk-91 symbolisella konekielellä funktio ffunny().

    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