581305-6 Tietokoneen toiminta, koe 12.6.2015
Other side in English
Kirjoita jokaiseen vastauspaperiisi seuraavat tiedot:
nimi ja nimikirjoitus, opiskelijanumero ja kurssin nimi.
Kuhunkin tehtävään riittää noin 1-2 sivun vastaus.
Tämä koe on tavallinen erilliskoe ja sen koealue on koko kurssi.
Koe toimii myös korvaavana kuulusteluna kevään 2015 ohjatun itseopiskelukurssin kurssikuulustelulle.
- [9 p] IEEE standardin mukaiset liukuluvut
- [1 p] Miten liukuluku eroaa reaaliluvusta? Anna lukuesimerkki?
- [2 p] Mitä tarkoittaa liukuluvun normeeraus? Mitä hyötyä siitä on? Milloin sitä ei voi tehdä?
- [2 p] Mikä on piilobitti ja mitä hyötyä siitä on? Miten sitä käytetään?
- [2 p] Oletetaan, että liukulukuarvoisille muuttujille X ja Y on laskettu jotkut arvot.
Miksi ei ole järkevää tehdä ehtolausetta "if (X==Y) then .... else ...."?
Kuinka välttäisit tämän ongelman?
- [2 p]
Anna liukuluvun -10.0 esitysmuoto 32-bittisessä IEEE liukulukustandardin Big-Endian esitysmuodossa.
- [9 p] Konekäskyjen suoritus. Anna joka kohtaan konekäskyn "ADD R1, T(R2)" suoritukseen liittyvä esimerkki.
- [3 p] Mikä on etuoikeutettu käskyjen suoritustila, mihin sitä tarvitaan ja kuinka se on käytännössä toteutettu käskyjen suoritussyklissä?
Miten siitä palataan normaaliin käskyjen suoritustilaan?
- [3 p] Mitä ovat keskeytykset (interrrupts), mihin niitä tarvitaan ja kuinka ne on käytännössä toteutettu käskyjen suoritussyklissä?
- [3 p] Miten käyttöjärjestelmä käsittelee keskeytykset?
Miten keskeytyksen käsittelyn jälkeen palataan keskeytyneen ohjelman suorittamiseen?
- [9 p] Prosessin suoritus järjestelmässä
- [3 p] Miten prosessin vaihto tapahtuu konekäskytasolla? Oletetaan, että (i) prosessi P on suorituksessa ja jää nyt odottamaan jotain tapahtumaa, ja että (ii) prosessi Q pääsee suoritukseen.
- [3 p] Anna esimerkki tilanteesta, jossa suorituksessa oleva prosessi (P) toteaa, että se ei voi jatkaa suoritustaan. Kuinka se kertoo halustaan käyttöjärjestelmälle (KJ)? Mitä järjestelmässä nyt tapahtuu?
- [3 p] Anna esimerkki tilanteesta, jossa KJ päättää, että suoritusvuorossa olevan prosessin (P) suoritusvuoro päättyy ja vuoro pitää antaa jollekin toiselle prosessille? Miten KJ pääsee päättämään yhtään mitään, kun prosessi P on suorituksessa? Mitä järjestelmässä nyt tapahtuu?
-
[9 p] Titokone, TitoTrainer
ja ttk-91. Funktio ElmSum (T, n, m) palauttaa arvonaan 2-ulotteisen n x m taulukon (matriisin) T alkioiden summan. Taulukossa T on siis n riviä ja m saraketta. Parametrit n ja m ovat arvoparametreja ja T on viiteparametri.
2-ulotteinen taulukko Salary on määritelty pääohjelmatasolla ja siinä on 20 riviä ja 12 saraketta.
Osoitinmuuttuja pPoints on määritelty pääohjelmatasolla ja se osoittaa 2-ulotteiseen taulukkoon, jossa on p riviä ja q saraketta.
Muuttujat SalSum, p ja q on määritelty pääohjelmatasolla.
- [3 p]
Toteuta ttk-91 symbolisella konekielellä (funktiota ElmSum kutsumalla) käskyt, joiden avulla muuttujaan SalSum saadaan taulukon Salary kaikkien alkioiden summa.
- [2 p] Toteuta ttk-91 symbolisella konekielellä (funktiota ElmSum kutsumalla) käskyt, joiden avulla rekisteriin r3 saadaan osoitinmuuttujan pPoints osoittaman taulukon (p riviä ja q saraketta) kaikkien alkioiden summa.
- [4 p] Toteuta ttk-91 symbolisella konekielellä funktio ElmSum().
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