581305-6 Tietokoneen toiminta, 2 ov, erilliskoe 23.3.2004

Kirjoita jokaiseen vastauspaperiisi seuraavat tiedot: nimi, henkilötunnus, kokeen/kurssin nimi, nimikirjoitus ja sivunumero.
  1. [15 p] Konekäskyjen suoritus.
    1. [3 p] Millä tavoin suoritin (processor) suorittaa konekäskyn?
    2. [3 p] Miten suoritin tietää, mikä konekäsky on kulloinkin suoritusvuorossa?
    3. [3 p] Mitä ovat keskeytykset (exception, interrupt) ja minkä tyyppisiä keskeytyksiä on olemassa?
    4. [3 p] Miten keskeytykset käsitellään suorittimella?
    5. [3 p] Mitä tarkoittaa käsite "etuoikeutettu tila" (supervisor state, priviledged state) ja miten se vaikuttaa käskyjen suoritukseen?
       
  2. [15 p] Hamming koodi. Oletetaan, että meillä on 4-bittinen data (0xC eli 1011), joka suojataan Hamming koodin avulla. Oletetaan, että bitit numeroidaan oikealta vasemmalle (kuten luennolla esitettiin). Käytössä on parillinen pariteetti.
    1. [2 p] Montako pariteettibittiä tarvitaan suojaamaan näitä neljää data-bittiä?
    2. [4 p] Anna Hamming koodilla suojattu kyseisen datan esitysmuoto (pariteettibitteineen).
    3. [3 p] Oletetaan nyt, että kolmas (3) bitti oikealta (kyseisessä datassa pariteettibitteineen) on tiedon siirron aikana muuttunut. Havaitaanko virhe Hamming koodin avulla? Voidaanko se korjata? Miten tai miksi ei? Näytä yksityiskohtaisesti.
    4. [3 p] Oletetaan nyt, että sekä toinen (2) että kolmas (3) bitti oikealta ovat molemmat muuttuneet tiedon siirron aikana. Havaitaanko virhe Hamming koodin avulla? Voidaanko se korjata? Miten tai miksi ei? Näytä yksityiskohtaisesti.
    5. [3 p] Jos databittejä olisi 16, niin montako pariteettibittiä tarvittaisiin?
       
  3. [15 p] Prosessi (process).
    1. [2 p] Määrittele käsite prosessi. Miten se eroaa ohjelmasta?
    2. [4 p] Mikä on prosessin esitysmuoto järjestelmässä? Mitä tietoja siinä on? Missä se sijaitsee?
    3. [2 p] Mikä on käyttöjärjestelmäprosessi? Miten se eroaa tavallisesta prosessista?
    4. [3 p] Mitä järjestelmässä tapahtuu prosessin vaihdon yhteydessä? Mitä aikaisemmalle prosessille tapahtuu?
    5. [2 p] Anna esimerkki tilanteesta, jossa suoritustilassa (running) oleva prosessi siirtyy valmis suoritukseen -tilaan (ready-to-run).
    6. [2 p] Anna esimerkki tilanteesta, jossa odotustilassa (waiting) oleva prosessi siirtyy ensin valmis suoritukseen -tilaan (ready-to-run) ja sitten välittömästi suoritustilaan (running).
       
  4. [15 p] Sata-alkioinen taulukko Taulu[0..99] sekä muuttujat X ja I oletetaan määritellyksi pääohjelmatasolla. Toteuta seuraavien tehtävät ttk-91 koneen symbolisella konekielellä.
    1. [3 p] Tulosta taulukon Taulu alkion Taulu[87] arvo.
    2. [3 p] Tulosta alkion Taulu[I] osoite. Voit olettaa, että I:n arvo on välillä 0..99.
    3. [2 p] Sijoita muuttujan X arvo alkion Taulu[I] arvoksi.
    4. [3 p] Alusta taulukko Taulu siten, että kunkin alkion Taulu[i] arvoksi tulee 3 * i + 7654321.
    5. [4 p] Alusta taulukko Taulu aliohjelmaa Init(Arr, Dim) käyttäen. Parametri Arr on viiteparametri ja parametri Dim on arvoparametri. Arr on alustettava taulukko ja Dim on k.o. taulukon alkioiden lukumäärä. Huomaa, että sinun siis ei tarvitse toteuttaa aliohjelmaa Init().
Noudata suositusten mukaista aliohjelmien (funktioiden) kutsumekanismia.

    TTK-91 konekielen käskyt ovat: NOP, STORE, LOAD, IN, OUT, ADD, SUB, MUL, DIV, MOD, AND, OR, XOR, SHL, SHR, COMP, JUMP, JNEG, JZER, JPOS, JNNEG, JNZER, JNPOS, JLES, JEQU, JGRE, JNLES, JNEQU, JNGRE, CALL, EXIT, PUSH, POP, PUSHR, POPR, SVC