581305-6 Tietokoneen toiminta, 4 op (2 ov), erilliskoe 3.2.2006   

Kirjoita jokaiseen vastauspaperiisi seuraavat tiedot: nimi ja nimikirjoitus, henkilötunnus tai opiskelijanumero, kurssin nimi ja sivunumero.
  1. [15 p] Käännös ja linkitys
    1. [3 p] Käännösaikana (esim. ttk-91 symbolisen konekielen käännös) lähdekoodi tulee käydä läpi useamman kuin yksi kertaa. Miksi? Anna kuvaava esimerkki.
    2. [3 p] Milloin kannattaa käyttää staattista linkitystä dynaamisen linkityksen asemesta?
      Mitä etua sillä saavutetaan?
    3. [3 p] Windows-järjestelmissä on käytössä (ainakin) kaksi erilaista tapaa tehdä dynaaminen linkitys.
      Miten ne eroavat staattisesta linkityksestä? Miten ne eroavat toisistaan?
    4. [3 p] Oletetaan, että sinulla on suurehko tietokonepeli, jossa on 8 erilaista tasoa pelaajan eri taitoasteille.
      Olisiko järkevämpi käyttää staattista vai dynaamista linkitystä? Miksi?
    5. [3 p] Mitä tarkoittaa käsite "sijainnista riippumaton koodi" (position independent code)? Milloin koodi on sijainnista riippumatonta? Mitä etua sillä saavutetaan?
       
  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, milloin ja miksi prosessin tila muuttuu? Käsittele neljä (4) mahdollista tilasiirtymää erikseen esimerkkitapahtuman avulla.

  3. [15 p] Konekäskyjen esitysmuoto ja 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 ja mitä tietoja mihinkin kenttään talletetaan. Anna konekäskyn "MUL R4, T(R2)" esitysmuoto muistissa käskyrakenteen mukaan kokonaislukuina (ei tarvitse muuttaa biteiksi), kun symbolitaulussa T:n arvo on 55. (Operaation MUL käskykoodi on 19).
    3. [3 p] Miten ttk-91 konekielessä ilmaistaan tilanne, jossa indeksirekisteriä ei käytetä lainkaan? Anna esimerkki konekäskyn "MUL R1, =5" avulla.
    4. [4 p] Mitä suorittimella tapahtuu konekäskyä "MUL R4, T(R2)" suoritettaessa suoritussyklin eri vaiheissa? Montako muistiviitettä tapahtuu, milloin ne tapahtuvat, mihin muistiosoitteeseen ne kohdistuvat ja ovatko ne ne luku- vai kirjoitusoperaatioita?

  4. [15 p]  Ttk-91 koneen symbolinen konekieli. Kokonaislukuarvoiset muuttujat X ja Y sekä kokonaislukuarvoinen taulukko T[32] on määritelty pääohjelmatasolla. Taulukossa on siis 32 alkiota (indeksit 0,...,31).
    1. [3 p] Anna muuttujien X ja Y sekä taulukon T määrittely.
    2. [6 p] Toteuta funktio Suurin(Taulu, N), joka palauttaa parametrina annetun N-alkioisen taulukon Taulu suurimman alkion arvon. Parametri N on arvoparametri ja parametri Taulu viiteparametri.
    3. [3 p] Anna käskyt, funktion Suurin avulla etsitään taulukon T suurimman alkion arvo ja tulostetaan se.
    4. [3 p] Miten funktiota Suurin tulisi muuttaa, jos suurimman alkion arvon asemesta tulisikin palauttaa sen indeksi?
    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