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

Kirjoita jokaiseen vastauspaperiisi seuraavat tiedot: nimi ja nimikirjoitus, henkilötunnus tai opiskelijanumero, kurssin nimi ja sivunumero.
  1. [15 p] Tiedon esitysmuodot
    1. Mitä tarkoittaa käsite "suorittimen ymmärtämä tietotyyppi"? Minkälaista tietotyyppejä tietokoneen suoritin yleensä ymmärtää?
    2. Anna esimerkkejä tietotyypeistä, joita suoritin yleensä ei ymmärrä?
    3. Oletetaan, että meillä on edellisessä kohdassa (b) mainittu tietotyyppi TT. Voiko ohjelmassa käyttää tietotyyppiä TT, vaikka suoritin ei sitä ymmärrä? Jos voi niin miten? Jos ei voi, niin perustele tarkemmin.
    4. Valitse jokin suorittimen ymmärtämä tietotyyppi ja kerro täsmällisesti, miten se voidaan toteuttaa.
    5. Mitä tarkoittaa käsite "Little Endian" talletusmuoto? Milloin sillä on merkitystä? Anna konkreettinen esimerkki.

    6.  
  2. [15 p] Konekäskyjen esitysmuoto ja suoritus
    1. Määrittele käsite "käskyjen suoritussykli". Mitkä ovat sen vaiheet? Piirrä kuva suoritussyklistä.
    2. Millainen on ttk-91 koneen käskyrakenne ja mitä tietoja mihinkin kenttään talletetaan. Anna konekäskyn "ADD R4, R2" esitysmuoto muistissa yhtenä heksadesimaalijärjestelmän kokonaislukuna. (Operaation ADD operaatiokoodi on 17 desimaalilukuna).
    3. Mitä suorittimella tapahtuu konekäskyä "ADD R4, R2" suoritettaessa suoritussyklin eri vaiheissa? Montako muistiviitettä tapahtuu, milloin ne tapahtuvat, mihin muistiosoitteeseen ne kohdistuvat ja ovatko ne ne luku- vai kirjoitusoperaatioita?
    4. Miten ttk-91 konekielessä (siis ei symbolisessa konekielessä) viitataan dataan, jonka osoite on tiedossa muistissa osoitinmuuttujan (esim. muuttuja ptrX) arvona? Onko tässä merkitystä sillä, luetaanko vai kirjoitetaanko kyseiseen tietoon?
    5. Oletetaan, että muistipaikassa 100 oleva konekäsky on suorituksessa ja tämä käsky muuttaa muistipaikan 100 arvoa. Miten tämä vaikuttaa kyseisen käskyn suoritukseen? Meneekö suoritus sekaisin? Jos menee, niin miksi ja miten? Jos ei mene, niin miksi ei?

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

       
  4. [15 p] Aliohjelmat ja funktiot. Aliohjelma Tilastot(Arr, n, ka, min, max) laskee parametrina annetusta n-alkioisesta taulukosta Arr keskiarvon, pienimmän alkion arvon ja suurimman alkion arvon ja palauttaa ne ulostuloparametrien ka, min ja max avulla. Esimerkiksi, jos parametrina olisi 4-alkioinen taulukko {2, 4, 6, 8}, niin kyseinen aliohjelma palauttaisi arvot 5, 2 ja 8. Parametri Arr on viiteparametri, n on kokonaislukuarvoinen arvoparametri ja ka, min ja max ovat kokonaislukuarvoisia viiteparametreja. Globaalit muuttujat AverSalary ja AgeMin on määritelty ja alustettu pääohjelmatasolla.
    1. Anna ttk-91 koneen symbolisella konekielellä käskyt, joilla aliohjelmaa Tilastot() käyttäen lasketaan globaalille muuttujalle AverSalary arvoksi globaalilla tasolla määritellyn 200-alkioisen taulukon Salaries keskiarvo.
    2. Anna ttk-91 koneen symbolisella konekielellä käskyt, joilla aliohjelmaa Tilastot() käyttäen lasketaan globaalille muuttujalle AgeMin arvoksi globaalilla tasolla määritellyn 10-alkioisen taulukon Ages pienimmän alkion arvo.
    3. Oletetaan nyt, että aliohjelman Tilastot() asemesta toteutetaankin funktio Tilastoija(Arr, n), joka palauttaa arvonaan kolme (3) kokonaislukua: parametrina annetun taulukon keskiarvon, minimiarvon ja maksimiarvon. Parametri Arr on viiteparametri ja n on kokonaislukuarvoinen arvoparametri.
      Anna ttk-91 koneen symbolisella konekielellä käskyt, joilla funktiota Tilastoija() käyttäen lasketaan globaalille muuttujalle AgeMin arvoksi globaalilla tasolla määritellyn 10-alkioisen taulukon Ages pienimmän alkion arvo.

    HUOM: Aliohjelmaa Tilastot() eikä funktiota Tilastoija() siis ei tarvitse toteuttaa lainkaan.
    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