581305-6 Tietokoneen toiminta, 2 ov, erilliskoe 26.3.2002 (Other
side in English )
Kirjoita jokaiseen vastauspaperiisi seuraavat tiedot: oma
nimesi, henkilötunnus, kokeen tai kurssin nimi, nimikirjoitus ja sivunumero.
- [15 p] Prosessi
- [5 p] Mikä on prosessin esitysmuoto järjestelmässä? Missä ovat
prosessin tiedot prosessin eri tilojen aikana? Suorittimella, muistissa,
levyllä?
- [2 p] Anna esimerkki tilanteesta, jossa prosessin tila muuttuu tilasta
"New" tilaan "Blocked"?
Mitä järjestelmässä tapahtuu tilanvaihdon aikana?
- [2 p] Anna esimerkki tilanteesta, jossa prosessin tila muuttuu tilasta
"Running" tilaan "Blocked"?
Mitä järjestelmässä tapahtuu tilanvaihdon aikana?
- [2 p] Anna esimerkki tilanteesta, jossa prosessin tila muuttuu tilasta
"New" tilaan "Ready"?
Mitä järjestelmässä tapahtuu tilanvaihdon aikana?
- [2 p] Anna esimerkki tilanteesta, jossa prosessin tila muuttuu tilasta
"Blocked" tilaan "Ready"?
Mitä järjestelmässä tapahtuu tilanvaihdon aikana?
- [2 p] Anna esimerkki tilanteesta, jossa prosessin tila muuttuu tilasta
"Ready" tilaan "Running"?
Mitä järjestelmässä tapahtuu tilanvaihdon aikana?
- [15 p] Oletetaan, että levyn pyörimisnopeus on 7200 rpm, siinä on yksi
luku/kirjoituspää per levypinta, sylintereiden (uraa per levypinta)
lukumäärä on 2000, joka uralla on 50 sektoria ja sektorin koko on 0.5 KB.
Otaksumme (epärealistisesti), että hakuvarren siirtoaika on lineaarinen
urien lukumäärän suhteen ja että se on 0.02 ms per ura. Otaksumme
(epärealistisesti), että luettavan tiedoston jokaisen sektorin sijainti on
täysin satunnainen levyllä, mistä saadaan todennäköisyyslaskentaa
käyttäen keskimääräiseksi ylitettävien urien lukumääräksi 667.
Otaksumme edelleen (epärealistisesti), että tiedosto luetaan levyltä yksi
sektori kerrallaan. Kauanko kestää 333.33 KB tiedoston lukeminen levyltä
keskimäärin? Entä 24 MB tiedoston lukeminen?
- [15 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?
- [15 p] Ttk-91 koneen konekieli. Kokonaislukuarvoiset muuttujat X ja
I on määritelty pääohjelmatasolla. Kokonaislukuarvoinen taulukko T[100]
on määritelty pääohjelmatasolla. Taulukossa on siis 100 alkiota (alkiot
T[0], ..., T[99]). Tietuetyypin typeRec={Id, Age, Salary} mukaisille
tietueille Rec1 ja Rec2 on varattu tilaa pääohjelmatasolla. Tietueiden
Rec1 ja Rec2 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.
Osoitinmuuttuja ptrRec1 osoittaa siis tietueeseen Rec1. Tietueiden kentät
on talletettu annetussa järjestyksessä. Anna ttk-91 koneen symbolisella
konekielellä (tai muulla vastaavalla sovitulla kielellä) käskyt,
jotka suoritettaessa tekevät annetut toimenpiteet:
- [3 p] X = T[23];
- [3 p] X = T[I];
# assume (unrealistically) that value of I is in [0,99]
- [3 p] Nollaa taulukko T, eli aseta sen kaikkien alkioiden arvoksi
nolla.
- [2 p] X =
Rec1.Age;
# field Age in Rec1, I.e., field Age in record pointed by ptrRec1
- [2 p] Rec1.Salary = Rec2.Salary;
- [2 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