581305-6 Tietokoneen toiminta, 4 op, koe 4.4.2014
Kirjoita jokaiseen vastauspaperiisi seuraavat tiedot:
nimi ja nimikirjoitus, opiskelijanumero ja kurssin nimi.
Kuhunkin tehtävään riittää noin 1-2 sivun vastaus.
- [9 p] Tiedon esitys.
- [3 p] Anna kokonaisluvulle -11 kolme erilaista 8-bittistä tiedon talletusmuotoa muistissa. Nimeä talletusmuodot ja näytä kuinka luku -11 esitetään niiden avulla.
- [3 p] Miten liukuluvut esitetään muistissa? Mikä on liukulukujen normeerattu 32-bittinen esitysmuoto ja miksi sitä käytetään?
Miten liukuluku 4.0 esitetään muistissa?
- [3 p] Mitä tarkoittavat käsitteet Little Endian ja Big Endian tiedon talletuksen yhteydessä? Anna kuvaava esimerkki käyttäen 32-bittistä kokonaislukua 0x1122AABB.
- [9 p] Ohjelman suoritus järjestelmässä.
- [3 p] Mikä on prosessi ja mikä on sen esitysmuoto järjestelmässä? Mihin sitä tarvitaan ja mitä tietoja siihen kuuluu?
- [3 p] Miten ja milloin prosesseja luodaan järjestelmään? Miten ja milloin niitä poistetaan järjestelmästä? Käytä esimerkkinä korkean tason kielellä (esim. Java tai C) kirjoitettua ohjelmaa P.
- [3 p] Mikä on prosessin suoritinympäristö (processor context)? Mihin sitä tarvitaan ja mitä tietoja siihen kuuluu? Mikä on prosessin vaihto (process switch) ja kuinka se toteutetaan konekäskytasolla?
- [9 p] Java
- [1 p] Mikä on Java virtuaalikone (Java virtual machine, Java VM, JVM)?
- [2 p] P on Javalla kirjoitettu pieni ohjelma. Kuinka P suoritetaan tulkitsemalla? Missä muodossa P on suoritushetkellä ja kuinka se on saatu siihen? Milloin ja miksi tulkitseminen olisi parempi vaihtoehto kuin ne kolme muuta suoritusvaihtoehtoa?
- [2 p] P on Javalla kirjoitettu pieni ohjelma. Kuinka P suoritetaan kääntämällä? Missä muodossa P on suoritushetkellä ja kuinka se on saatu siihen? Milloin ja miksi kääntäminen olisi parempi vaihtoehto kuin ne kolme muuta suoritusvaihtoehtoa?
- [2 p] P on Javalla kirjoitettu pieni ohjelma. Kuinka P suoritetaan JIT-käännöksellä? Missä muodossa P on suoritushetkellä ja kuinka se on saatu siihen? Milloin ja miksi JIT-käännös olisi parempi vaihtoehto kuin ne kolme muuta suoritusvaihtoehtoa?
- [2 p] P on Javalla kirjoitettu pieni ohjelma. Kuinka P suoritetaan Java-suorittimessa? Missä muodossa P on suoritushetkellä ja kuinka se on saatu siihen? Milloin ja miksi Java-suoritin olisi parempi vaihtoehto kuin ne kolme muuta suoritusvaihtoehtoa?
-
[9 p] Titokone, TitoTrainer
ja ttk-91. Kokonaislukuarvoinen funktio ffunny(x, y, z) palauttaa arvonaan lausekkeen y+z/x arvon. Parametrit x ja y ovat arvoparametreja ja z on viiteparametri. Kokonaislukuarvoiset muuttujat a, b ja c on määritelty pääohjelmatasolla.
- [3 p] Toteuta (ttk-91 symbolisella konekielellä) funktiota ffunny() kutsuva lauseke a=ffunny(123, b, c).
- [3 p] Toteuta funktiota ffunny() kutsuva lauseke a=ffunny(a+1, 5554444, a+1).
- [3 p] Toteuta kokonaislukuarvoinen funktio ffunny(x, y, z),
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