Tietokoneen toiminta, 2
ov
Uusintakuulustelu 10.11.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] Prosessi
- [4 p] Mikä on prosessi? Mikä on prosessin esitysmuoto järjestelmässä?
Tarkenna.
- [4 p] Missä eri tiloissa prosessi voi olla? Missä ovat prosessin
tiedot prosessin eri tilojen aikana? Suorittimella, muistissa, levyllä?
- [4 p] Oletetaan, että levy-I/O:ta odottavalle prosessille Q tulee
laitekeskeytys (device interrupt) kun joku toinen prosessi P on suoritusvuorossa.
Mitä järjestelmässä tapahtuu tälläin? Kerro erityisesti kaikki
tilanvaihdot prosesseille P ja Q.
- [12 p] I/O:n toteutus. Käsitellään tässä käyttäjätason
prosessia P, joka kirjoittaa 2000 sanan datasegmentin kovalevylle. Käytössä
on suoraa I/O:ta (direct I/O) käyttävä toteutus.
- [3 p] Mitkä kaikki prosessit osallistuvat I/O:n toteuttamiseen?
Missä laitteiston osassa kukin prosessi on (suorittamassa koodiaan)?
- [3 p] Mitä kaikkea järjestelmässä tapahtuu siitä
hetkestä alkaen kun P aloittaa I/O:n, siihen hetkeen asti, kun P
jatkaa suoritustaan I/O:n jälkeen?
- [2 p] Miten tilanne (kohdat a-c) muuttuisi, jos käytössä
olisikin epäsuora I/O (indirect I/O)?
- [2 p] Miten tilanne (kohdat a-c) muuttuisi, jos käytössä
olisikin DMA-perustainen I/O?
- [2 p] Mitä tarkoittaa käsite "muistiinkuvattu I/O"
(memory-mapped I/O)?
- [12 p] Anna selkeä määrittely seuraaville käsitteille:
- [2 p] Etuoikeutettu tila (supervisor state)?
- [2 p] Keskeytys (exception, interrupt)
- [2 p] Hamming-koodi
- [2 p] Aktivointitietuepino (activation record stack)
- [2 p] Java virtuaalikone (JVM)
- [2 p] Uudelleensijoitustaulu (relocation table)
- [12 p] Ttk-91 koneen konekieli. Kokonaislukuarvoinen taulukko T[100]
on määritelty pääohjelmatasolla. Taulukossa on siis 100 alkiota (alkiot 0,...,99).
- [3 p] Anna konekäskyt, joilla tulostetaan alkion T[65] arvo ja sen osoite.
- [3 p] Anna konekäskyt (siis ei aliohjelma), joilla alustetaan taulukko
T siten, että kunkin alkion T[i] arvoksi tulee i*i+5. Esimerkiksi,
alkion T[11] arvoksi tulee 126.
- [3 p] Tee aliohjelma Alusta(S, N), jolla alustetaan annetun N:n pituisen
taulukon S alkiot (alkiot S[0], ..., S[N-1]) siten, että kunkin alkion
S[i] arvoksi tulee i+N. Parametri S (alustettava taulukko) on viiteparametri
ja parametri N (alustettavan taulukon pituus) on arvoparametri. Esimerkiksi,
jos aliohjelman Alusta avulla alustetaan taulukko T, niin alkion T[11]
arvoksi tulee 111.
- [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.
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