581305-6 Tietokoneen toiminta, 2 ov, erilliskoe 8.2.2005    

Kirjoita jokaiseen vastauspaperiisi seuraavat tiedot: oma nimesi, henkilötunnus, kokeen tai kurssin nimi, nimikirjoitus ja sivunumero.
  1. [15 p] Tiedon esitys.
    1. [3 p] Selitä millainen esitysmuoto on kahden komplementti.
    2. [2 p] Selitä millainen esitysmuoto on etumerkkibitti erikseen.
    3. [4 p] Anna 16-bittisten desimaalilukujen +129 ja -9 esitys koneessa, kun kokonaislukujen esitysmuoto on
      1. etumerkkibitti erikseen
      2. kahden komplementti
    4. [3 p] Selitä miten liukuluvut esitetään käyttäen IEEE:n 32 bitin standardia liukuluvuille.
    5. [3 p] Anna desimaaliluvun -9,75 IEEE:n liukustandardin mukainen esitys.

  2. [15 p] Prosessi (process)
    1. [3 p] Mikä on prosessi?
    2. [4 p] Mitä tietoja prosessin kuvaaja (Process Control Block) tyypillisesti sisältää.
    3. [4 p] Piirrä prosessin suoritusaikaisista tiloista (process state) tilakaavio. Kerro tilojen nimet ja piirrä niiden väliset tilasiirtymät.
    4. [4 p] Miten ja milloin prosessin tila muuttuu? Käsittele kukin mahdollinen tilasiirtymä erikseen esimerkkitapahtuman avulla.

  3. [15 p] Java
    1. Miksi ohjelman yleinen esitysmuoto systeemissä on tavukoodi (Java bytecode) eikä korkean tason kieli (Java)?
    2. Miten tavukoodina esitetyn Java-ohjelman suoritus tapahtuu tulkitsemalla?
    3. Vertaile Ttk91-koneen konekieltä ja Javan tavukoodia. Mitä eroja löytyy? Mikä on samanlaista?

  4. [15 p]  Ttk-91 koneen symbolinen konekieli. Kokonaislukuarvoiset muuttujat I ja C sekä kokonaislukuarvoinen taulukko T[50] on määritelty pääohjelmatasolla. Taulukossa on siis 50 alkiota (alkiot 0,...,49).
    1. [2 p] Anna muutujien I ja C sekä taulukon T määrittely.
    2. [4 p] Tee funktio Sijoita(S, N, Ind, Arvo), joka tarkistaa että N-alkioisen taulukon S indeksi Ind on sallitulla välillä (eli ei pienempi kuin nolla eikä suurempi kuin N-1) ja tarkistuksen onnistuessa sijoittaa arvon Arvo S[Ind]:n arvoksi. Lisäksi funktio palauttaa arvon yksi, jos sijoitus onnistui ja arvon nolla, jos sijoitus epäonnistui (eli indeksi Ind ei ollut sallitulla välillä.) Parametri S on viiteparametri ja parametrit N, Ind ja Arvo ovat arvoparametreja.
    3. [3 p] Anna käskyt, joilla funktiota Sijoita käyttäen sijoitetaan (pääohjelmatasolla määritellyn) 50 alkioisen taulukon T alkion T[5] arvoksi 8.
    4. [3 p] Anna käskyt, joilla funktiota Sijoita käyttäen sijoitetaan (pääohjelmatasolla määritellyn) 50 alkioisen taulukon T alkion T[I] arvoksi muuttujan C arvo. Lisäksi jos sijoitus ei onnistunut, niin tulosta funktion palauttama arvo.
    5. [3 p]Piirrä aktivointitietuepino (tarkasteltaessa kutsua kohdassa d)
      1. funktion Sijoita kutsun jälkeen (CALL käskyn jälkeen)
      2. pino-osoittimen SP arvon ollessa suurimmillaan funktiota Sijoita suoritettaessa
      3. ennen funktion Sijoita EXIT-käskyn suoritusta
      4. funktion Sijoita EXIT-käskyn suorituksen jälkeen.
    Noudata suositusten mukaista aliohjelmien (funktioiden) toteutustapaa ja 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