581305-6 Tietokoneen toiminta, 2 ov, loppukoe 25.8.2000

  1. [12 p] Konekäskyjen suoritus
    1. Miten suoritin (prosessor) suorittaa konekäskyjä?
    2. Anna viisi erilaista virhetilannetta, jotka voidaan havaita konekäskyn suorituksen aikana.
    3. Miten virhetilanteet käsitellään?
    4. Miten suoritin tietää, mikä ohjelma on suorituksessa?
    5. Miten suorituksessa olevan ohjelman vaihto tapahtuu suorittimen tasolla?
    6. Voiko tietyllä suorittimella (esim. Pentium) varustetulla tietokoneella suorittaa jollekin muulle suorittimelle (esim. Motorola) käännettyjä ja linkitettyjä ohjelmia? Perustele vastauksesi.

  2. [12 p] Aktivointitietuepino (activation record stack)
    1. Miksi sitä tarvitaan?
    2. Milloin se luodaan/tuhotaan?
    3. Mikä on sen rakenne?
    4. Missä se sijaitsee?
    5. Kuka päivittää sitä ja milloin?
    6. Miten siinä olevaan tietoon viitataan?

  3. [12 p] Keskeytykset (interrupt, trap, exception, ...)
    1. Anna neljä eri tyyppistä keskeytystä? Kerro, miten tyypit eroavat toisistaan.
    2. Miten keskeytys näkyy suoritusvuorossa olevalle ohjelmalle?
    3. Miten keskeytys näkyy suorittimelle (processor)?
    4. Miten keskeytys käsitellään?
    5. Miksi keskeytysten käsittely voidaan estää? Anna esimerkki.
    6. Miten keskeytysten ollessa estettynä tapahtuva keskeytys käsitellään?

  4. [12 p] Virtuaalimuisti. Oletetaan, että (sana)osoitteen pituus on 16 bittiä, sivun koko 256 sanaa ja sivutaulun (alkuosan) sisältö seuraavanlainen:

    Sivun nro
    (Page nr)
    Oikeudet
    (Access rights)
    Läsnäolo/Muutettu
    (Present/Modified)
    Sivuraami
    (Page frame)
    0 r 1/0 12
    1 rw 1/0 5
    2 rw 1/1 6
    3 rw 0/0 ??
    4 rw 1/1 2
    5 rw 1/1 0
    6 r 1/0 55
    7 r 1/1 22

    1. Kun muuttujien X, Y ja Z virtuaaliosoitteet ovat 0x0144, 0x052D ja 0x03AA, niin mitkä ovat niiden fyysiset osoitteet?
    2. Mikä virtuaaliosoite kohdistuu fyysiseen muistipaikkaan 0x5555?
    3. Kumpi on muuttujan X oikea osoite, 0x0144 vai sen fyysinen osoite? Perustele.
    4. Kumpi osoite X:lle on konekäskyssä, virtuaaliosoite vai fyysinen osoite? Perustele.
    5. Voiko virtuaalinen osoiteavaruus olla suurempi kuin fyysinen osoiteavaruus? Perustele.
    6. Voiko virtuaalinen osoiteavaruus olla pienempi kuin fyysinen osoiteavaruus? Perustele.

  5. [12 p] Toteuta ttk-91 symbolisella konekielellä funktio Find(Arr, N, X). Kyseinen funktio tutkii, onko N-alkioisessa kokonaislukuarvoisessa taulukossa Arr on X-arvoinen alkio. Funktio palauttaa arvonaan kyseisen alkion indeksin tai -1, jos kyseistä alkiota ei löydy. Esimerkiksi, jos taulukolla T[0..4] on arvot {7, 3, 24, 5, 9}, niin kutsu Find(T, 5, 5) palauttaa arvonaan luvun 3 ja kutsu Find(T, 5, 22) palauttaa arvonaan luvun -1. Noudata suositusten mukaista aliohjelmien (funktioiden) toteutustapaa ja 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, LEGU, JGRE, LNLES, LNEQU, NGRE, CALL, EXIT, PUSH, POP, PUSHR, POPR, SVC