581305-6 Tietokoneen toiminta, 4 op, erilliskoe 7.11.2008   

Kirjoita jokaiseen vastauspaperiisi seuraavat tiedot: nimi ja nimikirjoitus, opiskelijanumero, kurssin nimi ja sivunumero.

  1. [9 p] Tiedon esitys
    1. Miten tietokonejärjestelmässä talletetaan ja käsitellään kokonaislukuja?
    2. Miten tietokonejärjestelmässä talletetaan ja käsitellään realilukuja?
    3. Miten tietokonejärjestelmässä talletetaan ja käsitellään merkkijonoja?
    4. Miten tietokonejärjestelmässä talletetaan ja käsitellään kuvia?
    5. Miten tietokonejärjestelmässä talletetaan ja käsitellään tarvitsemaasi uutta tietotyyppiä (esim. haju, hevoslaji, kengän jälki, perhosen siiven kuvio)?
       
  2. [9 p] Suorittimen etuoikeutettu suoritustila (privileged execution mode).
    1. Mikä on (suorittimen) etuoikeutettu suoritustila? Mihin sitä tarvitaan?
    2. Miten etuoikeutettu suoritustila eroaa tavallisesta (user mode) suoritustilasta? Anna kaksi konekäskytason esimerkkiä.
    3. Milloin ja miten suoritustila vaihtuu tavallisesta etuoikeutettuun?
    4. Milloin ja miten suoritustila vaihtuu etuoikeutetusta tavalliseen?

     
  3. [9 p] I/O:n toteutus. Käsitellään tässä käyttäjätason prosessia (P), joka haluaa kirjoittaa 512 tavun datasegmentin levymuistiin. Käytössä on epäsuora I/O (indirect I/O). I/O:n toteutukseen osallistuu laiteajuriprosessi (D) ja laiteohjainprosessi (C). Prosessit P ja D ovat suorituksessa normaalilla suorittimella (CPU), mutta prosessi C on suorituksessa laiteohjaimella.
    1. Miten ja milloin laiteajuri D tietää, mitä sen pitää tehdä? Kuka antaa D:lle I/O-tehtäviä ja miten?
    2. Miten ja milloin laiteohjainprosessi C tietää, mitä sen pitää tehdä? Kuka antaa C:lle ohjeita ja miten?
    3. Miten ja milloin laiteajuri D tietää, että tieto on kirjoitettu levylle? Kuka kertoo sen D:lle ja miten?
    4. Miten ja milloin sovellus P tietää, että tieto on kirjoitettu levylle? Kuka kertoo sen P:lle ja miten?

     
  4. [9 p] Ttk-91, Titokone ja TitoTrainer. Kaksi-ulotteinen taulukko t[4][10] on määritelty pääohjelmatasolla. Taulukossa t on siis 4 riviä (rivit 0-3) ja 10 saraketta (sarakkeet 0-9). Taulukko t on talletettu riveittäin. Muuttujat i, j ja x on määritelty pääohjelmatasolla. Voit olettaa, että i:n arvo on välillä 0-4 ja j:n arvo on välillä 0-9.
    1. Toteuta ttk-91 symbolisella konekielellä sijoituslauseke x = t[2][7].
    2. Toteuta ttk-91 symbolisella konekielellä sijoituslauseke x = t[i][j].
    3. Toteuta ttk-91 symbolisella konekielellä ohjelmanpätkä, joka laskee taulukon t rivin i alkioiden summan muuttujaan x.

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