581305-6 Tietokoneen toiminta, 4 op, erilliskoe 8.4.2008

Kirjoita jokaiseen vastauspaperiisi seuraavat tiedot: nimi ja nimikirjoitus, opiskelijanumero, kurssin nimi ja sivunumero.
  1. [9 p] Prosessi (process).
    1. [4 p] Piirrä prosessin suoritusaikaisista tiloista (process state) 5-tilainen tilakaavio. Kerro tilojen nimet ja piirrä niiden väliset mahdolliset tilasiirtymät. Kerro myös, mitä tilasiirtymissä tapahtuu.
    2. [5 p] Oletetaan, että ohjelma P lukee (hyvin pienen) levytiedoston aaa.txt muistiin, muokkaa sitä ja tallettaa sen levylle tiedostona bbb.txt. Anna niiden (kohdan a) prosessin tilojen sarja, joissa ohjelman P suoritusaikainen prosessi ohjelman suoritusaikana käy. Mitä järjestelmässä tapahtuu kunkin tilan ja kunkin tilasiirtymän aikana?

  2.  
  3. [9 p] Kirjoita max 2 sivun essee (ei kuvia) aiheesta "Miten tietokone toimii?".

  4.  
  5. [9 p] Java
    1. Mikä on Java-koodi ja miten tavukoodina esitetyn Java-ohjelman suoritus tapahtuu tulkitsemalla?
    2. Miten tavukoodina esitetyn Java-ohjelman suoritus tapahtuu kääntämällä? Miten tämä suoritus eroaa edellämainitusta tavasta (a)?
    3. Miten tavukoodina esitetyn Java-ohjelman suoritus tapahtuu Java-suorittimessa? Miten tämä suoritus eroaa edellämainituista tavoista (a ja b)?
    4. Miten tavukoodina esitetyn Java-ohjelman suoritus tapahtuu JIT:llä? Miten tämä suoritus eroaa edellämainituista tavoista (a, b ja c)?

  6.  
  7. [9 p] Aliohjelma VecSub(A, B, Diff, N) laskee parametrivektoreiden (1-ulotteisten taulukoiden) A ja B alkioittaisen erotuksen ulostulovektorin Diff arvoksi. Kaikissa kolmessa vektorissa on N alkiota. Parametri N on arvoparametri ja muut parametrit ovat viiteparametreja.

    Esimerkki. Meillä on 5-alkioiset pääohjelmatasolla määritellyt 1-ulotteiset taulukot X={50,51,52,53,54}, Y={10,11,22,23,34} ja Z={1,2,3,4,5}. Kutsun VecSub(X, Y, Z, 5) jälkeen Z={40,40,30,30,20}.
    1. [3 p] Toteuta ttk-91 symbolisella konekielellä kutsu VecSub(X, Y, Z, 5)
    2. [6 p] Toteuta ttk-91 symbolisella konekielellä aliohjelma VecSub.

    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