581305-6 Tietokoneen toiminta, 2 ov, erilliskoe 25.1.2002
Kirjoita jokaiseen vastauspaperiisi seuraavat tiedot: oma
nimesi, henkilötunnus, kokeen tai kurssin nimi, nimikirjoitus ja sivunumero.
- [15 p] Suoritin (processor)
- [4 p] Mitkä ovat suorittimen suoritusaikaiset tilat (processor state)?
- [4 p] Miten ja milloin suorittimen tila muuttuu? Käsittele kukin
mahdollinen tilasiirtymä erikseen.
Kerro kustakin tilasiirtymästä esimerkkitapahtuma, joka voisi aiheuttaa
kyseisen tilasiirtymän.
- [4 p] Miten suorittimen tilat ja suoritettava prosessi liittyvät
toisiinsa? Missä suorittimen tilassa suoritin on prosessin
suoritusaikana? Missä suorittimen tilassa suoritin on prosessin
odottaessa I/O:n päättymistä?
- [3 p] Miten suorittimen tilat ja keskeytykset (interrupt, exception)
liittyvät toisiinsa? Mitä suorittimen tilalle tapahtuu keskeytysten
yhteydessä?
- [15 p] Tiedon muuttumattomuuden valvonta.
- [4 p] Mitä tarkoittaa käsite pariteettibitti? Anna esimerkki, jossa
käytetään paritettibittiä tiedon muuttumattomuuden valvonnassa. Anna
myös esimerkki tiedon muuttumattomuuden valvontaan liittyvästä
tilanteesta, jossa pariteettibitin käyttö ei ole riittävä (mutta
Hamming-koodin käyttö olisi riittävä). Perustele molemmat
esimerkkisi.
- [4 p] Mitä tarkoittaa käsite Hamming-koodi? Anna esimerkki, jossa käytetään
Hamming-koodia tiedon muuttumattomuuden valvonnassa. Anna myös
esimerkki tiedon muuttumattomuuden valvontaan liittyvästä tilanteesta,
jossa Hamming-koodin käyttö ei ole riittävä. Perustele molemmat
esimerkkisi.
- [7 p] Oletetaan, että (i) lähetetään 8-bittinen merkkikoodi 0xA4
(eli A416 eli '€') koneen sisäistä väylää
pitkin, ja (ii) kyseinen 8-bittinen data suojataan virheen korjaavalla
Hamming-koodilla.
- [2 p] Kuinka monta ylimääräistä bittiä tarvitaan? Miten ne
sijaitsevat? Mitkä ovat niiden arvot?
- [3 p] Miten Hamming-koodia käytetään korjaamaan tilanne, jossa
kyseinen merkki on muuttunut matkalla merkiksi 0xA5 (eli A516
eli '¥')?
- [2 p] Anna kyseisen Hamming-koodilla turvatun merkin siirtoon
liittyvä esimerkki, jossa kolmen bitin muuttuminen tiedonsiirron
aikana jää havaitsematta. Kerro, miksi virhettä ei havaita.
- [15 p] Java. Oletetaan, että ohjelma MyProg on kirjoitettu Javalla ja
että se suoritetaan järjestelmässä tulkitsemalla.
- [3 p] Mitä on ohjelmalle MyProg tehdään ennen sen varsinaisen
suorituksen alkua? Mikä on MyProg'in esitysmuoto suoritusaikana ja
miten siihen päästään?
- [3 p] Miten ohjelman MyProg suoritus lopulta tapahtuu suoritusaikana?
Minkälainen käyttöjärjestelmän tuntema prosessi (tai prosessit) on
suoritusvuorossa ohjelman MyProg suoritusaikana?
- [3 p] Jotkut väittävät Java-ohjelmien suorittamisen tulkitsemalla
olevan hitaampaa kuin vastaavien C-kielisten kännettyjen ohjelmien
suorittamisen kyseisessä ympäristössä. Anna hyvin perusteltu vastaus
tähän väitteeseen.
- [3 p] Miten tilanne kohtiin (a) ja (b) muuttuu, jos käytetään
JIT-käännöstä?
- [3 p] Miten tilanne kohtiin (a) ja (b) muuttuu, jos käytetään
Java-suoritinta?
- [15 p] Ttk-91 koneen konekieli. Kokonaislukuarvoinen
kaksi-ulotteinen taulukko G[3,4] on määritelty pääohjelmatasolla.
Taulukossa on siis 12 alkiota (alkiot G[0,0], ..., G[2,3]).
Kokonaislukumuuttujat i ja j on myös määritelty pääohjelmatasolla.
Taulukko on talletettu riveittäin.
- [5 p] Anna konekäskyt, joilla tulostetaan alkion G[2,2] arvo.
- [5 p] Anna konekäskyt, joilla tulostetaan alkion G[i,j] arvo. Voit
(epärealistisesti) olettaa, että muuttujien i ja j arvot ovat
sallituissa rajoissa.
- [5 p] Anna konekäskyt, joilla alustetaan taulukko G siten, että
G[i,j] = i+j kaikille G:n alkioille.
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