581305-6 Tietokoneen toiminta, 2 ov, loppukoe 25.8.2000
- [12 p] Konekäskyjen suoritus
- Miten suoritin (prosessor) suorittaa konekäskyjä?
- Anna viisi erilaista virhetilannetta, jotka voidaan havaita
konekäskyn suorituksen aikana.
- Miten virhetilanteet käsitellään?
- Miten suoritin tietää, mikä ohjelma on suorituksessa?
- Miten suorituksessa olevan ohjelman vaihto tapahtuu suorittimen tasolla?
- Voiko tietyllä suorittimella (esim. Pentium) varustetulla tietokoneella
suorittaa jollekin muulle suorittimelle (esim. Motorola) käännettyjä
ja linkitettyjä ohjelmia? Perustele vastauksesi.
- [12 p] Aktivointitietuepino (activation record stack)
- Miksi sitä tarvitaan?
- Milloin se luodaan/tuhotaan?
- Mikä on sen rakenne?
- Missä se sijaitsee?
- Kuka päivittää sitä ja milloin?
- Miten siinä olevaan tietoon viitataan?
- [12 p] Keskeytykset (interrupt, trap, exception, ...)
- Anna neljä eri tyyppistä keskeytystä?
Kerro, miten tyypit eroavat toisistaan.
- Miten keskeytys näkyy suoritusvuorossa olevalle ohjelmalle?
- Miten keskeytys näkyy suorittimelle (processor)?
- Miten keskeytys käsitellään?
- Miksi keskeytysten käsittely voidaan estää? Anna esimerkki.
- Miten keskeytysten ollessa estettynä tapahtuva keskeytys käsitellään?
- [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 |
- Kun muuttujien X, Y ja Z virtuaaliosoitteet ovat 0x0144, 0x052D ja 0x03AA,
niin mitkä ovat niiden fyysiset osoitteet?
- Mikä virtuaaliosoite kohdistuu fyysiseen muistipaikkaan 0x5555?
- Kumpi on muuttujan X oikea osoite, 0x0144 vai sen fyysinen osoite? Perustele.
- Kumpi osoite X:lle on konekäskyssä, virtuaaliosoite vai fyysinen osoite? Perustele.
- Voiko virtuaalinen osoiteavaruus olla suurempi kuin
fyysinen osoiteavaruus? Perustele.
- Voiko virtuaalinen osoiteavaruus olla pienempi kuin
fyysinen osoiteavaruus? Perustele.
- [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