581305-6 Tietokoneen toiminta, 26.1.2010   

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

  1. [9 p] Ohjelma, suoritin ja järjestelmä.
    1. Missä muodossa suoritin näkee suorituksessa olevan ohjelman?
    2. Miten suoritin suorittaa suoritusvuorossa olevaa ohjelmaa?
    3. Missä muodossa käyttöjärjestelmä näkee järjestelmässä olevan ohjelman?
    4. Miten käyttöjärjestelmä suorittaa suoritusvuorossa olevaa ohjelmaa?

     
  2. [9 p] Suorittimen etuoikeutettu suoritustila (privileged execution mode).
    1. Mikä on (suorittimen) etuoikeutettu suoritustila? Mihin sitä tarvitaan?
    2. Miten etuoikeutettu suoritustila eroaa tavallisesta (user mode) suoritustilasta? Anna kaksi konekäskytason esimerkkiä.
    3. Milloin ja miten suoritustila vaihtuu tavallisesta etuoikeutettuun? Anna konekäskytason esimerkki.
    4. Milloin ja miten suoritustila vaihtuu etuoikeutetusta tavalliseen? Anna konekäskytason esimerkki.

     
  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ä? Miten tämä suoritus eroaa edellämainitusta tavasta?
    3. Miten tavukoodina esitetyn Java-ohjelman suoritus tapahtuu Java-suorittimessa? Miten tämä suoritus eroaa edellämainituista tavoista?
    4. Miten tavukoodina esitetyn Java-ohjelman suoritus tapahtuu JIT:llä? Miten tämä suoritus eroaa edellämainituista tavoista?

     
  4. [9 p] Aliohjelma SmaLrg(T, n, small, large) palauttaa parametrina annetun n-alkioisen taulukon T pienimmän ja suurimman alkioiden arvot ulostuloparametreissa small ja large. Parametrit T, small ja large ovat viiteparametreja ja parametri n on arvoparametri.
    1. Selitä, miten arvo-, viite- ja nimiparametrit (call-by-value, call-by-reference, and call-by-name parameters) eroavat toisistaan.
    2. Anna ttk-91 koneen symbolisella konekielellä käskyt, joilla aliohjelmaa SmaLrg() käyttäen etsitään ja tulostetaan 50-alkioisen pääohjelmatasolla määritellyn taulukon Tbl pienimmän ja suurimman alkion arvot.
    3. Toteuta aliohjelma SmaLrg() ttk-91 koneen symbolisella konekielellä.

    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