581305-6 Tietokoneen toiminta, 2 ov, loppukoe 5.6.2001
Kirjoita jokaiseen vastauspaperiisi seuraavat tiedot: oma
nimesi, henkilötunnus, kokeen tai kurssin nimi, nimikirjoitus ja sivunumero.
- [15 p] Prosessi (process)
- [3 p] Mikä on prosessin esitysmuoto järjestelmässä?
- [3 p] Mitkä ovat prosessin suoritusaikaiset tilat (state)?
- [2 p] Miten prosessin tila näkyy käyttöjärjestelmälle?
- [2 p] Miten prosessin tila näkyy prosessille?
- [5 p] Miten ja milloin prosessin tila muuttuu? Käsittele kukin
mahdollinen tilasiirtymä erikseen. Kerro kustakin tilasiirtymästä
esimerkkitapahtuma, joka voisi aiheuttaa kyseisen tilasiirtymän.
- [15 p] Tiedon sijainti.
- [3 p] Mainitse 3 eri tiedon sijaintipaikkaa, joissa suoritusaikana
konekäskyssä viitattava tieto voi olla. Mitkä ovat niiden nopeudet
(karkealla tasolla)?
- [6 p] Anna kullekin tiedon sijaintipaikalle ttk-91 symbolista
konekieltä käyttäen esimerkki (konekäsky), jossa juuri siinä
sijaintipaikassa olevaan tietoon viitataan. Kerro erityisesti, missä
käskyn suorituksen vaiheessa kyseinen viittaus tapahtuu ja miten
viitattu tieto löytyy järjestelmästä konekäskyssä olevien tietojen
perusteella. Mainitse myöskin, onko kyseessä data- vai koodiviite.
- [6 p] Anna kullekin tiedon sijaintipaikalle esimerkki tiedosta, joka
olisi järkevää tai välttämätöntä sijoittaa juuri siihen paikkaa
eikä vaihtoehtoisiin sijaintipaikkoihin. Anna perustelut, miksi näin
kannattaisi tai olisi välttämätöntä tehdä.
- [15 p] Java-ohjelmien suoritus tulkitsemalla Pentium-suorittimella
varustetussa tietokoneessa.
Oletetaan, että Java-ohjelmassasi on lauseke A = B+C;
- [4 p] Mikä on tuon lausekkeen esitysmuoto tietokoneen muistissa
suoritusaikana?
Missä sijaitsevat muuttujien A, B ja C arvot? Ovatko ne
laiterekisterissä vai muistissa? Miten niihin viitataan?
- [3 p] Miten Pentium-suorittimella varustettu tietokone suorittaa tuon
Java-ohjelman lausekkeen?
- [3 p] Minkälainen prosessi on suoritusvuorossa tuon Java-ohjelman
lausekkeen suoritusaikana?
- [5 p] Jos ohjelman suoritus tapahtuisikin JIT-käännöksen avulla,
niin miten kohtien a, b ja c vastaukset muuttuisivat?
- [15 p] Ttk-91 koneen konekieli. Kokonaislukuarvoinen taulukko T[200]
on määritelty pääohjelmatasolla. Taulukossa on siis 200 alkiota (alkiot
0,...,199). Kokonaislukumuuttuja k on myös määritelty
pääohjelmatasolla.
- [4 p] Anna konekäskyt, joilla tulostetaan alkion T[k] arvo. Voit
(epärealistisesti) olettaa, että muuttujan k arvo on sallituissa
rajoissa.
- [4 p] Anna konekäskyt, joilla (käyttämättä aliohjelmakutsuja)
alustetaan taulukko T siten, että T[i] = i2 + i - 3 kaikille
T:n alkioille.
- [4 p] Tee aliohjelma Alusta(S, N), joka kutsuttaessa alustaa
kokonaislukuarvoisen N-alkioisen taulukon S siten, että S[i] = i2
+ i - 3 kaikille taulukon S alkioille. Noudata suositusten mukaista
aliohjelmien (funktioiden) toteutustapaa ja kutsumekanismia. Parametri S
on viiteparametri ja parametri N on arvoparametri. Voit
(epärealistisesti) olettaa, että parametrien arvot ovat sallituissa
rajoissa.
- [3 p] Anna konekäskyt, joilla aliohjelmaa Alusta(S, N) käyttäen
alustetaan taulukko T[200] siten, että kunkin alkion T[i] arvoksi
tulee i2 + i - 3. Noudata suositusten mukaista
aliohjelmien kutsumekanismia. Parametri S on viiteparametri ja parametri
N on arvoparametri.
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