581305-6 Tietokoneen toiminta, 2 ov, kurssikoe 12.05.2005    

Kirjoita jokaiseen vastauspaperiisi seuraavat tiedot: oma nimesi, henkilötunnus, kokeen tai kurssin nimi, nimikirjoitus ja sivunumero.
  1. [12 p] Tiedon esitys.
    1. [4 p] Anna Big Endian 16-bittisten desimaalilukujen +23 ja -40 esitys tietokoneessa, kun kokonaislukujen esitysmuoto on
      1. etumerkkibitti erikseen
      2. kahden komplementti
      3. yhden komplementti
      4. lisättynä 32767:lla (Huomaa, että 32767=215-1)
    2. [1 p] Mikä on desimaalijärjestelmän luvun 90 esitys heksadesimaalijärjestelmässä?
    3. [2 p] Mikä on desimaalijärjestelmän luvun 19.75 binääriesitys?
    4. [2 p] Selitä miten liukuluvut esitetään käyttäen IEEE:n 32 bitin standardia liukuluvuille.
    5. [3 p] Mikä on IEEE:n 32-bitin liukulukustandardin mukainen esitys desimaalijärjestelmän luvulle -19.375?

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

  3. [12 p] Konekäskyjen suoritus.
    1. [4 p] Määrittele käsite "käskyjen suoritussykli". Mitkä ovat sen vaiheet? Piirrä kuva suoritussyklistä.
    2. [4 p] Millainen on TTK-91 koneen käskyrakenne? Mitä tietoja mihinkin kenttään talletetaan? Anna konekäskyn "ADD R4, T(R2)" esitysmuoto muistissa käskyrakenteen mukaan kokonaislukuina kentittäin, kun symbolitaulussa symbolin T arvo on 25.
    3. [4 p] Mitä suorittimella tapahtuu konekäskyä "ADD R4, T(R2)" suoritettaessa suoritussyklin eri vaiheissa?

  4. [12 p + 3 lisäpistettä]  Ttk-91 koneen symbolinen konekieli. Kokonaislukuarvoinen taulukko T[20] on määritelty pääohjelmatasolla. Taulukossa on siis 20 alkiota (alkiot 0,...,19). Oletetaan, että alkioihin on talletettu sekuntteja.
    1. [1 p] Anna taulukon T määrittely.
    2. [4 p] Tee funktio Summaa(S, N), joka palauttaa arvonaan N-alkioisen taulukon S alkioiden summan, jos kaikki alkiot ovat positiivisia, muuten funktio palauttaa arvon -1. Parametri S on viiteparametri ja parametri N on arvoparametri.
    3. [4 p] Tee aliohjelma Muunna(TSec, H, Min, Sec), joka muuntaa parametrissa TSec annetut sekunnit tunneiksi, minuuteiksi ja sekunneiksi palauttaen tunnit ulostuloparametrissa H, minuutit ulostuloparametrissa Min ja sekunnit ulostuloparametrissa Sec. Jos esimerkiksi parametrin TSec arvo olisi 7401, niin funktion pitäisi palauttaa parametrissa H arvo 2, parametrissa Min arvo 3 ja parametrissa Sec arvo 21, koska 2 * 3600 + 3 * 60 + 21 = 7401. Parametri TSec on arvoparametri ja parametrit H, Min ja Sec ovat viiteparametreja.
    4. [4 p] Anna ttk-91 symbolisen konekielen konekäskyt, joilla funktiota Summaa ja aliohjelmaa Muunna käyttäen tulostetaan (pääohjelmatasolla määritellyn) 20 alkioisen taulukon T sekunttien summa ja se muunnettuna tunneiksi, minuuteiksi ja sekunneiksi, jos taulukon kaikki alkiot olivat positiivisia.
    5. [2 p] Piirrä aktivointitietuepino
      1. funktion Summaa kutsun jälkeen (CALL käskyn suorituksen jälkeen)
      2. pino-osoittimen SP arvon ollessa suurimmillaan funktiota Muunna suoritettaessa.
    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