581305-6 Tietokoneen toiminta, 4 op, erilliskoe 7.11.2008
Kirjoita jokaiseen vastauspaperiisi seuraavat tiedot:
nimi ja nimikirjoitus, opiskelijanumero, kurssin nimi
ja sivunumero.
- [9 p] Tiedon esitys
- Miten tietokonejärjestelmässä talletetaan ja käsitellään kokonaislukuja?
- Miten tietokonejärjestelmässä talletetaan ja käsitellään realilukuja?
- Miten tietokonejärjestelmässä talletetaan ja käsitellään merkkijonoja?
- Miten tietokonejärjestelmässä talletetaan ja käsitellään kuvia?
- Miten tietokonejärjestelmässä talletetaan ja käsitellään tarvitsemaasi uutta tietotyyppiä (esim. haju, hevoslaji, kengän jälki, perhosen siiven kuvio)?
- [9 p] Suorittimen etuoikeutettu suoritustila (privileged execution mode).
- Mikä on (suorittimen) etuoikeutettu suoritustila? Mihin sitä tarvitaan?
- Miten etuoikeutettu suoritustila eroaa tavallisesta (user mode) suoritustilasta? Anna kaksi konekäskytason esimerkkiä.
- Milloin ja miten suoritustila vaihtuu tavallisesta etuoikeutettuun?
- Milloin ja miten suoritustila vaihtuu etuoikeutetusta tavalliseen?
- [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.
- Miten ja milloin laiteajuri D tietää, mitä sen pitää tehdä? Kuka antaa D:lle I/O-tehtäviä ja miten?
- Miten ja milloin laiteohjainprosessi C tietää, mitä sen pitää tehdä? Kuka antaa C:lle ohjeita ja miten?
- Miten ja milloin laiteajuri D tietää, että tieto on kirjoitettu levylle? Kuka kertoo sen D:lle ja miten?
- Miten ja milloin sovellus P tietää, että tieto on kirjoitettu levylle? Kuka kertoo sen P:lle ja miten?
- [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.
- Toteuta ttk-91 symbolisella konekielellä sijoituslauseke x = t[2][7].
- Toteuta ttk-91 symbolisella konekielellä sijoituslauseke x = t[i][j].
- 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