Tietokoneen toiminta, 2 ov                                                (Other side in English in English)
Kurssikuulustelu 6.9.2002  (Avoin yo)

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ä? Mitä tietoja siinä on? Missä se sijaitsee?
    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] Miten ttk-91 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] Java
    1. [3 p] Mitä yhteistä Java-ohjelmien suorittamisella on ttk-91 ohjelmien suorittamisella Koksi simulaattorissa?
    2. [3 p] Mitä eroa Java-ohjelmien suorittamisella on ttk-91 ohjelmien suorittamisella Koksi simulaattorissa?
    3. [3 p] Mikä on Java virtuaalikone (JVM, Java Virtual Machine)? Mikä on sen merkitys?
    4. [3 p] Miten JVM eroaa tavallista suorittimista (esim, Intel Pentium, IBM PowerPC, AMD Athlon)?


  4. [12 p]  Aliohjelmien/funktioiden toteutus. 
    1. [3 p] Miten aliohjelmat toteutetaan konekielitasolla? Mitkä asiat ovat tärkeitä aliohjelmien toteutuksessa?
    2. [1 p] Mitä erityistä on rekursiivisten aliohjelmien toteutuksessa?
    3. [4 p] Funktio Aver(A, B, C, D) palauttaa arvonaan parametreina annettujen neljän kokonaisluvun keskiarvon. Parametrit ovat kaikki arvoparametreja. Anna ttk-91 symbolisella konekielellä ohjelma, joka (i) lukee neljä kokonaislukua, (ii) funktiota Aver käyttäen laskee k.o. lukujen keskiarvon ja (iii) lopulta tulostaa k.o. keskiarvon.
    4. [4 p] Toteuta ttl-91 symbolisella konekielellä edellisessä kohdassa mainittu funktio Aver(A, B, C, D).
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