Tietokoneen toiminta, 2 ov, kurssikuulustelu 14.2.2002  

Kirjoita jokaiseen vastauspaperiisi seuraavat tiedot: oma nimi, opiskelijanumero (tai henkilötunnus),
kurssin nimi, nimikirjoitus ja sivunumero.
  1. [12 p] Prosessi (process). Anna valaiseva esimerkki tilanteesta, jossa
    1. [2 p] suoritustilassa (running) oleva prosessi siirtyy valmis suoritukseen -tilaan (ready-to-run)
    2. [2 p] valmis suoritukseen -tilasta (ready-to-run) oleva prosessi siirtyy suoritustilaan (running)
    3. [2 p] suoritustilassa (running) oleva prosessi siirtyy odotustilaan (waiting)
    4. [2 p] odotustilassa (waiting) oleva prosessi siirtyy valmis suoritukseen -tilaan (ready-to-run)
    5. [1 p] odotustilassa (waiting) oleva prosessi siirtyy ensin valmis suoritukseen -tilaan (ready-to-run) ja sitten välittömästi suoritustilaan (running)
    6. [1 p] uusi prosessi joutuu heti alkuun odotustilaan (waiting)
    7. [1 p] uusi prosessi joutuu heti alkuun valmis suoritukseen -tilaan (ready-to-run)
    8. [1 p] odotustilassa (waiting) oleva prosessi poistetaan järjestelmästä



  2. [12 p] Konekäskyjen suoritus.
    1. [2 p] Miten konekäsky  "ADD  R2, VarX(R1)" esitetään muistissa?
    2. [4 p] Miten suorittimella tapahtuu konekäskyä "ADD  R2, VarX(R1)" suoritettaessa käskyn suoritussyklin eri vaiheissa?
    3. [3 p] Määrittele käsite keskeytys (exception, interrupt). Minkä tyyppisiä keskeytyksiä on olemassa? Miten keskeytykset käsitellään suorittimella?
    4. [3 p] Mitä keskeytyksiä voi laitteistossa tapahtua konekäskyn "ADD  R2, VarX(R1)" suorituksen aikana?



  3. [12 p] Käännös, linkitys ja lataus. Oletetaan aluksi, että kyse on "tavallisella" ohjelmointikielellä (kuten esim. C tai Pascal) kirjoitetusta ohjelmasta.
    1. [3 p] Mitä tapahtuu ohjelmaa käännettäessä? Mikä on käännetyn ohjelman esitysmuoto?
    2. [3 p] Mitä tapahtuu ohjelmaa linkitettäesssä? Mikä on linkitetyn ohjelman esitysmuoto?
    3. [3 p] Mitä tapahtuu ohjelmaa ladattaessa? Mikä on ladatun ohjelman esitysmuoto?
    4. [3 p] Miten kohtien a-c vastauksesi muuttuisivat, jos kysessä olisikin Java-kielinen ohjelma?


  4. [12 p]  Kymmenalkioinen taulukko Taulu[0..9] ja muuttujat X ja I oletetaan määritellyksi pääohjelmatasolla. Toteuta seuraavien tehtävät TTK-91 koneen symbolisella konekielellä.
    1. [2 p] Tulosta taulukon Taulu alkion Taulu[6] arvo.
    2. [2 p] Tulosta taulukon Taulu alkion Taulu[I] osoite.
    3. [2 p] Sijoita muuttujan X arvo taulukon Taulu alkion Taulu[I] arvoksi.
    4. [3 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ä.
    5. [3 p] Toteuta edellisessä kohdassa mainittu aliohjelma Init(Arr, Dim) siten, että parametrina annetun taulukon kaikkien alkioden arvoiksi tulee luku 2345678.
Noudata luennolla ja harjoituksissa esitettyjen suositusten mukaista aliohjelmien (funktioiden) toteutustapaa ja 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