581305-6 Tietokoneen toiminta, 2 ov, erilliskoe 19.8.2003

Kirjoita jokaiseen vastauspaperiisi seuraavat tiedot: oma nimi, henkilötunnus, kokeen tai kurssin nimi, nimikirjoitus ja sivunumero.
  1. [15 p] Prosessi
    1. [5 p] Mikä on prosessi? Mikä on prosessin esitysmuoto järjestelmässä? Tarkenna.
    2. [5 p] Missä eri tiloissa prosessi voi olla? Missä ovat prosessin tiedot prosessin eri tilojen aikana? Suorittimella, muistissa, levyllä?
    3. [5 p] Oletetaan, että levy-I/O:ta odottavalle prosessille Q tulee laitekeskeytys (device interrupt) kun joku toinen prosessi P on suoritusvuorossa. Mitä järjestelmässä tapahtuu tälläin? Kerro erityisesti kaikki tilanvaihdot prosesseille P ja Q.

  2. [15 p] Ohjelmassa viitattava data voi sijaita (i) konekäskyssä, (ii) erillisellä data-alueella tai (iii) laiterekisterissä (esim. R2:ssa) . Kerro kustakin tavasta,
    1. [6 p] Miten dataan viittaus tapahtuu käytännössä? Anna konekielinen (ttk-91) esimerkki.
    2. [6 p] Mitä etuja/haittoja sillä on verrattuna muihin kahteen tapaukseen?
    3. [3 p] Anna esimerkki tilanteesta, jolloin sen käyttäminen olisi järkevämpää kuin kummankaan toisen vaihtoehdon. Perustele esimerkkisi.

  3. [15 p] Konekäskyjen suoritus.
    1. [3 p] Miten konekäsky  "ADD  R5, T(R1)" esitetään muistissa?
    2. [6 p] Miten suorittimella tapahtuu konekäskyä "ADD  R5, T(R1)" suoritettaessa käskyn suoritussyklin eri vaiheissa?
    3. [3 p] Määrittele käsite keskeytys (exception, interrupt). Minkä tyyppisiä keskeytyksiä on olemassa? Miten keskeytykset käsitellään suorittimella?
    4. [3 p] Mitä keskeytyksiä voi laitteistossa tapahtua konekäskyn "ADD  R5, T(R1)" suorituksen aikana?


  4. [15 p] Kymmenalkioinen taulukko Taulu[0..9] sekä muuttujat X ja I oletetaan määritellyksi pääohjelmatasolla. Toteuta seuraavien tehtävät ttk-91 koneen symbolisella konekielellä.
    1. [3 p] Tulosta taulukon Taulu alkion Taulu[7] arvo.
    2. [3 p] Tulosta taulukon Taulu alkion Taulu[I] osoite.
    3. [3 p] Sijoita muuttujan X arvo taulukon Taulu alkion Taulu[I] arvoksi.
    4. [3 p] Alusta taulukko Taulu siten, että sen kaikkien alkioiden arvoksi tulee 0 (nolla).
    5. [3 p] Alusta taulukko Taulu aliohjelmaa Init(Arr, Dim) käyttäen. Parametri Arr on viiteparametri ja parametri Dim on arvoparametri. Arr on alustettava taulukko ja Dim on k.o. taulukon alkioiden lukumäärä. (Huom: Aliohjelmaa Init ei siis tarvitse toteuttaa itse.)
Noudata suositusten mukaista aliohjelmien (funktioiden) kutsumekanismia.

    TTK-91 konekielen käskyt ovat: NOP, STORE, LOAD, IN, OUT, ADD, SUB, MUL, DIV, MOD, AND, OR, XOR, SHL, SHR, COMP, JUMP, JNEG, JZER, JPOS, JNNEG, JNZER, JNPOS, JLES, JEQU, JGRE, JNLES, JNEQU, JNGRE, CALL, EXIT, PUSH, POP, PUSHR, POPR, SVC