Tietokoneen toiminta, 2 ov, kurssikuulustelu 17.12.2001
(Other side in English )
Kirjoita jokaiseen vastauspaperiisi seuraavat tiedot: oma nimi,
opiskelijanumero (tai henkilötunnus),
kurssin nimi, nimikirjoitus ja sivunumero.
- [12 p] Prosessi (process).
- [2 p] Määrittele käsite prosessi. Miten se eroaa ohjelmasta?
- [2 p] Mikä on prosessin esitysmuoto järjestelmässä?
- [2 p] Mikä on käyttöjärjestelmäprosessi? Miten se eroaa
tavallisesta prosessista?
- [2 p] Mitä järjestelmässä tapahtuu prosessin vaihdon yhteydessä?
Mitä aikaisemmalle prosessille tapahtuu?
- [2 p] Anna esimerkki tilanteesta, jossa suoritustilassa (running)
oleva prosessi siirtyy valmis suoritukseen -tilaan (ready-to-run).
- [2 p] Anna esimerkki tilanteesta, jossa odotustilassa (waiting)
oleva prosessi siirtyy ensin valmis suoritukseen -tilaan (ready-to-run)
ja sitten välittömästi suoritustilaan (running).
- [12 p] Konekäskyjen suoritus.
- [2 p] Määrittele käsite käskyjen suoritussykli. Mitkä ovat
sen vaiheet?
- [4 p] Miten suorittimella tapahtuu konekäskyä "ADD R5,
=345" suoritettaessa 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] Määrittele käsite etuoikeutettu tila (supervisor state,
priviledged state). Miten se vaikuttaa käskyjen suoritukseen?
- [12 p] Java. Oletetaan, että ohjelma MyProg on kirjoitettu Javalla ja että
se suoritetaan järjestelmässä tulkitsemalla.
- [2 p] Mitä on ohjelmalle MyProg tehdään ennen sen varsinaisen
suorituksen alkua? Mikä on MyProg'in esitysmuoto suoritusaikana ja
miten siihen päästään?
- [2 p] Miten ohjelman MyProg suoritus lopulta tapahtuu suoritusaikana?
Minkälainen käyttöjärjestelmän tuntema prosessi (tai prosessit) on
suoritusvuorossa ohjelman MyProg suoritusaikana?
- [2 p] Jotkut väittävät Java-ohjelmien suorittamisen tulkitsemalla
olevan hitaampaa kuin vastaavien C-kielisten kännettyjen ohjelmien
suorittamisen kyseisessä ympäristössä. Anna hyvin perusteltu vastaus
tähän väitteeseen.
- [2 p] Miten tilanne kohtiin (a) ja (b) muuttuu, jos käytetään JIT-käännöstä?
- [2 p] Miten tilanne kohtiin (a) ja (b) muuttuu, jos käytetään
Java-suoritinta?
- [2 p] Miten kohtien (a) ja (b) tilanne eroaa siitä, että ohjelmasi
olisi ollut C-kielinen ja se suoritettaisiin "tavalliseen
tapaan"?
- [12 p] Aktivointitietue. TTK-91 koneen aliohjelmat toteutetaan
aktivointitietueiden avulla.
- [3 p] Määrittele käsite aktivointitietue. Mitä tietoja ja
kenttiä aktivointitietueessa on?
- [2 p] Mitkä aktivointitietueen kentistä ovat käytössä aliohjelman
varsinaisen rungon (body) aikana ja miten niihin viitataan?
- [2 p] Määrittele käsite aktivointitietuepino.
- [3 p] Miten ja milloin aktivointitietuepinoon talletetaan uusi
aktivointitietue? Montako konekäskyä tähän kuluu?
- [2 p] Miten ja milloin aktivointitietuepinosta poistetaan
aktivointitietue? Montako konekäskyä tähän kuluu?
Noudata luennolla ja harjoituksissa esitettyjen suositusten mukaista
aliohjelmien (funktioiden) toteutustapaa ja kutsumekanismia. Käytä valaisevaa
ja kattavaa esimerkkiä kaikkien kohtien vastauksissa.
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