581305-6 Tietokoneen toiminta, koe 13.12.2012   

Kirjoita jokaiseen vastauspaperiisi seuraavat tiedot: nimi ja nimikirjoitus, opiskelijanumero ja kurssin nimi. Kuhunkin tehtävään riittää 1-2 sivun vastaus.

  1. [10 p] Ohjelman suoritus järjestelmässä.
    1. [5 p] Mikä on prosessi? Mikä on prosessin esitysmuoto järjestelmässä?
    2. [5 p] Mitä tarkoittaa, kun prosessi P on Valmis suoritukseen (ready-to-run) -tilassa? Miten ja milloin se pääsee siihen tilaan? Miksi se on siellä? Minkä tapahtuman seurauksena se pääsee sieltä pois ja mihin tilaan se silloin siirtyy?

  2. [10 p] Konekäskyjen suoritus.
    1. [5 p] Kuinka konekäskyjen suoritus tapahtuu? Mitkä ovat suorituksen vaiheet ja mitä vaiheissa tapahtuu? Anna konkreettinen esimerkki, kun suoritusvuorossa on konekäsky "call sp, max".
    2. [3 p] Mikä on etuoikeutettu suorittimen suoritustila? Miten se eroaa tavallisesta suoritustilasta? Miksi sellainen on olemassa? Kuinka etuoikeutettuun suoritustilaan päästään ja kuinka sieltä päästään pois?
    3. [2 p] Oletetaan, että käskyn suoritusaikana tapahtuu jokin virhetilanne. Kuinka tämä havaitaan? Kuinka käyttöjärjestelmä saa kontrollin ja käsittelee virhetilanteen? Mitä sitten tapahtuu? Anna konkreettinen esimerkki, kun suoritusvuorossa on konekäsky "call sp, max".
       
       
  3. [10 p] Tiedon esitys.
    1. [4 p] Millä neljällä eri tavalla kokonaislukuja voi esittää muistissa? Anna esimerkkisi 8-bittiselle kokonaisluvulle -4.
    2. [3 p] Miten liukuluvut esitetään muistissa? Mikä on liukulukujen normeerattu esitysmuoto ja miksi sitä käytetään?
    3. [2 p] Mitä tarkoittavat käsitteet Little Endian ja Big Endian tiedon talletuksen yhteydessä? Anna kuvaava 32-bittinen esimerkki.
    4. [1 p] Mikä on liukuluvun -4.0 esitysmuoto 32 bittisen IEEE-standardin mukaisessa Big-Endian talletusmuodossa?

     
  4. [10 p] Titokone, TitoTrainer ja ttk-91. Kokonaislukuarvoinen funktio Max(Arr, n) palauttaa arvonaan
    n
    -alkioisen taulukon Arr[0:n-1] suurimman alkion arvon. Parametri Arr on viiteparametri ja parametri n on arvoparametri.
    1. [4 p] Anna ttk-91 koneen symbolisella konekielellä käskyt, joilla funktiota Max() käyttäen lasketaan globaalille muuttujalle maxpalkka arvoksi globaalilla tasolla määritellyn 200-alkioisen taulukon Palkat[0:199] suurin arvo.
    2. [3 p] Anna ttk-91 koneen symbolisella konekielellä käskyt, joilla funktiota Max() käyttäen lasketaan globaalille muuttujalle maxIJpalkka arvoksi globaalilla tasolla määritellyn 200-alkioisen taulukon Palkat[0:199] osataulukon Palkat[i:j] eli alkioiden Palkat[i], Palkat[i+1], ..., Palkat[j] suurimman alkion arvon. Indeksien i ja j arvot ovat globaaleissa muuttujissa I ja J. Voit olettaa, että 0 ≤ i j <200.
    3. [3 p] Toteuta ttk-91 koneen symbolisella konekielellä funktio Max().

      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