2 Konekieli, aliohjelmat, keskeytykset



Samankaltaiset tiedostot
Tenttitärpit. HUOM: Luvataan, että tämä on lopullinen tenttitärppikokoelma, mutta varaan silti oikeuden tehdä pieniä muutoksia, erityisesti:

IT K 1 45 K ä yt t öj ä rj estelmät

ITKA203 Käyttöjärjestelmät -- kesä tenttitärpit

TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. Assembly ja konekieli

LOAD R1, =2 Sijoitetaan rekisteriin R1 arvo 2. LOAD R1, 100

Tietojenkäsittelyn perusteet 2. Lisää käyttöjärjestelmistä

11/20: Konepelti auki

Luento 5. Timo Savola. 28. huhtikuuta 2006

TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. Assembly ja konekieli

Johdatus Ohjelmointiin

Käyttöjärjestelmän rakenne

5. HelloWorld-ohjelma 5.1

Hieman linkkejä: lyhyt ohje komentoriviohjelmointiin.

815338A Ohjelmointikielten periaatteet Harjoitus 3 vastaukset

Tietokoneen rakenne: Harjoitustyö. Motorola MC prosessori

Zeon PDF Driver Trial

4. Luento: Prosessit ja säikeets. Tommi Mikkonen,

Luento 1 Tietokonejärjestelmän rakenne

Luento 1 Tietokonejärjestelmän rakenne. Järjestelmän eri tasot Laitteiston nopeus

Luento 1 Tietokonejärjestelmän rakenne

Käyttöjärjestelmät: prosessit

Ongelma(t): Miten tietokoneen käyttöjärjestelmä toimii sisäisesti, jotta resurssit saadaan tehokkaaseen käyttöön?

Luento 1 Tietokonejärjestelmän rakenne. Järjestelmän eri tasot Laitteiston nopeus

5. Luento: Rinnakkaisuus ja reaaliaika. Tommi Mikkonen,

Kevään 2015 kurssin luennot, demot, esimerkkiohjelmat / Paavo Nieminen

Ohjelmointi 1 / 2009 syksy Tentti / 18.12

Ohjelmoinnin perusteet Y Python

Kirjoita oma versio funktioista strcpy ja strcat, jotka saavat parametrinaan kaksi merkkiosoitinta.

TAMPEREEN TEKNILLINEN YLIOPISTO Digitaali- ja tietokonetekniikan laitos. Harjoitustyö 4: Cache, osa 2

Koottu lause; { ja } -merkkien väliin kirjoitetut lauseet muodostavat lohkon, jonka sisällä lauseet suoritetaan peräkkäin.

Arto Salminen,

Tällä ohjelmoitavalla laitteella saat hälytyksen, mikäli lämpötila nousee liian korkeaksi.

Luento 4. Timo Savola. 21. huhtikuuta 2006

Sisällys. 11. Javan toistorakenteet. Laskurimuuttujat. Yleistä

Käyttöjärjestelmät: poissulkeminen ja synkronointi

Kerta 2. Kerta 2 Kerta 3 Kerta 4 Kerta Toteuta Pythonilla seuraava ohjelma:

Ohjelmoinnin perusteet Y Python

Muistihierarkia Kiintolevyt I/O:n toteutus

D B. Levykön rakenne. pyöriviä levyjä ura. lohko. Hakuvarsi. sektori. luku-/kirjoituspää

5. HelloWorld-ohjelma 5.1

Palvelut. Sulautetut järjestelmät Luku 2 Sivu 1 (??) Sulautetut käyttöjärjestelmät

Hellä ensikosketus. Tomi Kiviniemi

ITKP102 Ohjelmointi 1 (6 op)

Luento 1 (verkkoluento 1) Ohjelman sijainti Ohjelman esitysmuoto Laitteiston nopeus

Järjestelmän ulkoinen muisti I/O

Käyttöjärjestelmät: Virtuaalimuisti

Tietotyypit ja operaattorit

Jakso 4 Aliohjelmien toteutus

Ohjeita Siemens Step7, Omron CX Programmer käyttöön

Harjoitustyö: virtuaalikone

4. Lausekielinen ohjelmointi 4.1

ITKP102 Ohjelmointi 1 (6 op)

Ohjelmoinnin perusteet Y Python

Matriisit ovat matlabin perustietotyyppejä. Yksinkertaisimmillaan voimme esitellä ja tallentaa 1x1 vektorin seuraavasti: >> a = 9.81 a = 9.

Ongelma(t): Miten tietokoneen komponentteja voi ohjata siten, että ne tekevät yhdessä jotakin järkevää? Voiko tietokonetta ohjata (ohjelmoida) siten,

Sisällys. 12. Näppäimistöltä lukeminen. Yleistä. Yleistä

Ohjelmoinnin perusteet Y Python

Tähtitieteen käytännön menetelmiä Kevät 2009 Luento 6: Python

Python-ohjelmointi Harjoitus 5

Kevään 2015 kurssin luennot, demot, esimerkkiohjelmat / Paavo Nieminen

1. Keskusyksikön rakenne

TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. FT Ari Viinikainen

Jakso 4 Aliohjelmien toteutus


Luento 4 (verkkoluento 4) Aliohjelmien toteutus

Kevään 2016 kurssin luennot, demot, esimerkkiohjelmat / Paavo Nieminen

Luento 4 (verkkoluento 4) Aliohjelmien toteutus

Luento 3. Timo Savola. 7. huhtikuuta 2006

12. Näppäimistöltä lukeminen 12.1

TAITAJA 2007 ELEKTRONIIKKAFINAALI KILPAILIJAN TEHTÄVÄT. Kilpailijan nimi / Nro:

Stallings, Luku 4.1. KJ-I S2004 / Tiina Niklander, kalvot Auvo Häkkinen 4-1. KJ-I I S2004 / Tiina Niklander, kalvot Auvo Häkkinen 12-1

[Jnix näyttökoe. o ei ole sallittua käyttää mitään verkkolevyjakoa tai mitään siihen rinnastettavaa järjestelmdä.

PHP tehtävä 3 Atte Pekarinen TIKT13A

Metropolia Ammattikorkeakoulu

Perinteiset tietokoneohjelmat alkavat pääohjelmasta, c:ssä main(), jossa edetään rivi riviltä ja käsky käskyltä.

11. Javan toistorakenteet 11.1

Hammastankohissin modernisointi. Heikki Laitasalmi

Luento 1 (verkkoluento 1) Tietokonejärjestelmä

Rinnakkaisuuden hyväksikäyttö peleissä. Paula Kemppi

Ohjelmoinnin peruskurssi Y1

Aliohjelmatyypit (2) Jakso 4 Aliohjelmien toteutus

Luento 4 Aliohjelmien toteutus

Harjoitus 4 (viikko 47)

811120P Diskreetit rakenteet

Ohjelmassa henkilön etunimi ja sukunimi luetaan kahteen muuttujaan seuraavasti:

Korpusten käsittely clt131, P Luento 4

Harjoitus 3 (viikko 39)

oma nimi: luetun kirjan nimi: hyväksytty: pvm. opettajan allekirjoitus:

Tutoriaaliläsnäoloista

Algoritmit 1. Luento 3 Ti Timo Männikkö

Pikaintro käyttöjärjestelmiin

Luento 4 Aliohjelmien toteutus

ITKP102 Ohjelmointi 1 (6 op)

Subversion-ohje. Linux Traffic Control-käyttöliittymä Ryhmä paketti2

Harjoitus 5 (viikko 48)

Maastotietokannan torrent-jakelun shapefile-tiedostojen purkaminen zip-arkistoista Windows-komentojonoilla

Ohjelmoinnin peruskurssi Y1

Johdatus ohjelmointiin

Alkuarvot ja tyyppimuunnokset (1/5) Alkuarvot ja tyyppimuunnokset (2/5) Alkuarvot ja tyyppimuunnokset (3/5)

Ohjelmoinnin perusteet, syksy 2006

Transkriptio:

ITK145 Käyttöjärjestelmät, kesä 2005 Tenttitärppejä Tässä on lueteltu suurin piirtein kaikki vuosina 2003-2005 kurssin tenteissä kysytyt kysymykset, ja mukana on myös muutama uusi. Jokaisessa kysymyksessä on pistemäärä, jonka arvoiseksi se laajuudeltaan katsotaan. Tulen valitsemaan näistä jotkut sellaiset, joiden summana on 24, tyypillinen maksimipistemäärä tentissä. Jako on kenties: 6 pistettä prosessorin toimintaa, 6 pistettä Unixin käyttöä ja 12 pistettä muuta käyttöjärjestelmiin liittyvää. Samansisältöisiä kysymyksiä ei tietysti tenttiin tule montaa. Eri tenttikerroilla ei ole täysin samat kysymykset. Huom 1: Jos keksin vielä uuden hyvän kysymyksen, laitan sen tenttiin, mutta luvataan vähintään 18 pistettä juuri tässä luetellusta joukosta. Joka tapauksessa yritän kysyä monipuolisesti luentomonisteessa ja luennoilla käsiteltyjä aiheita. Onnea matkaan, ja iloa lukemiseen. Huomioikaa myös linkit kurssin nettisivulta. Huom 2: Tähän listaan voi tulla muutoksia vielä kesän mittaan. 1 Tietokone fyysisenä laitteena, Von Neumannarkkitehtuuri Esitietoa ymmärryksen pohjaksi. ei kysytä tentissä suoraan, mutta... hyvissä vastauksissa käytät sujuvasti sanoja prosessori, rekisteri, käskyosoiterekisteri, väylä, oheislaite (tai I/O -laite ), muisti, jne... ymmärrät mitä nämä sanat tarkoittavat nykytietokoneessa (ja se näkyy vastauksestasi, jos se on hyvä ) 2 Konekieli, aliohjelmat, keskeytykset Aliohjelman suoritusperiaate, ts. selvitä pinon käyttö ja paluuarvon välittäminen. (3 p). 1

Selvitä keskeytyskäsittelyn perusmekanismi; ts. keskeytyksenhoitoon siirtyminen ja sieltä paluu (3 p) 8086-prosessori suorittaa seuraavan assembler-kielisen ohjelman: mov CX, 10 ; aseta laskurin arvoksi 10 @alku: push CX ; vie laskurin sisältö pinoon dec CX ; vähennä laskuria yhdellä jnz @alku ; jatka, jos CX ei mennyt nollaksi a) Mikä kaikki on muuttunut (prosessorissa, muistissa? missä siellä?), kun ohjelma on suoritettu? b) Oletetaan, että pinoa täytetään muistissa normaalisti alaspäin, ja muistetaan, että 8086-rekisterien arvot ovat kahden tavun mittaisia. Mitä on muistipaikassa [SP+8] ohjelman suorituksen jälkeen? (SP on pino-osoitinrekisteri) c) Selitä, mitä kaikkea prosessori tekee välittömästi, jos push CX - komennon jälkeen tulee keskeytyspyyntö laitteistolta. (eli kuvaile FLIH-toiminta). Selvitä mahdolliset erityistapaukset, ja kerro mistä käskystä prosessori jatkaa suoritusta push CX :n jälkeen missäkin erityistapauksessa? (noin 4p, eli ehkä 1+1+2) Miten prosessori etenee konekielen suorittamisessa seuraavissa tilanteissa (selitä, miten käskyosoiterekisterin arvo voi muuttua, mistä muutos mahdollisesti riippuu ja mitä liikkuu keskusmuistiin tai sieltä prosessorille). 1) normaalin käskyn suoritus (ei keskeytystä) 2) ehdollinen hyppykäsky (ei keskeytystä) 3) aliohjelmakutsu (ei keskeytystä) 4) paluu aliohjelmasta (ei keskeytystä) 5) keskeytyspyyntö on saapunut laitteelta 6) suoritettava käsky on ohjelmoitu kekeytys (trap/int/svc) 7) tas ( test and set ) -komento moniprosessorikoneessa (noin 6/7 oikein = 6p) 2

3 Virtuaalikoneen käsite Anna esimerkki virtuaalikonehierarkiasta (2 p). 4 Käyttöjärjestelmän tehtävät ja rakenne Luettele neljä merkittävää käyttöjärjestelmän osaa, ja kuvaile yhdellä lauseella kunkin mainitsemasi osan merkitystä kokonaisuuden kannalta. (2 p) 5 Käyttöjärjestelmäkutsut, keskeytysten käsittely Ks. kohta 2 6 Prosessi, prosessien vuorottelu, synkronointi ja kommunikointi Mikä on prosessitaulu ja mitä se sisältää. (2p) Missä eri tiloissa prosessi voi olla? Milloin tilat voivat muuttua? Selvitä myös, miten I/O -operaatio suoritetaan käyttöjärjestelmän kannalta. (3 p) Miten moniajo voidaan toteuttaa? (2p) Kommentoi seuraava ohjelma; luekomento()-aliohjelma lukee parametreilleen arvot. pid on kokonaisluku. (2p) while(true){ luekomento(komento, parametrit); pid = fork(); if (pid!= 0) { status = wait(); } else { exec(komento, parametrit); } } 3

Seuraava aliohjelma ajetaan useassa säikeessä yhtaikaa, ja viestikanava stderr on säikeille yhteinen. Kerro, millainen ongelma tässä voi tulla. Kerro myös, miten ratkaisisit sen käyttäen semaforia. (Koodia ei tarvitse kirjoittaa kunhan selität) Semafori ja sen käyttö poissulkemisongelman ratkaisussa (4 p) Semafori ja sen käyttö synkronoinnissa (4p) Viestinvälitys send- ja receive -kutsuilla. (2 p) Selitä prosessin ja säikeen ero. (2 p) Mitä hyötyä on säikeistä? Mitä hankaluuksia niistä on? (2 p) 7 Muistinhallinta Sivuttavan virtuaalimuistin periaate ja merkitys. Selvitä myös, millaisia tauluja virtuaalimuisti edellyttää ja miten se niitä käyttää (4 p) 8 Oheislaitteiden ohjaus, ajuriohjelmistot I/O -operaation suoritus ja siihen liittyvät käyttöjärjestelmän ohjelmistot. (2 p) Miksi tarvitaan erikseen laiteriippuva ja laiteriippumaton I/O- ohjelmisto. 9 Tiedostojärjestelmä (esimerkkinä Unix-tdstojärj. ja NFS) UNIX-tiedostojärjestelmän toteutus. Selvitä myös, miten suoritetaan tiedoston haku nimen perusteella. (2 p) Mitkä ovat päätavoitteet RAID-järjestelmän (Redundant Array of Independent Disks) käytössä. Mitä eri keinoja RAID tarjoaa tavoitteiden saavuttamiseksi (voit nimetä tai selittää keinot hyvin lyhyesti). (2 p) 4

10 Unix, Unix-työkalut ja shell-komentorivit Selitä shellin toiminta. (1 p) Tee komentotiedosto (skripti), joka testaa onko parametrina annettu hakemisto olemassa. Esimerkiksi skripti voitaisiin ajaa komennolla loytyyko hake/alihake/ ja tulostus olisi kylla tai ei tilanteen mukaan. (1 p) Laajenna edellistä siten, että parametrina voisi olla vaikka kuinka monta hakemistoa, esim. loytyyko hake/ali1/ hake/ali2/ kertoisi kummankin hakemiston kohdalla kylla tai ei. Viimeistään tässä versiossa tarkista, onko yhtään parametria. Jos ei ole yhtään, skriptin tulee tulostaa virheilmoitus ja loppua virhekoodin kera. (2 p) TAI VASTAAVA PIKKUSKRIPTI! Tee C-shell -skripti, joka lukee päätteeltä yhden rivin tekstiä ja lisää rivin sitten tiedoston /ajatuksia.txt loppuun. Skriptin tulee ensin tarkistaa, onko olemassa tiedostoa /ajatuksia.txt ja onko siihen kirjoitusoikeus. Jos ei, niin molemmissa tapauksissa on tulostettava virheilmoitus ja lopetettava skripti ennen rivin lukemista päätteeltä. (2 p) TAI VASTAAVA VÄHÄN PIDEMPI SKRIPTI Laitoin talon grillijuhlien digikuvat nettiin naapureita varten, mutta he sanovat, että kaikki kuvat eivät toimi. Hakemistolistaukseni näyttää tältä: -bash-2.05b$ ls -l ~/www/grillikuvat/*.jpg total 3964 -rw------- 1 nieminen opis 1027107 Jun 9 16:34 IMG_1940.JPG -rw------- 1 nieminen opis 836088 Jun 9 16:34 IMG_1942.JPG -rw-r--r-- 1 nieminen opis 1101871 Jun 9 16:34 IMG_1943.JPG -rw------- 1 nieminen opis 1066770 Jun 9 16:34 IMG_1945.JPG Selitä, mikä on vialla ja miten voin korjata asian. (1 p) Tee C-shell skripti, jolla saan muunnettua kaikkien grillikuvien tiedostopäätteet pieniksi kirjaimiksi (eli.jpg.jpg). (1 p) Mitä voi tehdä grep-apuohjelmalla? (1 p) 5

Mitä voi tehdä find-apuohjelmalla? (1 p) 6