581305-6 Tietokoneen toiminta, 2 ov, erilliskoe 4.11.2003
Kirjoita jokaiseen vastauspaperiisi seuraavat tiedot: oma nimi,
henkilötunnus, kokeen tai kurssin nimi, nimikirjoitus ja sivunumero.
- [15 p] Prosessi
- [5 p] Mikä on prosessi? Mikä on prosessin esitysmuoto järjestelmässä?
Tarkenna.
- [5 p] Missä eri tiloissa prosessi voi olla? Missä ovat prosessin
tiedot prosessin eri tilojen aikana? Suorittimella, muistissa, levyllä?
- [5 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.
- [15 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, programmed I/O) käyttävä toteutus.
- [2 p] Mitkä kaikki laitteiston osat osallistuvat I/O:n toteuttamiseen?
- [3 p] Mitkä kaikki prosessit osallistuvat I/O:n toteuttamiseen?
Missä laitteiston osassa kukin prosessi on (suorittamassa koodiaan)?
- [4 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)?
- [15 p] Anna selkeä määrittely seuraaville käsitteille:
- [3 p] Etuoikeutettu tila (supervisor state)?
- [3 p] Keskeytys (exception, interrupt)
- [3 p] Hamming-koodi
- [3 p] Aktivointitietuepino
- [3 p] Java virtuaalikone (JVM)
- [15 p] Ttk-91 koneen konekieli. Tietuetyypin typeRec={Id, Age, Salary[12]}
mukaisille tietueille Rec1 ja Rec2 on varattu tilaa muistista. Niiden sijainteja
ei tiedetä (eli symboleja Rec1 ja Rec2 ei voi käyttää koodissa), mutta pääohjelmatasolla
määritellyt osoitinmuuttujat ptrRec1 ja ptrRec2 sisältävät niiden osoitteet.
Esimerkiksi, osoitinmuuttuja ptrRec1 osoittaa tietueeseen Rec1 eli osoitinmuuttujan
ptrRec1 arvo on tietueen Rec1 osoite. Tietueiden kentät on talletettu annetussa
järjestyksessä. Kenttä Salary on 12-alkioinen taulukko, jossa alkion
Salary[i] tarkoittaa kyseisen henkilön palkkaa i::ntenä kuukautena.
Kuukaudet (i) numeroidaan tässä 0, 1, ..., 11. Muuttujat I ja X
on myös määritelty pääohjelmatasolla.
Anna ttk-91 koneen symbolisella konekielellä käskyt, jotka suoritettaessa
tekevät annetut toimenpiteet:
- [3 p] X = Rec1.Age; #
kenttä Age tietueessa Rec1, eli
# kenttä Age osoitinmuuttujan ptrRec1 osoittamassa
tietueessa.
# X saa arvokseen tietueen Rec1 kentän Age arvon.
- [2 p] Rec1.Age = Rec2.Age;
- [3 p] X = Rec1.Salary[6];
- [2 p] X = Rec1.Salary[I];
- [2 p] Rec1.Salary[I] = Rec2.Salary[I];
- [3 p] Nollaa osoitinmuuttujan ptrRec1 osoittama tietue, eli aseta sen
kaikkien kenttien arvoksi nolla.
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