Tietokoneen toiminta, 4 op (2 ov)
Kurssikuulustelu 12.12.2006
Kirjoita jokaiseen vastauspaperiisi seuraavat tiedot: |
oma nimi, opiskelijanumero (tai henkilötunnus), |
|
kurssin nimi, nimikirjoitus ja sivunumero. |
Kurssin tulokset
tulevat näkyville verkkoon kurssin kotisivulle linkitettynä heti arvostelun
valmistuttua. Muista antaa kurssipalaute jossakin vaiheessa. Kiitos.
- [15 p] Konekäskyjen suoritus, keskeytykset.
- [5 p] Määrittele käsite "käskyjen suoritussykli". Mitkä ovat sen vaiheet? Piirrä kuva suoritussyklistä.
- [5 p] Mitä suorittimella tapahtuu ttk-91 koneen konekäskyä "MUL R1, 100(R5)" suoritettaessa suoritussyklin eri vaiheissa? Montako muistiviitettä tapahtuu, milloin ne tapahtuvat, mihin muistiosoitteeseen ne kohdistuvat ja ovatko ne ne luku- vai kirjoitusoperaatioita?
- [5 p] Mikä on I/O-keskeytys (I/O interrupt)? Kuinka I/O-keskeytyksen käsittely on toteutettu konekäskyjen suoritustasolla?
- [15 p] Prosessi (process).
- [5 p] Piirrä prosessin suoritusaikaisista tiloista (process state) 5-tilainen tilakaavio. Kerro tilojen nimet ja piirrä niiden väliset tilasiirtymät.
- [5 p] Anna luonteeltaan kaksi (2) erilaista esimerkkiä tilanteesta, jossa prosessi P siirtyy "suorituksessa" tilasta johonkin toiseen tilaan. Mitä tapahtuu järjestelmässä kunkin tilanteen aikana. Erityisesti mainitse, kuka (mikä prosessi) aiheutti tilasiirtymän ja mitä tilanmuutoksessa tapahtuu järjestelmässä kunkin tilanteen aikana?
- [5 p] Oletetaan, että prosessi Tulosta tekee paljon tulostusta kirjoittimelle. Missä suoritusaikaisissa tiloissa prosessi Tulosta on tulostamisen eri vaiheissa? Perustele.
- [15 p] Aliohjelmat ja funktiot. Aliohjelma Summa(Arr, n, s) laskee parametrina annetusta n-alkioisesta taulukon Arr alkioiden summan ja palauttaa sen ulostuloparametrin s avulla. Summa() ei siis ole funktio! Esimerkiksi, jos parametrina olisi 5-alkioinen taulukko T={2, 4, 6, 8, 10}, niin kyseinen aliohjelmakutsu Summa(T, 5, sum) palauttaisi ulostuloparametrin sum arvona luvun 30. Parametri Arr on viiteparametri, n on kokonaislukuarvoinen arvoparametri ja s on kokonaislukuarvoinen viiteparametri.
- Anna ttk-91 koneen symbolisella konekielellä käskyt, joilla aliohjelmaa Sum() käyttäen lasketaan globaalille (pääohjelmatason) muuttujalle SalarySum arvoksi globaalilla tasolla määritellyn 200-alkioisen taulukon Salaries alkioiden keskiarvo.
- Toteuta aliohjelma Summa.
HUOM: Aliohjelmaa Summa() siis ei tarvitse esittää kohdassa a.
Noudata suositusten mukaista aliohjelmien (funktioiden) toteutustapaa ja kutsumekanismia.
- [15 p] Java
- Miksi ohjelman yleinen esitysmuoto systeemissä on tavukoodi (Java bytecode), eikä korkean tason kieli (Java)?
- Miten tavukoodina esitetyn Java-ohjelman suoritus tapahtuu tulkitsemalla?
- Miten tavukoodina esitetyn Java-ohjelman suoritus tapahtuu kääntämällä?
Miten tämä suoritus eroaa edellämainitusta tavasta?
- Miten tavukoodina esitetyn Java-ohjelman suoritus tapahtuu Java-suorittimessa?
Miten tämä suoritus eroaa edellämainituista tavoista?
- Miten tavukoodina esitetyn Java-ohjelman suoritus tapahtuu JIT:llä?
Miten tämä suoritus eroaa edellämainituista tavoista?
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