Tietokoneen toiminta, 2 ov, kurssikuulustelu 17.12.2001      (Other side in English in English)

Kirjoita jokaiseen vastauspaperiisi seuraavat tiedot: oma nimi, opiskelijanumero (tai henkilötunnus),
kurssin nimi, nimikirjoitus ja sivunumero.
  1. [12 p] Prosessi (process).
    1. [2 p] Määrittele käsite prosessi. Miten se eroaa ohjelmasta?
    2. [2 p] Mikä on prosessin esitysmuoto järjestelmässä?
    3. [2 p] Mikä on käyttöjärjestelmäprosessi? Miten se eroaa tavallisesta prosessista?
    4. [2 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).


  2. [12 p] Konekäskyjen suoritus.
    1. [2 p] Määrittele käsite käskyjen suoritussykli. Mitkä ovat sen vaiheet?
    2. [4 p] Miten suorittimella tapahtuu konekäskyä "ADD  R5, =345" suoritettaessa 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] Määrittele käsite etuoikeutettu tila (supervisor state, priviledged state). Miten se vaikuttaa käskyjen suoritukseen?



  3. [12 p] Java. Oletetaan, että ohjelma MyProg on kirjoitettu Javalla ja että se suoritetaan järjestelmässä tulkitsemalla.
    1. [2 p] Mitä on ohjelmalle MyProg tehdään ennen sen varsinaisen suorituksen alkua? Mikä on MyProg'in esitysmuoto suoritusaikana ja miten siihen päästään?
    2. [2 p] Miten ohjelman MyProg suoritus lopulta tapahtuu suoritusaikana? Minkälainen käyttöjärjestelmän tuntema prosessi (tai prosessit) on suoritusvuorossa ohjelman MyProg suoritusaikana?
    3. [2 p] Jotkut väittävät Java-ohjelmien suorittamisen tulkitsemalla olevan hitaampaa kuin vastaavien C-kielisten kännettyjen ohjelmien suorittamisen kyseisessä ympäristössä. Anna hyvin perusteltu vastaus tähän väitteeseen.
    4. [2 p] Miten tilanne kohtiin (a) ja (b) muuttuu, jos käytetään JIT-käännöstä?
    5. [2 p] Miten tilanne kohtiin (a) ja (b) muuttuu, jos käytetään Java-suoritinta?
    6. [2 p] Miten kohtien (a) ja (b) tilanne eroaa siitä, että ohjelmasi olisi ollut C-kielinen ja se suoritettaisiin "tavalliseen tapaan"?


  4. [12 p]  Aktivointitietue. TTK-91 koneen aliohjelmat toteutetaan aktivointitietueiden avulla.
    1. [3 p] Määrittele käsite aktivointitietue. Mitä tietoja ja kenttiä aktivointitietueessa on?
    2. [2 p] Mitkä aktivointitietueen kentistä ovat käytössä aliohjelman varsinaisen rungon (body) aikana ja miten niihin viitataan?
    3. [2 p] Määrittele käsite aktivointitietuepino.
    4. [3 p] Miten ja milloin aktivointitietuepinoon talletetaan uusi aktivointitietue? Montako konekäskyä tähän kuluu?
    5. [2 p] Miten ja milloin aktivointitietuepinosta poistetaan aktivointitietue? Montako konekäskyä tähän kuluu?

    Noudata luennolla ja harjoituksissa esitettyjen suositusten mukaista aliohjelmien (funktioiden) toteutustapaa ja kutsumekanismia. Käytä valaisevaa ja kattavaa esimerkkiä kaikkien kohtien vastauksissa.
 
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