Keskeiset asiat Mitä hyötyä tästä on? Mitä seuraavaksi? Kurssit? Asiat? Luento 12 Yhteenveto Tavoitteet Ymmärtää tietokonejärjestelmän keskeiset piirteet sillä suoritettavan ohjelman näkökulmasta Miten tietokonejärjestelmä suorittaa sille annettua ohjelmaa? Minkälaista koodia ymmärtää? Mikä on käyttöjärjestelmän rooli ja perustoiminnot? 1 2 Mitä hyötyä tästä on? Ohjelman suoritusnopeus perustuu suorittimen (CPU) suorittamiin konekäskyihin, ei pelkästään ohjelman korkean tason esitysmuotoon Korkean tason kielen esitys on silti tärkeä! Ylemmän tason asioiden ymmärtäminen on helpompaa (mahdollista), kun ymmärtää alemman tason asiat 3 Keskeisiä asioita Järjestelmä kokonaisuudessaan, nopeuserot esimerkkikone ja sen käyttö Ohjelman suoritus konekielen tasolla, rekisterit, t, konekäskyjen suoritussykli, keskeytykset aktivointitietuepino, aliohjelmien toteutus Tiedon esitysmuodot (ohjelma vs. laitteisto) I/O laitteet ja I/O:n toteutus laiteajurit, laitekeskeytykset, levy Käyttöjärjestelmän perustoiminnot prosessi ja sen toteutus (PCB) ohjelmien suoritus järjestelmässä käännös, linkitys, lataus tulkinta, emulointi, simulointi Esimerkkejä keskeisistä asioista seuraavilla kalvoilla 4 Esimerkkikone: TTK-91 laitteisto - CPU ALU CU rekisterit (kirjastorutiinit) (käyttöjärjestelmä) Nopeuserot: Teemun juustokakku Rekisterien, välin, n, levyn ja magneettinauhan nopeudet suhteutettuna juuston hakuaikaan juustokakkua tehdessä? Europa (Jupiter) jääkaappi käsi pöytä kuu (väli) MMU ohjelma data laiteohjaimet 2008: 1 sek 0.5 sek (väli- 10 sek (rekisteri) ) () 12 pv (levy) kuilu kuilu 0.5 ns? 10 ns? 4 ms? kasvaa kasvaa (50 pv?) Michael Crumpton 4 v (verkko,ihminen) 1 s? (n 65 v?) 5 6 Luento 12, Yhteenveto 1
Konekielinen ohjelmointi for (int i=20; i < 50; ++i) T[i] = 0; muuttujat, vakiot taulukot (2D), tietueet ssa, rekisterissä? valinta, loopit aliohjelmat, SVC:t parametrit, paikalliset muuttujat I DC 0 LOAD R1, =20 STORE R1, I Loop LOAD R2, =0 LOAD R1, I STORE R2, T(R1) LOAD R1, I ADD R1, =1 STORE R1, I LOAD R3, I COMP R3, =50 JLES Loop Parametrien tyyppi? arvo-, viite- ja nimiparametrit Aktivointitietue (Aktivointitietuepino) Aliohjelman toteutusmuoto (ttk-91) funktion paluuarvo (tai kaikki paluuarvot) kaikkien (sisäänmeno- ja ulostulo-) parametrien arvot paluuosoite kutsukohdan aktivointitietue kaikki paikalliset muuttujat ja tietorakenteet aliohjelman ajaksi talletettujen rekistereiden alkuperäiset arvot (activation record, activation frame) int funca (int x,y); paluuarvo param x param y vanha PC vanha FP paik. m. i1 paik. m. i2 vanha R1 vanha R2-2 +1 7 8 Käskyjen nouto- ja suoritussykli Hae käsky PC++ noutosykli Noutosykli M=2 M>0 lue sta pura käsky, M=0 laske osoite suorita käsky pushr suoritussykli kirj. iin write push pushr D=0 (SR) tarkista keskeytykset Suorittimen suoritustilat user kernel Käyttäjätila (user mode, normal mode) voi käyttää vain tavallisia käskyjä Miten ja voi viitata vain käyttäjän omaan milloin avaruuteen (MMU valvoo) tila vaihtuu? Etuoikeutettu tila tai (KJ:n) ytimen tila (kernel mode, privileged mode) voi käyttää kaikkia konekäskyjä, myös etuoikeutettuja (esim. clear_cache, iret) voi viitata kaikkialle in, myös käyttöjärjestelmän ytimeen (kernel) voi käyttää (myös) suoria osoitteita (PA, physical address) 9 10 Tiedon esitysmuodot + 15 0.1875 = 0.0011 sign exponent mantissa or significand 23 bittiä mantissalle, siten että... kokonaisluvut liukuluvut 1) Binääripiste (.) on heti merkit ensimmäisen bitin jälkeen merkkijonot 2) kuvat Mantissa on normalisoitu: vasemmanpuolimmainen äänet bitti on1 3)Vasemmanpuolimmaista (eniten merkitsevä) ei-standardoitu bittiä (1) tieto? ei talleteta (implied bit) suorittimen ymmärtämä tieto? 1/8 = 0.1250 1/16= 0.0625 0.1875 mantissa eksponentti 0.0011 15 1.1000 12 1000 12 24 bitin mantissa! Prosessi, prosessin tilat ja elinkaari luonti ready-to-run valmis suoritukseen odottaa waiting running suorituksessa Milloin tila vaihtuu? Mitä silloin tapahtuu (konekäsky tasolla)? Kuka tai mikä aiheuttaa tilan vaihdon? poistettu tai tapettu 11 12 Luento 12, Yhteenveto 2
R-to-R waiting Prosessit jonoissa ja PCB 1056 1766 Running 0188 Disk1 Timer 0036 7654 9878 0555 Msg from 1345 2222 Prosessin 9878 kuvaaja (PCB) Vuoronanto: valitse seuraava prosessi Ready-to-Run -jonosta ja siirrä se suoritukseen CPU:lle (kopioi tämän prosessin suorittimen tila suorittimelle) laite I/O:n toteutus, laiteohjain ja laiteajuri Muisti data c/s laiteohjain laiteohjainprosessi (device controller) laiteajuri (KJ prosessi) laite käyttäjäprosessi Suora I/O Epäsuora I/O DMA I/O 13 14 Levyjen käyttö Tiedosto koostuu useista ista per sektori (tai usea sektori) Levyn hakemistossa on tieto kunkin tiedoston käyttämistä ista luetaan t annetussa järjestyksessä hakemisto alkio FileA indeksi (unix) 15 Lausekielestä suoritukseen Käännös lausekielestä Linkitys muiden ja kirjastomoduulien kanssa Lataus in prosessia varten Käännösyksikkö myprog.c Lausekielinen ohjelma tai moduuli symboliset osoitteet Ajomoduuli myprog.exe lineaariset osoitteet (1 osoiteavar.) osa puutteellisia (?) Prosessi Suorituskelpoinen ohjelma lineaariset osoitteet (virt. os.avar.) prog.c Objektimoduuli myprog.obj prog.o Käännetty ohjelma (konekielellä) lineaariset osoitteet (per moduuli) math.l prog PCB (prog) 16 Tulkinta ja emulointi JVM virtuaalikone tulkki Pentium II lataus iload i iload j iadd istore k k = i+j; ohjelma n byte-koodi käännös iload i iload j iadd istore k ( esimerkiksi) natiiviympäristö byte-koodi (JIT) kääntäjä Pentium II 17 Aihepiirien välisiä riippuvuuksia Ohjelmointikielet Käyttöjärjestelmät Tietoliikenne Ohjelmointi toiminta Laskennan teoria Sovellukset dl latausmoduuli Tietokonearkkitehtuuri Samanaikaisuuden hallinta 18 Luento 12, Yhteenveto 3
Kurssien välisiä riippuvuuksia rakenne, 4 op Rinnakkaisohjelmointi Tietoturvan per. Pakolliset perus- ja aineopinnot toiminta Internet Haj. järjest. Tietoliik. perusteet Spes. & verif perusteet Syventävät opinnot (Haj. järj. ja tietoliikenne) rakenne Käyttöjärjest. Yksi taso alaspäin TITOsta LuK ja FM opintojen valinnainen kurssi Sopiva 2. vuoden opiskelijalle, heti TITOn jälkeen Useissa yliopistoissa yhdistetty TITOon Miten kellopulssi saa suorittimen suorittamaan konekäskyjä? Miten suorittimen aritmetiikka on toteutettu? Usea käsky on todellisuudessa suorituksessa samanaikaisesti (monellakin tavalla!) Miten tämä toteutetaan, mitä ongelmia siitä seuraa ja miten noita ongelmia ratkotaan? 19 20 Käyttöjärjestelmät, 4 op Sopiva 4. vuoden opiskelijalle Hajautettujen järjestelmien ja tietoliikenteen erikoistumislinjan maisteriopintojen pakollinen opintojakso Käyttöjärjestelmän rooli prosessien ja resurssien valvojana Samanaikaiset prosessit resurssien käyttäjinä Systeemin resurssien jakelu Prosessien vuoronanto (skedulointi) Jatkoa Hajautetut järjestelmät, 4 op Tietoliikenteen perusteet, 4 op Sopiva 2. vuoden opiskelijalle Aineopintojen pakollinen kurssi Tietokoneverkkojen peruspalvelut käyttäjälle ja sovelluksille Verkkojen tiedonsiirron perusvälineistö Verkkoarkkitehtuurin kerrosrakenne ja kunkin tason palvelut Internet-, 4 op 21 22 Tietoliikenteen perusteet Sovellus Sovellus rajapinta Kuljetuskerros Verkkokerros Siirtoyhteyskerros TCP/IP -kerrosmalli sovellus kuljetus verkko siirto Sovellus Sovellus rajapinta TCP, UDP IP Ethernet, token ring, PPP Rinnakkaisohjelmointi, 4 op Sopiva: 2. vuoden opiskelijoille Aineopintojen pakollinen kurssi Samanaikaisuuden aiheuttamat ongelmat järjestelmä kaatuu miksi niin kävi? Prosessien synkronointi eri tapauksissa odottamalla vai prosessia vaihtamalla? miksi? milloin? Prosessien kommunikointi eri tavoin yhteinen alue? viestit? miksi? milloin? verkon ylitse? Hajautetut järjestelmät, 4 op semaforit monitorit kohtaaminen vartioitu rinn. odotus rpc, viestit rinnakkaisohjelmointi 23 24 Luento 12, Yhteenveto 4
Spesifioinnin ja verifioinnin perusteet, 4 op Sopiva: 4. vuoden opiskelijalle Maisteriopintojen valinnainen erikoiskurssi Lähtötiedot: hajautuksen ja samanaikaisuuden problematiikka, TiLi, Rio Mallinnetaan prosesseja siirtymäsysteemeillä askel: konekäsky? metodi? tapahtuma? ohjelma? Automaattisen verifioinnin periaatteet Yksinkertaisien protokollien verifiointi Ohjelmien semantiikka (?), 6 op Automaattinen verifiointi (?), 6 op Laskennan teorian perusta (2) - CPU - CPU 500 miljoonaa lukua á 10 numeroa Ohjelma P Data 25 26 Laskennan teoriaa (5) Ohjelma P Data Laskennan teoriaa... (5) Mielivaltaisten ohjelmien ominaisuuksia voi päätellä kokonaislukujen ja niiden välisten funktioiden ominaisuuksista Muistin sisältö ennen P:n suoritusta: X = hyvin iso kokonaisluku (500M numeroa?) laskennan teoria Muistin sisältö P:n suorituksen jälkeen: P on kokonaislukuarvoinen funktio Y = joku toinen hyvin iso luku P: N N Ohjelman P esitysmuoto ssa:iso kokonaisluku, P N 27 Todistettuja lauseita ohjelmien ominaisuuksista pätevät kaikille tietokoneille pätevät aina: nyt ja tulevaisuudessa 28 Laskennan teoriasta ja algoritmianalyysistä todistettuja lauseita (4) Valitaanpa mikä tahansa aikaraja tai n koko, niin aina on olemassa sellainen ongelma, että (1) siihen on olemassa ratkaisu ja (2) kaikki ongelman ratkaisevat ohjelmat vievät enemmän aikaa tai tilaa kuin ennalta annettu raja On olemassa sellaisia ongelmia, että niitä ei voi ratkaista millään tietokoneella On olemassa suuri joukko tunnettuja vaikeita ongelmia, joista ei vielä tiedetä, kuinka vaikeita ne oikeastaan ovat? P = NP 29 -- Luennon 12 ja koko kurssin loppu -- http://lue.kurssikokeeseen.edu/ajoissa.html http://www.retroweb.com/apollo_retrospective.html 30 Luento 12, Yhteenveto 5