581305-6 Tietokoneen toiminta, 2 ov, kurssikoe 12.05.2005
Kirjoita jokaiseen vastauspaperiisi seuraavat tiedot:
oma nimesi, henkilötunnus, kokeen tai kurssin nimi,
nimikirjoitus ja sivunumero.
- [12 p] Tiedon esitys.
- [4 p] Anna Big Endian 16-bittisten desimaalilukujen
+23 ja -40 esitys tietokoneessa, kun kokonaislukujen esitysmuoto on
- etumerkkibitti erikseen
- kahden komplementti
- yhden komplementti
- lisättynä 32767:lla (Huomaa, että 32767=215-1)
- [1 p] Mikä on desimaalijärjestelmän luvun 90 esitys heksadesimaalijärjestelmässä?
- [2 p] Mikä on desimaalijärjestelmän luvun 19.75 binääriesitys?
- [2 p] Selitä miten liukuluvut esitetään käyttäen IEEE:n 32
bitin standardia liukuluvuille.
- [3 p] Mikä on IEEE:n 32-bitin
liukulukustandardin mukainen esitys desimaalijärjestelmän luvulle -19.375?
- [12 p] Prosessi (process).
- [4 p] Mikä on prosessi? 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 ja milloin prosessin tila muuttuu? Käsittele kukin
mahdollinen tilasiirtymä erikseen esimerkkitapahtuman avulla.
- [12 p] Konekäskyjen 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? Mitä tietoja
mihinkin kenttään talletetaan?
Anna konekäskyn "ADD R4, T(R2)" esitysmuoto muistissa käskyrakenteen
mukaan kokonaislukuina kentittäin, kun
symbolitaulussa symbolin T arvo on 25.
- [4 p] Mitä suorittimella tapahtuu konekäskyä
"ADD R4, T(R2)" suoritettaessa suoritussyklin eri vaiheissa?
- [12 p + 3 lisäpistettä] Ttk-91 koneen symbolinen konekieli.
Kokonaislukuarvoinen taulukko T[20]
on määritelty pääohjelmatasolla. Taulukossa on siis 20 alkiota
(alkiot 0,...,19). Oletetaan, että alkioihin on talletettu sekuntteja.
- [1 p] Anna taulukon T määrittely.
- [4 p] Tee funktio Summaa(S, N), joka palauttaa arvonaan
N-alkioisen taulukon S alkioiden summan, jos kaikki alkiot ovat
positiivisia, muuten funktio palauttaa arvon -1.
Parametri S on viiteparametri ja parametri N on arvoparametri.
- [4 p] Tee aliohjelma Muunna(TSec, H, Min, Sec), joka
muuntaa parametrissa TSec annetut sekunnit tunneiksi, minuuteiksi
ja sekunneiksi palauttaen tunnit ulostuloparametrissa H, minuutit
ulostuloparametrissa Min ja sekunnit ulostuloparametrissa Sec.
Jos esimerkiksi parametrin TSec arvo olisi 7401,
niin funktion pitäisi palauttaa parametrissa H
arvo 2, parametrissa Min arvo 3 ja parametrissa Sec
arvo 21, koska 2 * 3600 + 3 * 60 + 21 = 7401.
Parametri TSec on arvoparametri ja parametrit H, Min ja Sec
ovat viiteparametreja.
- [4 p] Anna ttk-91 symbolisen konekielen konekäskyt, joilla
funktiota Summaa ja aliohjelmaa Muunna käyttäen tulostetaan (pääohjelmatasolla
määritellyn) 20 alkioisen taulukon T sekunttien summa ja se
muunnettuna tunneiksi, minuuteiksi ja sekunneiksi, jos
taulukon kaikki alkiot olivat positiivisia.
- [2 p] Piirrä aktivointitietuepino
- funktion Summaa kutsun jälkeen
(CALL käskyn suorituksen jälkeen)
- pino-osoittimen SP arvon ollessa
suurimmillaan funktiota Muunna suoritettaessa.
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