Tietokoneen toiminta, 2 ov, kurssikuulustelu 14.2.2002
Kirjoita jokaiseen vastauspaperiisi seuraavat tiedot: oma nimi,
opiskelijanumero (tai henkilötunnus),
kurssin nimi, nimikirjoitus ja sivunumero.
- [12 p] Prosessi (process). Anna valaiseva esimerkki tilanteesta, jossa
- [2 p] suoritustilassa (running) oleva prosessi siirtyy valmis
suoritukseen -tilaan (ready-to-run)
- [2 p] valmis suoritukseen -tilasta (ready-to-run) oleva prosessi
siirtyy suoritustilaan (running)
- [2 p] suoritustilassa (running) oleva prosessi siirtyy odotustilaan (waiting)
- [2 p] odotustilassa (waiting) oleva prosessi siirtyy valmis
suoritukseen -tilaan (ready-to-run)
- [1 p] odotustilassa (waiting) oleva prosessi siirtyy ensin valmis
suoritukseen -tilaan (ready-to-run) ja sitten välittömästi
suoritustilaan (running)
- [1 p] uusi prosessi joutuu heti alkuun odotustilaan (waiting)
- [1 p] uusi prosessi joutuu heti alkuun valmis suoritukseen -tilaan
(ready-to-run)
- [1 p] odotustilassa (waiting) oleva prosessi poistetaan
järjestelmästä
- [12 p] Konekäskyjen suoritus.
- [2 p] Miten konekäsky "ADD R2, VarX(R1)"
esitetään muistissa?
- [4 p] Miten suorittimella tapahtuu konekäskyä "ADD R2,
VarX(R1)" suoritettaessa käskyn suoritussyklin eri vaiheissa?
- [3 p] Määrittele käsite keskeytys (exception, interrupt). Minkä
tyyppisiä keskeytyksiä on olemassa? Miten keskeytykset käsitellään
suorittimella?
- [3 p] Mitä keskeytyksiä voi laitteistossa tapahtua konekäskyn "ADD
R2, VarX(R1)" suorituksen aikana?
- [12 p] Käännös, linkitys ja lataus. Oletetaan aluksi, että kyse on
"tavallisella" ohjelmointikielellä (kuten esim. C tai Pascal)
kirjoitetusta ohjelmasta.
- [3 p] Mitä tapahtuu ohjelmaa käännettäessä? Mikä on käännetyn
ohjelman esitysmuoto?
- [3 p] Mitä tapahtuu ohjelmaa linkitettäesssä? Mikä on linkitetyn
ohjelman esitysmuoto?
- [3 p] Mitä tapahtuu ohjelmaa ladattaessa? Mikä on ladatun ohjelman
esitysmuoto?
- [3 p] Miten kohtien a-c vastauksesi muuttuisivat, jos kysessä
olisikin Java-kielinen ohjelma?
- [12 p] Kymmenalkioinen taulukko Taulu[0..9] ja muuttujat X ja I
oletetaan määritellyksi pääohjelmatasolla. Toteuta seuraavien tehtävät
TTK-91 koneen symbolisella konekielellä.
- [2 p] Tulosta taulukon Taulu alkion Taulu[6] arvo.
- [2 p] Tulosta taulukon Taulu alkion Taulu[I] osoite.
- [2 p] Sijoita muuttujan X arvo taulukon Taulu alkion Taulu[I] arvoksi.
- [3 p] Alusta taulukko Taulu aliohjelmaa Init(Arr, Dim) käyttäen.
Parametri Arr on viiteparametri ja parametri Dim on arvoparametri. Arr
on alustettava taulukko ja Dim on k.o. taulukon alkioiden lukumäärä.
- [3 p] Toteuta edellisessä kohdassa mainittu aliohjelma Init(Arr, Dim)
siten, että parametrina annetun taulukon kaikkien alkioden arvoiksi
tulee luku 2345678.
Noudata luennolla ja harjoituksissa esitettyjen suositusten mukaista
aliohjelmien (funktioiden) toteutustapaa ja kutsumekanismia.
TTK-91 konekielen käskyt ovat: NOP, STORE, LOAD, IN, OUT, ADD, SUB, MUL, DIV,
MOD, AND, OR, XOR, SHL, SHR, COMP, JUMP, JNEG, JZER, JPOS, JNNEG, JNZER, JNPOS,
JLES, JEQU, JGRE, JNLES, JNEQU, JNGRE, CALL, EXIT, PUSH, POP, PUSHR, POPR, SVC