581305-6 Tietokoneen toiminta, 4 op, koe 5.4.2013   

Kirjoita jokaiseen vastauspaperiisi seuraavat tiedot: nimi ja nimikirjoitus, opiskelijanumero ja kurssin nimi. Kuhunkin tehtävään riittää noin 1-2 sivun vastaus.

  1. [9 p] Ohjelman suoritus järjestelmässä.
    1. [3 p] Mikä on prosessin esitysmuoto järjestelmässä?
    2. [3 p] Mikä on suoritinympäristö (context data), mitä tietoja siellä on, milloin se talletetaan ja milloin sitä luetaan?
    3. [3 p] Mitä tarkoittaa, kun prosessi P on Odotus (suspended) -tilassa? Miten ja milloin se pääsee siihen tilaan? Miksi se on siellä? Miten se pääsee sieltä pois ja mihin tilaan se silloin siirtyy?
     
  2. [9 p] Konekäskyjen suoritus.
    1. [3 p] Määrittele käsite "käskyjen suoritussykli".
      Mitkä ovat sen vaiheet ja mitä vaiheissa tapahtuu?
    2. [3 p] Mikä on etuoikeutettu käskyjen suoritustila, mihin sitä tarvitaan ja kuinka se on käytännössä toteutettu käskyjen suoritussyklissä?
      Miten siihen päästään ja kuinka siitä palataan normaaliin käskyjen suoritustilaan?
    3. [3 p] Mitä ovat keskeytykset (interrrupts), mihin niitä tarvitaan ja kuinka ne on käytännössä toteutettu käskyjen suoritussyklissä?
      Miten keskeytyksen käsittelyn jälkeen palataan keskeytyneen ohjelman suorittamiseen?
      Anna kolme luonteeltaan hyvin erilaista esimerkkiä keskeytyksistä ja selitä mitä ne tarkoittavat?

       
  3. [9 p] Java
    1. [3 p] Mikä on Java virtuaalikone (Java virtual machine, JVM)?
    2. [6 p] Anna kolme erilaista tapaa Java-ohjelman suorittamiseen. Mitkä ovat niiden suurimmat eroavaisuudet toisistaan? Anna kuhunkin käytännön tilanne, milloin juuri se suoritustapa olisi parempi kuin ne kaksi muuta.

     
  4. [9 p] Titokone, TitoTrainer ja ttk-91. Kokonaislukuarvoinen funktio ffunny(x, y, z) palauttaa arvonaan lausekkeen y+z/x arvon. Parametrit x ja y ovat arvoparametreja ja z on viiteparametri. Kokonaislukuarvoiset muuttujat a, b ja c on määritelty pääohjelmatasolla.
    1. Toteuta (ttk-91 symbolisella konekielellä) funktiota  ffunny() kutsuva lauseke a=ffunny(123, b, c).
    2. Toteuta funktiota  ffunny() kutsuva lauseke a=ffunny(a+1, 5554444, a+1).
    3. Toteuta kokonaislukuarvoinen funktio ffunny(x, y, z),

      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