581305-6 Tietokoneen toiminta, 4 op, erilliskoe 8.9.2009   

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

  1. [9 p] Konekäskyjen suoritus.
    1. Milloin ja miten keskeytyskäsittelijään siirtyminen tapahtuu käytännössä? Käytä esimerkkinä laitekeskeytystä (I/O interrupt).
    2. Milloin ja miten keskeytyskäsittelijästä palataan keskeytyneen ohjelman suorittamiseen? Käytä esimerkkinä laitekeskeytystä (I/O interrupt).
    3. Mitä tarkoittaa käsite suorittimen etuoikeutettu (priviledged) suoritustila? Käytä esimerkkinä laitekeskeytyksen (I/O interrupt) käsittelyä.
    4. Milloin ja miten suorittimen suoritustila vaihtuu tavallisesta etuoikeutettuun? Milloin ja miten suorittimen suoritustila vaihtuu etuoikeutetusta tavalliseen? Käytä esimerkkinä laitekeskeytyksen (I/O interrupt) käsittelyä.

     
  2. [9 p] Tiedon esitysmuodot
    1. Mitä tarkoittaa käsite "suorittimen ymmärtämä tietotyyppi"? Minkälaista tietotyyppejä tietokoneen suoritin yleensä ymmärtää?
    2. Anna esimerkkejä tietotyypeistä, joita suoritin yleensä ei ymmärrä? Voiko tällaista tietotyyppiä käyttää ohjelmassa, vaikka suoritin ei sitä ymmärrä? Jos voi niin miten? Jos ei voi, niin perustele tarkemmin.
    3. Valitse jokin suorittimen ymmärtämä tietotyyppi ja kerro täsmällisesti, miten se voidaan toteuttaa.

     
  3. [9 p] Java
    1. Miten tavukoodina esitetyn Java-ohjelman suoritus tapahtuu tulkitsemalla?
    2. Miten tavukoodina esitetyn Java-ohjelman suoritus tapahtuu kääntämällä? Mitä etua tällä saadaan verrattuna edelliseen suoritusvaihtoehtoon?
    3. Miten tavukoodina esitetyn Java-ohjelman suoritus tapahtuu JIT:llä? Mitä etua tällä saadaan verrattuna edellisiin suoritusvaihtoehtoihin?

     
  4. [9 p] Titokone ja aliohjelmien toteutus.
    1. Mikä on aktivointitietue (activation record), mihin sitä käytetään ja mitä tietoja se sisältää?
    2. Mikä on aktivointitietuepino (activation record stack), mihin sitä käytetään ja mitä tietoja se sisältää?
    3. Aliohjelma fun(x, y, z) tekee jotain. Parametrit x ja y ovat arvoparametreja ja z on viiteparametri. Näytä esimerkinomaisesti kuinka aktivointitietuetta käytetään, kun jokin ohjelman osa kutsuu aliohjelmaa fun() ja kun aliohjelmassa fun viitataan sen sisäisiin tietorakenteisiin.

    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