Tietokoneen toiminta, 2 ov
Helsingin yliopisto, Avoin yliopisto, uusintakuulustelu 22.10.2001
Kirjoita jokaiseen vastauspaperiisi seuraavat tiedot: oma nimi,
opiskelijanumero (tai henkilötunnus),
kurssin nimi, nimikirjoitus ja sivunumero.
Tämä koe vain kesän 2001 luentokurssille aktiivisesti (vähintään 9/30
harjoitustehtäväpistettä) osallistuneille. Kokeen tulokset ovat valmiita
16.11.2001 mennessä. Tulokset näkyvät myös verkossa tietojenkäsittelytieteenlaitoksen
intranetissä (ks. http://www.cs.helsinki.fi/u/kerola/tito/) heti arvostelun
valmistuttua.
- [15 p] Aliohjelmat, parametrit, makrot, literaalit, muuttujat,
vakiot
- [5 p] Anna esimerkki tilanteesta, jossa (aliohjelman) parametri P
olisi parempi toteuttaa arvoparametrina kuin viiteparametrina.
Perustelut?
Anna esimerkki päinvastaisesta tilanteesta, jossa parametri P olisi
parempi toteuttaa viiteparametrina kuin arvoparametrina. Perustelut?
- [5 p] Anna esimerkki tilanteesta, jossa rutiini XYZ olisi parempi
toteuttaa makrona kuin aliohjelmana. Perustelut?
Anna esimerkki päinvastaisesta tilanteesta, jossa rutiini XYZ olisi
parempi toteuttaa aliohjelmana kuin makrona. Perustelut?
- [5 p] Anna esimerkki tilanteesta, jossa on parempi toteuttaa lukuarvo
X literaalina kuin vakiona käskyssä. Perustelut?
Anna esimerkki päinvastaisesta tilanteesta, jossa on parempi toteuttaa
lukuarvo X vakiona käskyssä kuin literaalina. Perustelut?
- [15 p] Suorittimen tilat (processor states)
- [3 p] Mitkä ovat suorittimen tilat? Miten suorittimen tila näkyy
suorittimella?
- [3 p] Milloin suorittimen tila vaihtuu? Käsittele kukin tilasiirtymä
erikseen.
- [3 p] Miten suorittimen tila vaihtuu? Käsittele kukin tilasiirtymä
erikseen.
- [3 p] Miten keskeytykset liittyvät suorittimen tilaan?
- [3 p] Miten prosessi liittyy suorittimen tilaan? Missä tilassa
suoritin on sovellusprosessin suorituksen aikana?
- [15 p] Java-ohjelmien suoritus.
- [3 p] Minkälaisia eri tapoja on suorittaa Java-ohjelmia? Miten ne
eroavat toisistaan?
- [3 p] Mainitse kustakin eri suoritustavasta esimerkki, jolloin juuri
se suoritustapa olisi paras vaihtoehto. Perustele.
- [3 p] Miten Java-ohjelmien kääntäminen eroaa C-ohjelmien
kääntämisestä?
- [3 p] Miten Java-ohjelmien linkittäminen eroaa C-ohjelmien
linkittämisestä?
- [3 p] Miten Java-ohjelmien yleisin suoritustapa eroaa C-ohjelmien
suorituksesta?
- [15 p] Ttk-91 koneen konekieli. Taulukot ja aliohjelmat.
Kokonaislukuarvoinen taulukko Big[200] on määritelty pääohjelmatasolla.
Taulukossa on siis 200 alkiota (alkiot 0,...,199). Kokonaislukumuuttuja p on
myös määritelty pääohjelmatasolla.
- [4 p] Anna konekäskyt, joilla tulostetaan alkion Big[78] arvo ja sen
osoite.
- [4 p] Anna konekäskyt, joilla tulostetaan alkion Big[p] arvo ja sen
osoite. Voit (epärealistisesti) olettaa, että muuttujan p arvo on
sallituissa rajoissa.
- [4 p] Anna konekäskyt, joilla alustetaan taulukko Big siten, että
Big[i] = i - 8787878 kaikille Big:n alkioille.
- [3 p] Kokonaislukuarvoinen funktio Elem(T, K, I) palauttaa arvonaan
K-ulotteisen kokonaislukuarvoisen taulukon T alkion I arvon. Anna ttk-91
symbolisen konekielen konekäskyt, joilla funktion Elem(T, K, I) avulla
tulostetaan alkion Big[p] arvo. Noudata suositusten mukaista
aliohjelmien kutsumekanismia. Parametri T on viiteparametri ja
parametrit K ja I ovat arvoparametrejä..
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