Tietokoneen toiminta, 2
ov
Uusintakuulustelu 11.10.2003 (Avoin yo)
Tähän uusintakuulusteluun voivat osallistua vain kesällä 2003 Avoimen yliopiston
tietokoneen toiminta -kurssille aktiivisesti osallistuneet (vähintään 8 harjoitustehtäväpistettä)
opiskelijat. Arvosana määräytyy tämän tentin ja tehtyjen harjoitustehtävien
perusteella. Tentti arvostellaan 27.11.2003 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 ohjelmia (tavukoodia) voidaan suorittaa ainakin kolmella hyvin
erilaisella tavalla. Kerro kustakin tavasta,
- miten suoritus tapahtuu sitä käyttäen?
- mikä käyttöjärjestelmän tuntema prosessi on suoritusvuorossa k.o. Java
ohjelmaa suoritettaessa?
- esimerkki tilanteesta, jolloin kyseinen tapa olisi parempi kuin muut
vaihtoehdot. Perustele.
- esimerkki tilanteesta, jolloin kyseinen tapa olisi huonompi kuin muut
vaihtoehdot. Perustele.
- sopisiko tämä tapa muita paremmin Java-ohjelmoinnin harjoitustyön suorittamiseen?
Miksi?
- [12 p] Hamming koodi. Oletetaan, että meillä on 4-bittinen data
(0xC eli 1011), joka suojataan Hamming koodin avulla. Oletetaan, että
bitit numeroidaan oikealta vasemmalle (kuten luennolla esitettiin). Käytössä
on parillinen pariteetti.
- [2 p] Montako pariteettibittiä tarvitaan suojaamaan näitä
neljää data-bittiä?
- [4 p] Anna Hamming koodilla suojattu kyseisen datan esitysmuoto (pariteettibitteineen).
- [2 p] Oletetaan nyt, että kolmas (3) bitti oikealta (kyseisessä
datassa pariteettibitteineen) on tiedon siirron aikana muuttunut. Havaitaanko
virhe Hamming koodin avulla? Voidaanko se korjata? Miten tai miksi ei? Näytä
yksityiskohtaisesti.
- [2 p] Oletetaan nyt, että sekä toinen (2) että kolmas (3)
bitti oikealta ovat molemmat muuttuneet tiedon siirron aikana. Havaitaanko
virhe Hamming koodin avulla? Voidaanko se korjata? Miten tai miksi ei? Näytä
yksityiskohtaisesti.
- [2 p] Jos databittejä olisi 16, niin montako pariteettibittiä
tarvittaisiin?
- [12 p] Ttk-91 koneen konekieli. Kokonaislukuarvoinen taulukko T[100]
on määritelty pääohjelmatasolla. Taulukossa on siis 100 alkiota (alkiot 0,...,99).
Kokonaislukumuuttujat k ja r on myös määritelty pääohjelmatasolla.
- [3 p] Anna konekäskyt, joilla tulostetaan alkion T[44] arvo ja sen osoite.
- [3 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 tulostetaan alkion T[r] arvo. Jos r:n
arvo on epäkelpo, kutsu käyttöjärjestelmäpalvelua
BadIndex SVC:n avulla (SVC SP, =BadIndex)
- [3 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 (alustettava taulukko) on viiteparametri
ja parametri N (alustettavan taulukon pituus) 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