Tietokoneen toiminta, 2
ov
Uusintakuulustelu 4.11.2002 (Avoin yo)
Tähän uusintakuulusteluun voivat osallistua vain kesällä 2002 Avoimen
yliopiston tietokoneen toiminta -kurssille aktiivisesti osallistuneet
(vähintään 10 harjoitustehtäväpistettä) opiskelijat. Arvosana määräytyy
tämän tentin ja tehtyjen harjoitustehtävien perusteella. Tentti arvostellaan
21.11.2002 mennessä.
Kirjoita jokaiseen vastauspaperiisi seuraavat tiedot: oma nimi,
opiskelijanumero (tai henkilötunnus),
kurssin nimi, nimikirjoitus ja sivunumero.
- [12 p] Konekäskyjen suoritus.
- [2 p] Millä tavoin suoritin (processor) suorittaa konekäskyn?
- [2 p] Miten suoritin tietää, mikä konekäsky on kulloinkin
suoritusvuorossa?
- [3 p] Mitä ovat keskeytykset (exception, interrupt) ja minkä
tyyppisiä keskeytyksiä on olemassa?
- [2 p] Miten keskeytykset käsitellään suorittimella?
- [3 p] Mitä tarkoittaa käsite "etuoikeutettu tila"
(supervisor state, priviledged state) ja miten se vaikuttaa käskyjen
suoritukseen?
- [12 p] Java
- [3 p] Mitä yhteistä Java-ohjelmien suorittamisella on ttk-91
ohjelmien suorittamisella Koksi simulaattorissa?
- [3 p] Mitä eroa Java-ohjelmien suorittamisella on ttk-91 ohjelmien
suorittamisella Koksi simulaattorissa?
- [3 p] Mikä on Java virtuaalikone (JVM, Java Virtual Machine)? Mikä
on sen merkitys?
- [3 p] Miten JVM eroaa tavallista suorittimista (esim, Intel Pentium,
IBM PowerPC, AMD Athlon)?
- [12 p] Tiedon sijainti
- [3 p] Mainitse 3 eri tiedon sijaintipaikkaa konekäskyssä
viitattavalle tiedolle (dataviite, ei koodiviite). 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 (dataan, ei koodiin) 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.
- [3 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ä.
- [12 p] Ttk-91 koneen konekieli. Kokonaislukuarvoinen taulukko T[80]
on määritelty pääohjelmatasolla. Taulukossa on siis 80 alkiota (alkiot
0,...,79). Kokonaislukumuuttuja k on myös määritelty pääohjelmatasolla.
- [2 p] Anna konekäskyt, joilla tulostetaan alkion T[65] arvo ja sen
osoite.
- [2 p] Anna konekäskyt, joilla tulostetaan alkion T[k] arvo. Voit
(epärealistisesti) olettaa, että muuttujan k arvo on sallituissa
rajoissa.
- [3 p] Anna konekäskyt, joilla alustetaan taulukko T siten, että T[i]
= i2 + 654321 kaikille T:n alkioille.
- [3 p] Tee aliohjelma Alusta(S, N), joka kutsuttaessa alustaa
kokonaislukuarvoisen N-alkioisen taulukon S siten, että S[i] = i2
+ 654321 kaikille taulukon S alkioille. Noudata suositusten mukaista
aliohjelmien (funktioiden) toteutustapaa ja kutsumekanismia. Parametri S
on viiteparametri ja parametri N on arvoparametri.
- [2 p] Anna ttk-91 symbolisen konekielen konekäskyt, joilla
aliohjelmaa Alusta(S, N) käyttäen alustetaan taulukko T. 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, 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