581305-6 Tietokoneen toiminta, 4 op, koe 3.5.2012   

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

  1. [12 p] Ohjelman suoritus järjestelmässä.
    1. [4 p] Mikä on prosessi? Mikä on prosessin esitysmuoto järjestelmässä?
    2. [4 p] Miten käyttöjärjestelmä aloittaa seuraavaksi suoritusvuorossa olevan prosessin P suorituksen? Mitä silloin tapahtuu konekäsky- ja rekisteritasolla?
    3. [4 p] Mitä tarkoittaa, kun prosessi P on Valmis suoritukseen (ready-to-run) -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. [12 p] Java
    1. [3 p] Mikä on Java virtuaalikone (Java virtual machine, JVM)?
    2. [9 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.


     
  3. [13 p] Konekäskyjen suoritus.
    1. [4 p] Määrittele käsite "käskyjen suoritussykli". Mitkä ovat sen vaiheet ja mitä vaiheissa tapahtuu?
    2. [3 p] Mikä on etuoikeutettu (privileged) käskyjen suoritustila, mihin sitä tarvitaan ja kuinka se on käytännössä toteutettu käskyjen suoritussyklissä? Mitä erikoisoikeuksia etuoikeutetuilla käskyillä on tavallisiin käskyihin verrattuna? Miten etuoikeutettuun tilaan päästään ja miten siitä palataan normaaliin (user) käskyjen suoritustilaan?
    3. [6 p] Mitä ovat keskeytykset (interrrupts), mihin niitä tarvitaan ja kuinka ne on käytännössä toteutettu käskyjen suoritussyklissä?
      Minkälaisen keskeytyksen käsittelyn jälkeen keskeytyneen ohjelman suoritus voi päättyä? Anna esimerkki.
      Minkälaisen keskeytyksen käsittelyn jälkeen keskeytyneen ohjelman suorittaminen voi jatkua? Anna esimerkki.
      Minkälaisen keskeytyksen käsittelyn jälkeen keskeytynyt ohjelma siirretään Valmis suoritukseen (ready-to-run) jonoon odottamaan uutta suoritusvuoroa? Anna esimerkki.

       
  4. [13 p] Titokone, TitoTrainer ja ttk-91. Funktio Keskiarvo(Arr, n) palauttaa arvonaan n-alkioisen taulukon Arr alkioiden keskiarvon kokonaislukuna. Parametri Arr on viiteparametri ja n on arvoparametri.
    1. [3 p] Anna ttk-91 koneen symbolisella konekielellä käskyt, joilla funktiota Keskiarvo() käyttäen lasketaan globaalille muuttujalle kpalkka arvoksi globaalilla tasolla määritellyn 200-alkioisen taulukon Palkat keskiarvo.
    2. [4 p] Anna ttk-91 koneen symbolisella konekielellä käskyt, joilla funktiota Keskiarvo() käyttäen lasketaan globaalille muuttujalle kpalkka arvoksi globaalilla tasolla määritellyn 200-alkioisen taulukon Palkat alkioiden Palkat[i], Palkat[i+1], ..., Palkat[j] keskiarvo. Indeksien i ja j arvot ovat globaaleissa muuttujissa I ja J. Voit olettaa, että 0 ≤ i j <200.
    3. [6 p] Toteuta ttk-91 koneen symbolisella konekielellä funktio Keskiarvo().
       
    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