1. Vastaa lyhyesti seuraaviin kysymyksiin a) Mikä on symbolitaulu? Missä sitä tarvitaan? Mihin sitä käytetään? b) Miten eroavat käyttäjätila ja etuoikeutettutila? Mitä etuoikeutetussa tilassa suoritetaan? c) Muunna ensin luku 75.875 binäärimuotoiseksi. Lisää sitten lukuun parillisen pariteetin tarkistusbitti. Mitä saat? 2. a) Muunna binääriluku 1100.011 kymmen- ja heksadesimaalijärjestelmän luvuksi.(3 p) b) Muunna kymmenjärjestelmän luku 127.625 binääriluvuksi. (3 p) c) Suorita laskutoimitus 47 - 34 kahden komplementtimuodossa. (3 p) 3. Muistissa ja etenkin tiedonsiirrossa syntyy virheitä ja talletettu tai lähetetty data voi muuttua virheelliseksi. a) Millä eri tavoin datan oikeellisuutta pyritään varmistamaan? b) Siirrettäessä kymmenjärjestelmän lukua 113 oheislaitteelle se muuttuukin siirtohäiriön takia luvuksi 81. Esitä, miten lähettäjän ja vastaanottajan pitäisi toimia, jotta vastaanottaja pystyisi ainakin havaitsemaan vastaanottamansa luvun virheelliseksi. Pystyisikö vastaanottaja korjaamaan vastaanotetun luvun oikeaksi? 4. Selitä TTK-91 koneen keskusyksikön rakenne 5. Selitä suorittimen tilat 6. Selvitä prosessori- ja rekisteritasolla, miten kurssilla käytetyn esimerkkikoneen TTK-91:n keskussuoritin toimii suorittaessaan seuraavan käskysarjan: .... DIV R1, 200 JUMP 100 .... 100 SVC SP,=11 ; palvelupyyntö HALT 7. Selitä prosessin elinkaari. Mitä prosessin vaihdossa tapahtuu? 8. Konekäskyjen suoritus. a. Määrittele käsite käskyjen suoritussykli. Mitkä ovat sen vaiheet? Piirrä kuva suoritussyklistä. b. Mitä suorittimella tapahtuu konekäskyä "SUB R4, @300" suoritettaessa suoritussyklin eri vaiheissa? c. Vertaile Ttk91-koneen konekieltä ja Java byte-koodia. Mitä eroja löytyy? Mikä on samanlaista? Entä suoritusaikana? 9. Mitä poikkeus- tai keskeytystilanteita käskyn suorituksen eri vaiheissa voi esiintyä? Miten nämä tilanteet havaitaan ja miten niihin reagoidaan? Miten prosessori ja käyttöjärjestelmä toimivat, kun poikkeus- tai keskeytystilannne on havaittu? Miten keskeytystilanteen jälkeen jatketaan taas toimintaa? 10. Tee Koksi-aliohjelma summa, joka laskee yhteen arvoparametrina saamansa kahden luvun summan ja palauttaa arvon. 11. Tee pääohjelma, joka kutsuu aliohjelmaa ensin arvoilla 2 ja 3 ja seuraavaksi arvoilla -1 ja 8. 12. Selitä luennoilla esitelty aktivaatiotietueen rakenne. 13. Miten makrokutsu ja proseduurikutsu eroavat toisistaan? 14. Tee TTK-91:n symbolisella konekielellä aliohjelma Kopioi, joka kopioi muistialueelta Lahde muistialueelle Kohde n:n muistipaikan sisällön. Välitä parametrit Lahde, Kohde ja n pinossa. Laadi lisäksi pääohjelma, joka kopioi sadan muistipaikan sisällön muistialueelta Vanha alueelle Uusi. Piirrä pinon rakenne kutsun jälkeen ennen aliohjelman ensimmäisen käskyn suoritusta sekä juuri aliohjelmasta paluun jälkeen. 15. Tee TTK-91:n symbolisella konekielellä funktio Pot (X, n), joka laskee potenssin X^n arvon. Käytä pinoa parametrien ja paluuarvon talletukseen. Laadi myös pääohjelma, joka kutsuu funktiota Pot ja tulostaa funktion palauttaman arvon. Pääohjelma lukee näppäimistöltä X:n ja n:n arvot ja tarkistaa, että eksponentti n on positiivinen. Piirrä pinon rakenne kutsun jälkeen ennen aliohjelman ensimmäisen käskyn suoritusta. (10 p) 16. Tee TTK-91:n symbolisella konekielellä aliohjelma Kopioi, joka kopioi muistialueelta Lahde muistialueelle Kohde n:n muistipaikan sisällön. Välitä parametrit Lahde, Kohde ja n pinossa. Laadi lisäksi pääohjelma, joka kopioi sadan muistipaikan sisällön muistialueelta Vanha alueelle Uusi. Piirrä pinon rakenne kutsun jälkeen ennen aliohjelman ensimmäisen käskyn suoritusta sekä juuri aliohjelmasta paluun jälkeen. 17.Kokonaislukuarvoinen taulukko T[40] on määritelty pääohjelmatasolla. Taulukossa on siis 40 alkiota (alkiot 0,...,39). a. Anna taulukon T määrittely. b. Tee funktio Laske(S, N), joka palauttaa arvonaan N-alkioisen taulukon S positiivisten alkioiden lukumäärän. Noudata suositusten mukaista aliohjelmien (funktioiden) toteutustapaa ja kutsumekanismia. Parametri S on viiteparametri ja parametri N on arvoparametri. c. Anna ttk-91 symbolisen konekielen konekäskyt, joilla em. funktiota käyttäen tulostetaan (muualla, pääohjelmatasolla määritellyn) 40 alkioisen taulukon T positiivisten alkioiden lukumäärä. Noudata suositusten mukaista aliohjelmien kutsumekanismia. Parametri S on viiteparametri ja parametri N on arvoparametri. d. Miten funktiota Laske tulisi muuttaa, jos se palauttaisikin taulukon S positiivisten alkioiden lukumäärän sijaan taulukon S parittomien alkioiden lukumäärän. e. Piirrä aktivointiotietuepino kohdan b) aliohjelman kutsun jälkeen ja juuri ennen aliohjelmasta paluuta 18. Olet kirjoittanut oman korttipeliohjelmasi jollakin ohjelmointikielellä ja tallettanut sen koneen tiedostoiksi. Mitä toimintoja ohjelmatiedostoillesi on tehtävä, ennenkuin voit todella suorittaa ohjelmasi eli pelata kyseistä korttipeliä. Selvitä, mitä näissä toimintovaiheissa tehdään.