581305-6 Tietokoneen toiminta, 2 ov, kurssikuulustelu 27.2.2001

Kirjoita jokaiseen vastauspaperiisi seuraavat tiedot: oma nimi, henkilötunnus, kokeen tai kurssin nimi, nimikirjoitus ja sivunumero.
  1. [12 p] Prosessi ja suoritin (process and processor)
    1. [2 p] Mikä on prosessin esitysmuoto järjestelmässä?
    2. [3 p] Mitkä ovat prosessin suoritusaikaiset tilat (state)?
    3. [1 p] Miten prosessin tila näkyy käyttöjärjestelmälle?
    4. [1 p] Miten prosessin tila näkyy prosessille?
    5. [5 p] Miten ja milloin prosessin tila muuttuu? Käsittele kukin mahdollinen tilasiirtymä erikseen. Kerro kustakin tilasiirtymästä esimerkkitapahtuma, joka voisi aiheuttaa kyseisen tilasiirtymän.

  2. [14 p] Muistihierarkia (memory hierarchy)
    1. [5 p] Mainitse 4 eri nopeuksista muistihierarkian tasoa (fyysistä laitetta tai laitteistoa), joissa konekäskyssä viitattava tieto voi sijaita. Mitkä ovat eri tasojen nopeudet (karkealla tasolla)?
    2. [5 p] Anna jokaiselle tasolle ttk-91 symbolista konekieltä käyttäen esimerkki (konekäsky), jossa kyseiselle tasolle sijaitsevaan tietoon viitataan. Kerro erityisesti, missä käskyn suorituksen vaiheessa kyseinen viittaus tapahtuu ja mikä käskyn osa viittauksen aiheuttaa. Mainitse myöskin, onko kyseessä data- vai koodiviite.
    3. [4 p] Mitkä ensimmäisen kohdan (a) tasoista liittyvät välimuistiin (cache memory)? Millä tavoin välimuisti on toteutettu näiden tasojen avulla? Onko toteutus laitteisto- vai ohjelmistotasolla (HW- or SW-level)? Tämän kohdan vastaus voi olla korkeintaan 1 sivun mittainen.

  3. [14 p] Java-ohjelmia voidaan suorittaa ainakin kolmella hyvin erilaisella tavalla.
    1. [10 p] Kuvaile nämä kolme erilaista tapaa. Kiinnitä erityistä huomiota siihen, miten Java-ohjelmien suoritus suorittimen konekäskytasolla todella tapahtuu kussakin suoritustavassa ja miten suoritustavat eroavat toisistaan tässä suhteessa. Mainitse myös kunkin suoritustavan edut ja haitat muihin suoritustapoihin verrattuna. Vastauksen pituus ei saa ylittää 3 sivua.
    2. [4 p] Mitä Java-ohjelmien suoritustapaa ttk-91 ohjelmien suoritus Koksi-simulaattoria käyttäen muistuttaa? Miksi?
    3. Bonus kysymys [1 p]: Mitä Java-ohjelmien suoritustapaa Transmetan Crusoe-suorittimen toteutus muistuttaa? Miksi?

  4. [14 p] Funktio.
    1. Toteuta ttk-91 symbolisella konekielellä funktio Aver(Arr, N), joka palauttaa arvonaan N-alkioisen taulukon Arr alkioiden keskiarvon. Esimerkiksi, jos taulukolla T[0..4] on arvot {7, 5, 24, 5, 9}, niin funktion kutsu Aver(T, 5) palauttaa arvonaan luvun 10. Noudata suositusten mukaista aliohjelmien (funktioiden) toteutustapaa ja kutsumekanismia. Parametri N on arvoparametri ja parametri Arr on viiteparametri.
    2. Anna ttk-91 symbolisen konekielen konekäskyt, joilla em. funktiota käyttäen tulostetaan (muualla, pääohjelmatasolla määritellyn) 34-alkioisen taulukon Salary alkioiden arvojen keskiarvo.


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, LEGU, JGRE, LNLES, LNEQU, NGRE, CALL, EXIT, PUSH, POP, PUSHR, POPR, SVC <