581305-6 Tietokoneen toiminta, 4 op, koe 14.6.2013
Kirjoita jokaiseen vastauspaperiisi seuraavat tiedot:
nimi ja nimikirjoitus, opiskelijanumero ja kurssin nimi.
Kuhunkin tehtävään riittää noin 1-2 sivun vastaus.
- [9 p] Tiedon esitys.
- Anna kokonaisluvulle -5 kolme erilaista tiedon talletusmuotoa muistissa. Nimeä talletusmuodot ja näytä kuinka luku -5 esitetään niiden avulla.
- Miten liukuluvut esitetään muistissa? Mikä on liukulukujen normeerattu esitysmuoto ja miksi sitä käytetään?
- Mitä tarkoittavat käsitteet Little Endian ja Big Endian tiedon talletuksen yhteydessä? Anna kuvaava esimerkki käyttäen 32-bittistä kokonaislukua 258.
- [9 p] Konekäskyjen suoritus.
- Määrittele käsite "käskyjen suoritussykli". Mitkä ovat sen vaiheet ja mitä vaiheissa tapahtuu? Anna konkreettinen esimerkki, kun suoritusvuorossa on konekäsky "add r1, index(fp)".
- Oletetaan, että käskyn suoritusaikana tapahtuu jokin virhetilanne. Kuinka tämä havaitaan? Kuinka käyttöjärjestelmä saa kontrollin ja käsittelee virhetilanteen? Mitä sitten tapahtuu? Anna konkreettinen esimerkki, kun suoritusvuorossa on konekäsky "add r1, index(fp)".
- Oletetaan, että levyohjain on saanut työnsä valmiiksi ja haluaisi ilmoittaa asiasta laiteajurilleen. Kuinka tämä tapahtuu konekäskyjen suoritustasolla? Kuinka laiteajuri saa lopulta suoritusvuoron? Mitä sitten tapahtuu? Anna konkreettinen esimerkki. Tee tarvittavat oletukset I/O:n tyypistä.
- [9 p] Ohjelman suoritus.
- Mikä on prosessi ja mikä on sen esitysmuoto järjestelmässä?
- Mitä järjestelmässä tapahtuu konekäskytasolla prosessin vaihdon yhteydessä? Käytä esimerkkinä tilannetta, jossa suorituksessa oleva prosessi P joutuu odottamaan I/O:n päättymistä ja seuraavaksi suoritetaan prosessia Q. Miten ja milloin suoritusvuoro siirtyy prosessille Q?
- Milloin ja miten b-kohdan tapauksessa prosessi P pääsee taas takaisin suoritukseen? Miten taataan, että P:n suoritus jatkuu juuri oikeasta kohdasta ja että P:n suoritusympäristö on juuri samanlainen kuin mitä se oli P:n suorituksen keskeytyessä aikaisemmin?
-
[9 p] Titokone, TitoTrainer
ja ttk-91. Funktio F(a, b, c) palauttaa arvonaan lausekkeen 2a+3b-4c+5 arvon. Esimerkiksi lausekkeen x = F(1,2,3) suorituksen jälkeen muuttujan x arvo on 1. Parametrit a ja b ovat arvoparametreja ja parametri c on viiteparametri.
Muuttujat x ja y on määritelty pääohjelmatasolla.
- [3 p] Toteuta ttk-91 symbolisella konekielellä (funktiota F kutsumalla) lauseke
x = F(x, y, y).
- [3 p] Toteuta ttk-91 symbolisella konekielellä (funktiota F kutsumalla) lauseke
x = F(x+123, x-y, x-y).
- [3 p] Toteuta ttk-91 symbolisella konekielellä funktio F.
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