in English Other side in English

Tietokoneen toiminta, kurssikuulustelu 28.4.2008   

Kirjoita jokaiseen vastauspaperiin:: nimi ja nimikirjoitus, opiskelijanumero, kurssin nimi ja sivunumero.
  1. [9 p] Ohjelma, suoritin ja järjestelmä.
    1. Missä muodossa suoritin näkee suorituksessa olevan ohjelman?
    2. Miten suoritin suorittaa suoritusvuorossa olevaa ohjelmaa?
    3. Missä muodossa käyttöjärjestelmä näkee järjestelmässä olevan ohjelman?
    4. Miten käyttöjärjestelmä suorittaa suoritusvuorossa olevaa ohjelmaa?

     
  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?

    1.  
  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] Titokone, TitoTrainer ja ttk-91. Funktio PosSum(T, N) palauttaa arvonaan N-alkioisen taulukon T positiivisten (>0) alkioiden summan. T on viiteparametri ja N on arvoparametri. Muuttuja X ja 50-alkioinen taulukko Weights[50] on määritelty pääohjelmatasolla.
    1. Toteuta ttk-91 symbolisella konekielellä lauseke X = PosSum (Weights, 50).
    2. Toteuta ttk-91 symbolisella konekielellä funktio PosSum.
    3. Oletetaan, että haluamme laskea taulukon Weights positiivisten alkioiden summan, mutta ainoastaan ottaen huomioon taulukon alkiot Weights[10], ..., Weights[30].
      Toteuta tämä ttk-91 symbolisella konekielellä funktiota PosSum sopivasti kutsuen.

    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