581305-6 Tietokoneen toiminta, 4 op, koe 9.11.2012

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

  1. [9 p] Konekäskyjen suoritus.
    1. Määrittele käsite "käskyjen suoritussykli".
      Mitkä ovat sen vaiheet ja mitä vaiheissa tapahtuu?
      Anna konkreettinen konekäskytason esimerkki.
    2. Mikä on etuoikeutettu käskyjen suoritustila, mihin sitä tarvitaan ja kuinka se on käytännössä toteutettu käskyjen suoritussyklissä?
      Miten siitä palataan normaaliin käskyjen suoritustilaan?
      Anna konkreettinen konekäskytason esimerkki.
    3. Mitä ovat keskeytykset (interrrupts), mihin niitä tarvitaan ja kuinka ne on käytännössä toteutettu käskyjen suoritussyklissä?
      Anna kolme luonteeltaan hyvin erilaista konkreettista konekäskytason esimerkkiä keskeytyksistä ja selitä mitä ne tarkoittavat?
      Miten keskeytyksen käsittelyn jälkeen palataan keskeytyneen ohjelman suorittamiseen?

       
  2. [9 p] Ohjelman suoritus järjestelmässä.
    1. Mitä tarkoittaa, kun prosessi P on suoritus tilassa (running)?
      Miten ja milloin se pääsee siihen tilaan?
      Miten se pääsee sieltä pois ja mihin tilaan se silloin siirtyy?
    2. Mitä tarkoittaa, kun prosessi P on Valmis suoritukseen tilassa (ready-to-run)?
      Miten ja milloin se pääsee siihen tilaan?
      Miten se pääsee sieltä pois ja mihin tilaan se silloin siirtyy?
    3. Mitä tarkoittaa, kun prosessi P on Odotus tilassa (waiting, suspended)?
      Miten ja milloin se pääsee siihen tilaan?
      Miten se pääsee sieltä pois ja mihin tilaan se silloin siirtyy?

       
  3. [9 p] Java. Anna kolme erilaista tapaa Java-ohjelman suorittamiseen. Miten ne eroavat toisistaan? Mitä niillä on yhteistä? Miten ne liittyvät JVM:een ja Java tavukoodiin? Mitä käyttöjärjestelmän tuntemia prosesseja niihin liittyy?

     
  4. [9 p] Titokone, TitoTrainer ja ttk-91. Funktio F(a, b, c) palauttaa arvonaan lausekkeen 2a+3b-4c+5 arvon. Esimerkiksi lausekkeen x = F(1,2,3) suorituksen jälkeen muuttujan x arvo on 1. Parametrit a ja b ovat arvoparametreja ja parametri c on viiteparametri. Muuttujat x ja y on määritelty pääohjelmatasolla.
    1. [3 p] Toteuta ttk-91 symbolisella konekielellä (funktiota F kutsumalla) lauseke
      x = F(x, y, y).
       
    2. [2 p] Toteuta ttk-91 symbolisella konekielellä (funktiota F kutsumalla) lauseke
      x = F(x+123, x-y, x-y).
       
    3. [4 p] Toteuta ttk-91 symbolisella konekielellä funktio F.
       
    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