581305-6 Tietokoneen toiminta, 5 op, koe    17.12.2015          in EnglishOther side in English  

Tämä on syksyn 2015 luentokurssin kurssikoe. Tämä koe ei toimi erilliskokeena.
Tehtävä 4 toimii myös minikokeena 4.
Tehtävät 1-3 toimivat myös minikokeiden 1-3 uusintakokeina.

Kirjoita jokaiseen vastauspaperiisi seuraavat tiedot: nimi ja nimikirjoitus, opiskelijanumero ja kurssin nimi. Kuhunkin tehtävään riittää 1-2 sivun vastaus.
Kirjoita kunkin tehtävän vastaus omalle konseptilleen ja palauta se tehtävän mukaiseen pinoon!

  1. [10 p] Järjestelmän rakenne, suoritin, väylä.
    1. [5 p] Osoitteessa 124 on seuraavaksi suoritettava konekäsky "JNZER R1, JumpTable(R1)". Kuinka rekistereiden PC, R1, IR, SR, MAR, MBR ja TR arvot muuttuvat käskyjen nouto- ja suoritussyklin eri vaiheissa em. konekäskyn osalta?
    2. [3 p] Mitä ovat keskeytykset (interrrupts) ja mihin niitä tarvitaan? Kuinka ne on toteutettu käskyjen suoritussyklissä? Anna konkreettinen konekäskytason esimerkki käyttäen jotain konekäskyn "JNZER R1, JumpTable(R1)" suoritukseen liittyvää keskeytystä. Mainitse käyttämäsi keskeytystyyppi.
    3. [2 p] Mihin tarvitaan suorittimen etuoikeutettua suoritustilaa? Kuinka se eroaa tavallisesta suoritustilasta? Kuinka se on käytännössä toteutettu käskyjen suoritussyklissä?

  2. [10 p] Tiedon esitysmuodot, tiedon tarkistus, muisti.
    1. [1 p] Mikä on tavusoitteessa 0x11AABB00 olevan 16-bittisen kokonaisluvun -13 kahden komplementin Big-Endian esitysmuoto? Mitä bittejä on missäkin tavussa?
    2. [1 p] Kuten kohta (a), mutta luvun pituus on 8 bittiä.
    3. [1 p] Kuten kohta (a), mutta esitysmuoto on Little-Endian.
    4. [3 p] Mikä on 32-bittisten liukulukujen IEEE-standardin mukanen esitystapa?
    5. [1 p] Mikä on 32-bittisten liukulukujen IEEE-standardin mukanen esitystapa luvulle -4.50?
    6. [3 p] Minkä ongelman Hamming-koodi ratkaisee ja kuinka se toimii (vain pääpiirteet)?
       
  3. [10 p] Käyttöjärjestelmä, ulkoinen muisti, I/O.
    1. [3 p] Anna esimerkki tapahtumasta E, jonka seurauksena valmis suoritukseen (ready) tilassa oleva prosessi P siirtyy suorituksessa (running) tilaan? Miten siirto tapahtuu?
      Mitä tapahtuu tapahtuman E hetkellä suorituksessa olleelle prosessille Q?
    2. [3 p] Järjestelmän eheän toiminnan kannalta on tärkeää, että käyttöjärjestelmä saa suoritusvuoron aika ajoin ja aina tarvittaessa. Kuinka tämä on toteutettu?
    3. [4 p] Kuinka keskeyttävä I/O (epäsuora I/O, interrupt driven I/O) on toteutettu?
      Kuinka (keskeyttävän) I/O:n toteuttavat laiteajuri DD ja laiteohjaimella suorittava laiteohjainprosessi DCP kommunikoivat toistensa kanssa?
      Kuinka ja milloin DCP tietää, mitä DD haluaa sen tekevän?
      Kuinka ja milloin DD tietää, että sen DCP:lle antama tehtävä on tehty?
     
  4. [10 p] Käännös, linkitys, lataus, tulkinta, emulointi.
    1. [1 p] Mikä on Java virtuaalikone (Java virtual machine, Java VM, JVM)?
    2. [3 p] P on Javalla kirjoitettu ohjelma. Kuinka P suoritetaan tulkitsemalla?
      Mikä on P:n esitysmuoto suorituksen aikana ja kuinka se on saatu siihen?
      Mitä etua tulkitsemisella on verrattuna (tavalliseen) kääntämiseen?
    3. [3 p] P on Javalla kirjoitettu ohjelma. Kuinka P suoritetaan (tavallisella) kääntämisellä?
      Mikä on P:n esitysmuoto suorituksen aikana ja kuinka se on saatu siihen?
      Mitä etua kääntämisellä on verrattuna tulkitsemiseen?
    4. [3 p] P on Javalla kirjoitettu ohjelma. Kuinka P suoritetaan JIT-kääntämisellä?
      Mikä on P:n esitysmuoto suorituksen aikana ja kuinka se on saatu siihen?
      Mitä etua JIT-kääntämisellä on verrattuna tavalliseen kääntämiseen.