581305-6 Tietokoneen toiminta, 4 op (2 ov), erilliskoe 3.2.2006
Kirjoita jokaiseen vastauspaperiisi seuraavat tiedot:
nimi ja nimikirjoitus, henkilötunnus tai opiskelijanumero, kurssin nimi
ja sivunumero.
- [15 p] Käännös ja linkitys
- [3 p] Käännösaikana (esim. ttk-91 symbolisen konekielen käännös) lähdekoodi tulee käydä läpi useamman kuin yksi kertaa. Miksi? Anna kuvaava esimerkki.
- [3 p] Milloin kannattaa käyttää staattista linkitystä dynaamisen linkityksen asemesta?
Mitä etua sillä saavutetaan?
- [3 p] Windows-järjestelmissä on käytössä (ainakin) kaksi erilaista tapaa tehdä dynaaminen linkitys.
Miten ne eroavat staattisesta linkityksestä? Miten ne eroavat toisistaan?
- [3 p] Oletetaan, että sinulla on suurehko tietokonepeli, jossa on 8 erilaista tasoa pelaajan eri taitoasteille.
Olisiko järkevämpi käyttää staattista vai dynaamista linkitystä? Miksi?
- [3 p] Mitä tarkoittaa käsite "sijainnista riippumaton koodi" (position independent code)? Milloin koodi on sijainnista riippumatonta? Mitä etua sillä saavutetaan?
- [15 p] Prosessi (process)
- [3 p] Mikä on prosessi?
- [4 p] Mitä tietoja prosessin kuvaaja (Process Control Block) tyypillisesti sisältää.
- [4 p] Piirrä prosessin suoritusaikaisista tiloista (process state) tilakaavio. Kerro tilojen nimet ja piirrä niiden väliset tilasiirtymät.
- [4 p] Miten, milloin ja miksi prosessin tila muuttuu? Käsittele neljä (4) mahdollista tilasiirtymää erikseen esimerkkitapahtuman avulla.
- [15 p] Konekäskyjen esitysmuoto ja suoritus.
- [4 p] Määrittele käsite "käskyjen suoritussykli". Mitkä ovat sen vaiheet? Piirrä kuva suoritussyklistä.
- [4 p] Millainen on ttk-91 koneen käskyrakenne ja mitä tietoja mihinkin kenttään talletetaan. Anna konekäskyn "MUL R4, T(R2)" esitysmuoto muistissa käskyrakenteen mukaan kokonaislukuina (ei tarvitse muuttaa biteiksi), kun symbolitaulussa T:n arvo on 55. (Operaation MUL käskykoodi on 19).
- [3 p] Miten ttk-91 konekielessä ilmaistaan tilanne, jossa indeksirekisteriä ei käytetä lainkaan? Anna esimerkki konekäskyn "MUL R1, =5" avulla.
- [4 p] Mitä suorittimella tapahtuu konekäskyä "MUL R4, T(R2)" suoritettaessa suoritussyklin eri vaiheissa? Montako muistiviitettä tapahtuu, milloin ne tapahtuvat, mihin muistiosoitteeseen ne kohdistuvat ja ovatko ne ne luku- vai kirjoitusoperaatioita?
- [15 p] Ttk-91 koneen symbolinen konekieli.
Kokonaislukuarvoiset muuttujat X ja Y sekä kokonaislukuarvoinen taulukko T[32]
on määritelty pääohjelmatasolla. Taulukossa on siis 32 alkiota
(indeksit
0,...,31).
- [3 p] Anna muuttujien X ja Y sekä taulukon T määrittely.
- [6 p] Toteuta funktio Suurin(Taulu, N),
joka palauttaa parametrina annetun N-alkioisen taulukon Taulu suurimman alkion arvon. Parametri N on
arvoparametri ja
parametri Taulu
viiteparametri.
- [3 p] Anna käskyt, funktion Suurin avulla etsitään taulukon T suurimman alkion arvo ja tulostetaan se.
- [3 p] Miten funktiota Suurin tulisi muuttaa, jos suurimman alkion arvon asemesta tulisikin palauttaa sen indeksi?
Noudata suositusten mukaista
aliohjelmien (funktioiden) toteutustapaa ja kutsumekanismia.
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