581305-6 Tietokoneen toiminta, koe 15.12.2011
Kirjoita jokaiseen vastauspaperiisi seuraavat tiedot:
nimi ja nimikirjoitus, opiskelijanumero ja kurssin nimi.
Kuhunkin tehtävään riittää noin yhden sivun vastaus.
Mukana saa olla yksi 2-puolinen A4-kokoinen käsin tai koneella tulostettu muistilappu.
- [10 p] Ohjelman suoritus järjestelmässä.
- Missä muodossa käyttöjärjestelmä näkee järjestelmässä olevan ohjelman P?
- Miten käyttöjärjestelmä aloittaa suoritusvuorossa olevan ohjelman P suorituksen? Mitä kaikkia P:n tietoja tuolloin tarvitaan, mistä ne löytyvät ja mitä niille tehdään?
- Miten ja milloin suoritusvuoro siirtyy sovellusohjelmalta P käyttöjärjestelmälle. Anna kolme tyypiltään erilaista esimerkkiä.
- Oletetaan, että suoritusvuoro on siirtynyt sovellusohjelmalta P käyttöjärjestelmälle. Miten ja milloin suoritusvuoro palaa heti takaisin käyttöjärjestelmältä sovellusohjelmalle P?
- Oletetaan, että suoritusvuoro on siirtynyt sovellusohjelmalta P käyttöjärjestelmälle. Missä tilanteissa suoritusvuoro ei palaa heti takaisin käyttöjärjestelmältä sovellusohjelmalle P? Mitä P:lle tapahtuu tuolloin? Anna kaksi tyypiltään erilaista esimerkkiä.
- [10 p] Konekäskyjen suoritus. Oletetaan, että rekisterin BASE arvo on 200000, rekisterin LIMIT arvo on 512, rekisterin R2 arvo on 400, symbolin LOOP arvo 84 ja symbolin A arvo on 120.
- [5 p] Määrittele käsite "käskyjen suoritussykli". Mitkä ovat sen vaiheet ja mitä vaiheissa tapahtuu?
Anna konkreettinen esimerkki, kun suoritusvuorossa on konekäsky "JZER R5, LOOP".
- [5 p] Miten muistiin viittaaminen tapahtuu kanta- ja rajarekistereitä käyttäen?
Anna konkreettinen esimerkki, kun suoritusvuorossa on konekäsky "LOAD R1, A".
Anna toinen konkreettinen esimerkki, kun suoritusvuorossa on konekäsky "LOAD R0, A(R2)"
- [10 p] Java
- Mikä on Java virtuaalikone (Java virtual machine, JVM)?
- Mikä on Javan tavukoodi (byte koodi) ja miten se generoidaan?
- [6 p] Anna kolme erilaista tapaa Java-ohjelman suorittamiseen.
Miten ne eroavat toisistaan? Mitä niillä on yhteistä? Miten ne liittyvät JVM:een ja Java tavukoodiin?
-
[10 p] Titokone, TitoTrainer
ja ttk-91. Funktio F(a, b, c) palauttaa arvonaan lausekkeen 2a+3b-4c+5 arvon. Esimerkiksi lausekkeen x = F(1,2,3) suorituksen jälkeen muuttujan x arvo on 1. Parametrit a ja b ovat arvoparametreja ja parametri c on viiteparametri.
Muuttujat x ja y on määritelty pääohjelmatasolla.
- [3 p] Toteuta ttk-91 symbolisella konekielellä (funktiota F kutsumalla) lauseke
x = F(x, y, y).
- [2 p] Toteuta ttk-91 symbolisella konekielellä (funktiota F kutsumalla) lauseke
x = F(x+11, x-y, x-y).
- [5 p] Toteuta ttk-91 symbolisella konekielellä funktio F.
Noudata suositusten mukaista aliohjelmien (funktioiden) kutsumekanismia.
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