581305-6 Tietokoneen toiminta, 5 op, koe 8.9.2015
Kirjoita jokaiseen vastauspaperiisi seuraavat tiedot:
nimi ja nimikirjoitus, opiskelijanumero ja kurssin nimi.
Kuhunkin tehtävään riittää noin 1-2 sivun vastaus.
Tämä koe on erilliskoe ja sen koealueena on koko kurssi.
- [9 p] IEEE standardin mukaiset 32 bitin liukuluvut.
- [2 p] Miten liukuluvut eroavat reaaliluvuista?
Anna konkreettinen esimerkki.
- [3 p] Mikä on IEEE standardin mukainen 32-bittinen liukulukujen esitystapa?
Mitä tarkoittaa esitysmuodon normalisointi? Mitä hyötyä siitä on ja milloin sitä käytetään?
- [2 p] Mitkä ovat lukujen +8.0 ja -0.25 IEEE standardin (32 bittiä) mukaiset esitysmuodot?
- [2 p] 32-bittinen liukuluku voidaan tallettaa Little-Endian tai Big-Endian talletusmuodossa. Selitä, miten nämä eroavat toisistaan. Anna joku konkreettinen esimerkki (esimerkiksi luvulla +8.0).
- [9 p] Konekäskyjen suoritus. Ajatellaan tilannetta, jossa suorituksessa oleva prosessi P suorittaa konekäskyä "load r1, tbl(r2)". Ohjelmointivirheen vuoksi r2:n arvo onkin nyt hyvin suuri (6543210) ja viittaus kohdistuu P:n muistialueen ulkopuolelle.
- [1 p] Missä kohtaa käskyjen nouto- ja suoritussykliä suorittava laitteisto havaitsee tämän virheen?
- [2 p] Kuinka virheeseen reagoidaan käskyjen nouto- ja suoritussyklin tasolla?
- [2 p] Kuinka virheen käsittely on toteutettu käyttöjärjestelmätasolla ja kuinka käyttöjärjestelmä reagoi virheeseen?
- [2 p] Kuinka kohtien (a-c) vastauksesi muuttuisi, jos kyseistä konekäskyä suoritettaessa r2:n arvo olisi sallituissa rajoissa, mutta käskyn suorituksen aikana tapahtuisi laitekeskeytys?
- [2 p] Mikä on etuoikeutettu käskyjen suoritustila, kuinka se liittyy tähän asiaan ja kuinka se on käytännössä toteutettu käskyjen suoritussyklissä?
- [9 p] Ohjelma ja sen suoritus järjestelmässä. Tarkastellaan prosessia P.
- [2 p] P on esitetty järjestelmässä sen kuvaajan (PCP, Process Control Block) avulla.
Mitä tietoja P:n PCB:ssä on?
- [2 p] Milloin P on tilassa valmis suoritukseen (Ready, Ready-to-Run)?
Ovatko P:n tiedot tällöin suorittimella (CPU), muistissa vai levyllä?
- [3 p] Milloin P on tilassa suorituksessa (Running)?
Ovatko P:n tiedot tällöin suorittimella (CPU), muistissa vai levyllä?
- [2 p] Milloin P on tilassa odottaa (waiting, suspended)?
Ovatko P:n tiedot tällöin suorittimella (CPU), muistissa vai levyllä?
-
[9 p] Titokone, TitoTrainer
ja ttk-91. Taulukko Table on 2-ulotteinen ja se on talletettu riveittäin. Siinä on 5 riviä ja 3 saraketta. Muuttujat i, j ja x on määritelty pääohjelmatasolla.
- [3 p] Toteuta ttk-91 symbolisella konekielellä lause
Table [3, 2] = 111
- [3 p] Voit olettaa, että indeksien i ja j arvot ovat sallituissa puitteissa. Toteuta ttk-91 symbolisella konekielellä lause
x = Table [i, j]
- [3 p] Funktio Get(A, Rows, Cols, r, c) palauttaa 2-ulotteisen taulukon A sen alkion A[r,c] arvon. A on talletettu riveittäin, siinä on Rows riviä ja Cols saraketta. Funktio Get myös tarkistaa, että r ja c ovat sallituissa rajoissa, ja käsittelee mahdolliset virhetilanteet. Parametri A on viiteparametri ja muut ovat arvoparametreja. Toteuta ttk-91 symbolisella konekielellä funktiota Get() kutsumalla lause
x = Table [i, j]
TTK-91 konekielen käskyt ovat:
NOP, STORE, LOAD, IN, OUT,
ADD, SUB, MUL, DIV, MOD,
AND, IR, XOR, SHL, SHR, COMP,
JUMP,
JNEG, JZER, JPOS, JNNEG, JNZER, JNPOS,
JLES, JEQU, JGRE, JNLES, JNEQU, JNGRE,
CALL, EXIT, PUSH, POP, PUSHR, POPR,
SVC