Tietokoneen toiminta Keskeiset asiat Mitä hyötyä tästä on? Mitä seuraavaksi? Kurssit? Asiat? Teemu Kerola, Copyright 2010

Samankaltaiset tiedostot
Tietokoneen toiminta, K Tavoitteet (4)

Jakso 12 Yhteenveto. Keskeiset asiat Teemu Kerola, K2000

Luento 12 Yhteenveto. Keskeiset asiat Mitä hyötyä tästä on? Mitä seuraavaksi? Kurssit? Asiat? Teemu Kerola, Copyright 2010

Luento 12 Yhteenveto

Luento 12 Yhteenveto. Keskeiset asiat Mitä hyötyä tästä on? Mitä seuraavaksi? Kurssit? Asiat?

Keskeiset asiat Mitä hyötyä tästä on? Mitä seuraavaksi? Kurssit? Asiat? Teemu Kerola, Copyright Tavoitteet (4)

Tavoitteet (4) Luento 12 Yhteenveto. Keskeisiä asioita. Mitä hyötyä tästä on? (2) Esimerkkikone: TTK-91 laitteisto suoritin - CPU

Luento 12 Yhteenveto. Keskeiset asiat Mitä hyötyä tästä on? Mitä seuraavaksi? Kurssit? Asiat? 29/01/2001 Teemu Kerola, Copyright 2001

Tietokoneen toiminta, K Tavoitteet (4)

Luento 12 Yhteenveto

Luento 12 Yhteenveto. Keskeiset asiat Mitä hyötyä tästä on? Mitä seuraavaksi? Kurssit? Asiat? Teemu Kerola, K2000

Luento 12 Yhteenveto

Tietokoneen toiminta Keskeiset asiat Mitä hyötyä tästä on? Mitä seuraavaksi? Kurssit? Asiat? Teemu Kerola, Copyright 2003

Luento 12 Yhteenveto. Tavoitteet. Keskeisiä asioita. Mitä hyötyä tästä on? Esimerkkikone: TTK-91 laitteisto. Tietokoneen toiminta 27.4.

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

Luento 1 Tietokonejärjestelmän rakenne

Luento 1 Tietokonejärjestelmän rakenne

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

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

Tietokoneen toiminta (Computer Organization I)

Tietokoneen toiminta (Computer Organization I)

Luento 1 (verkkoluento 1) Tietokonejärjestelmä

Tietokoneen toiminta (Computer Organization I)

Käännös, linkitys ja lataus

Tietokoneen toiminta (Computer Organization I)

Sisältöä. Tietokoneen rakenne. Ch 1 - Ch 8 [Sta06] Valikoituja paloja TITO-kurssista. Tietokonejärjestelmä

Tietokoneen toiminta (Computer Organization I)

Tietokoneen toiminta, Kevät Copyright Teemu Kerola Järjestelmän eri tasot Laitteiston nopeus

Tietokonejärjestelmä. Tietokoneen rakenne. Ch 1 - Ch 8 [Sta06] Valikoituja paloja. TITO-kurssista. John von Neumann ja EDVAC, 1949.

Kertausluento 1 (lu01, lu02, lu03) Tietokonejärjestelmän rakenne ttk-91 ja sillä ohjelmointi

Tietokoneen toiminta (Computer Organization I) Mitä hyötyä tästä on? (4) Kurssien välisiä riippuvuuksia. Aihepiiri.

Tietokoneen toiminta (Computer Organization I)

Aihepiiri Tietokoneen toiminta (Computer Organization I) Tavoitteet (4) Mitä hyötyä tästä on? (4) Kurssien välisiä riippuvuuksia

Tietokoneen toiminta (Computer Organization I)

Aihepiiri Tietokoneen toiminta (Computer Organization I)

Kertausluento luennoista 1-3 1

Tietokoneen toiminta (Computer Organization I)

Tietokoneen toiminta (Computer Organization I)

Tietokoneen toiminta (Computer Organization I)

Tietokoneen toiminta (Computer Organization I) Aihepiiri. Mitä hyötyä tästä on? (3) Tavoitteet. Kurssien välisiä riippuvuuksia

Tietokoneen toiminta (Computer Organization I)

Tietokoneen toiminta (Computer Organization I)

Aihepiiri Tietokoneen toiminta (Computer Organization I)

Tietokoneen toiminta (Computer Organization I)

Luento 4 Aliohjelmien toteutus

Teemun juustokakku Rekisterien, välimuistin, muistin, levymuistin ja magneettinauhan nopeudet suhteutettuna juuston hakuaikaan juustokakkua tehdessä?

Aliohjelmatyypit (2) Jakso 4 Aliohjelmien toteutus

Luento 4 Aliohjelmien toteutus

Luento 4 Aliohjelmien toteutus

Luento 4 Aliohjelmien toteutus

Luento 4 (verkkoluento 4) Aliohjelmien toteutus

Luento 4 Aliohjelmien toteutus. Tyypit Parametrit Aktivointitietue (AT) AT-pino Rekursio

Tietokoneen toiminta Copyright Teemu Kerola Tyypit Parametrit Aktivointitietue (AT) AT-pino Rekursio

Kertausluento 2 (lu04, lu05, lu06) Aliohjelmien toteutus Suoritin, väylä, tiedon esitys

Jakso 4 Aliohjelmien toteutus

Jakso 8 Ohjelman toteutus järjestelmässä

Muistihierarkia Kiintolevyt I/O:n toteutus

Jakso 5 Suoritin ja väylä

Suoritin. Jakso 5 Suoritin ja väylä. TTK-91 muistin rakenne. TTK-91 suorittimen rakenne

Jakso 10 Ohjelman suoritus järjestelmässä

Jakso 4 Aliohjelmien toteutus

Luento 3 (verkkoluento 3) Ttk-91 konekielinen ohjelmointi. Ohjelman esitysmuoto Konekielinen ohjelmointi ttk-91:llä (Titokone, TitoTrainer)

Jakso 8 Ohjelman toteutus järjestelmässä

Jakso 5 Suoritin ja väylä

Luento 10 Käännös, linkitys ja lataus

Jakso 4 Aliohjelmien toteutus. Tyypit Parametrit Aktivointitietue (AT) AT-pino Rekursio

Luento 4 (verkkoluento 4) Aliohjelmien toteutus

Tiedon esitysmuodot. Luento 6 (verkkoluento 6) Lukujärjestelmät Kokonaisluvut, liukuluvut Merkit, merkkijonot Äänet, kuvat, muu tieto

Jakso 8 Ohjelman toteutus järjestelmässä. Prosessi Prosessin esitysmuoto järjestelmässä Käyttöjärjestelmä KJ-prosessit

Jakso 4 Aliohjelmien toteutus

Aliohjelmatyypit (2) Jakso 4 Aliohjelmien toteutus

Jakso 5 Suoritin ja väylä. Suorittimen rakenne Väylän rakenne Käskyjen suoritussykli Poikkeukset ja keskeytykset TTK-91:n ja KOKSI:n rakenne

Lausekielestä suoritukseen (3) Luento 10 Käännös, linkitys ja lataus. Assembler-kielinen käännösyksikkö (2) Objektimoduuli (2) Symbolitaulu

Luento 10 Käännös, linkitys ja lataus. Käännös Linkitys Dynaaminen linkitys Lataus

Jakso 10 Ohjelman suoritus järjestelmässä. Käännös Linkitys Dynaaminen linkitys Lataus

Lausekielestä suoritukseen (3) Luento 10 Käännös, linkitys ja lataus. Assembler-kielinen käännösyksikkö (2) Käännösyksikkö (4) Objektimoduuli (8)

Luento 10 Käännös, linkitys ja lataus

Jakso 8 Ohjelman suoritus järjestelmässä

Jakso 10 Ohjelman suoritus järjestelmässä

Luento 8 Ohjelman toteutus järjestelmässä

Luento 8 Ohjelman toteutus järjestelmässä. Prosessi Prosessin esitysmuoto järjestelmässä Käyttöjärjestelmä KJ-prosessit

Suoritin. Luento 5 Suoritin ja väylä. TTK-91 muistin rakenne. TTK-91 suorittimen rakenne

Jakso 8 Ohjelman suoritus järjestelmässä

Luento 2 (verkkoluento 2) Ttk-91 järjestelmä

Luento 5 (verkkoluento 5) Suoritin ja väylä

Tietokoneen toiminta Teemu Kerola, Copyright Muistihierarkia

Luento 5 Suoritin ja väylä

Muistihierarkia Kiintolevyt I/O:n toteutus. Käännös, Linkitys Lataus

Oppimistavoitteet kurssilla Tietokoneen toiminta

Järjestelmän ulkoinen muisti I/O

Muistihierarkia Kiintolevyt I/O:n toteutus

Luento 5 Suoritin ja väylä

Aliohjelmien toteutus Suoritin ja väylä

Suoritin. Luento 5 Suoritin ja väylä. TTK-91 suorittimen rakenne (1) TTK-91 muistin rakenne. Käskyjen nouto- ja suoritussykli (5)

Muistihierarkia. Virtuaalimuisti. Tiedostojärjestelmä. Levymuistin saantiaika. Tietokoneen toiminta Luento 9, Ulkoinen muisti ja I/O 1

1. Keskusyksikön rakenne

Luento 5 Suoritin ja väylä

Prosessi (4) Suorituksessa olevan ohjelman esitysmuoto järjestelmässä. Jakso 8 Ohjelman suoritus järjestelmässä. Prosessin elinkaari (9)

Luento 5 Suoritin ja väylä

Suoritin. Luento 5 Suoritin ja väylä. TTK-91 suorittimen rakenne (1) TTK-91 muistin rakenne

Transkriptio:

Keskeiset asiat Mitä hyötyä tästä on? Mitä seuraavaksi? Kurssit? Asiat? Luento 12 Yhteenveto 1 Tavoitteet Ymmärtää tietokonejärjestelmän keskeiset piirteet sillä suoritettavan ohjelman näkökulmasta Miten tietokonejärjestelmä suorittaa sille annettua ohjelmaa? Minkälaista koodia suoritin ymmärtää? Mikä on käyttöjärjestelmän rooli ja perustoiminnot? 2 Luento 12, Yhteenveto 1

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 suoritin, rekisterit, väylät, muisti konekäskyjen suoritussykli, keskeytykset aktivointitietuepino, aliohjelmien toteutus Tiedon esitysmuodot (ohjelma vs. laitteisto) I/O laitteet ja I/O:n toteutus laiteajurit, laitekeskeytykset, levymuisti 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 Luento 12, Yhteenveto 2

Esimerkkikone: TTK-91 laitteisto suoritin - CPU ALU CU rekisterit muisti (kirjastorutiinit) (välimuisti) MMU ohjelma data väylä laiteohjaimet 5 Nopeuserot: Teemun juustokakku Rekisterien, välimuistin, muistin, levymuistin ja magneettinauhan nopeudet suhteutettuna juuston hakuaikaan juustokakkua tehdessä? käsi pöytä jääkaappi kuu Europa (Jupiter) (käyttöjärjestelmä) 1 sek 0.5 sek (väli- 10 sek (rekisteri) muisti) (muisti) 12 pv (levy) kuilu kuilu 2008: 0.5 ns? 10 ns? 4 ms? kasvaa kasvaa (50 pv?) Michael Crumpton 4 v (verkko,ihminen) 1 s? (n 65 v?) 6 Luento 12, Yhteenveto 3

Konekielinen ohjelmointi for (int i=20; i < 50; ++i) T[i] = 0; muuttujat, vakiot taulukot (2D), tietueet muistissa, 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 7 Parametrien tyyppi? arvo-, viite- ja nimiparametrit Aktivointitietue (Aktivointitietuepino) int funca (int x,y); 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) paluuarvo param x param y vanha PC vanha FP paik. m. i1 paik. m. i2 vanha R1 vanha R2-2 +1 8 Luento 12, Yhteenveto 4

Käskyjen nouto- ja suoritussykli Hae käsky PC++ M=2 M>0 lue muistista pura käsky, M=0 laske osoite suorita käsky pushr kirj. muistiiin write push pushr D=0 (SR) tarkista keskeytykset noutosykli Noutosykli suoritussykli 9 Suorittimen suoritustilat user Käyttäjätila (user mode, normal mode) voi käyttää vain tavallisia käskyjä voi viitata vain käyttäjän omaan muistiavaruuteen (MMU valvoo) Etuoikeutettu tila tai (KJ:n) ytimen tila kernel Miten ja milloin tila vaihtuu? (kernel mode, privileged mode) voi käyttää kaikkia konekäskyjä, myös etuoikeutettuja (esim. clear_cache, iret) voi viitata kaikkialle muistiin, myös käyttöjärjestelmän ytimeen (kernel) voi käyttää (myös) suoria muistiosoitteita (PA, physical address) 10 Luento 12, Yhteenveto 5

sign exponent Tiedon esitysmuodot + 15 0.1875 = 0.0011 mantissa or significand 23 bittiä mantissalle, siten että... kokonaisluvut 1) liukuluvut Binääripiste (.) on heti ensimmäisen merkit bitin jälkeen merkkijonot 2) kuvat Mantissa on normalisoitu: vasemmanpuolimmainen äänet bitti on1 3)Vasemmanpuolimmaista (eniten ei-standardoitu tieto? merkitsevä) bittiä (1) 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! 11 Prosessi, prosessin tilat ja elinkaari ready-to-run valmis suoritukseen running suorituksessa luonti odottaa poistettu tai tapettu waiting Milloin tila vaihtuu? Mitä silloin tapahtuu (konekäsky tasolla)? Kuka tai mikä aiheuttaa tilan vaihdon? 12 Luento 12, Yhteenveto 6

Prosessit jonoissa ja PCB R-to-R 1056 1766 Running 0188 Disk1 0036 7654 9878 waiting Timer 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) 13 I/O:n toteutus, laiteohjain ja laiteajuri Muisti väylä suoritin käyttäjäprosessi laiteajuri (KJ prosessi) laite data c/s laiteohjain laiteohjainprosessi (device controller) laite Suora I/O Epäsuora I/O DMA I/O 14 Luento 12, Yhteenveto 7

Levyjen käyttö Tiedosto koostuu useista lohkoista lohko per sektori (tai usea sektori) Levyn hakemistossa on tieto kunkin tiedoston käyttämistä lohkoista luetaan lohkot annetussa järjestyksessä hakemisto alkio FileA (unix) indeksi lohko lohko lohko lohko lohko 15 Lausekielestä suoritukseen Käännös lausekielestä Linkitys muiden ja kirjastomoduulien kanssa Lataus muistiin prosessia varten Käännösyksikkö myprog.c Lausekielinen ohjelma tai moduuli symboliset osoitteet Objektimoduuli myprog.obj Käännetty ohjelma (konekielellä) lineaariset osoitteet (per moduuli) Ajomoduuli myprog.exe lineaariset osoitteet (1 osoiteavar.) osa puutteellisia (?) Prosessi Suorituskelpoinen ohjelma lineaariset osoitteet (virt. os.avar.) prog.c prog.o math.l prog PCB (prog) 16 Luento 12, Yhteenveto 8

Tulkinta ja emulointi JVM Java virtuaalikone Java tulkki Pentium II suoritin lataus iload i iload j iadd istore k Java suoritin k = i+j; Java ohjelma Javan byte-koodi käännös iload i iload j iadd istore k ( esimerkiksi) natiiviympäristö Java byte-koodi (JIT) kääntäjä Pentium II suoritin 17 Aihepiirien välisiä riippuvuuksia Ohjelmointikielet Sovellukset Ohjelmointi Tietokoneen toiminta Käyttöjärjestelmät Tietoliikenne Laskennan teoria dl latausmoduuli Tietokonearkkitehtuuri Samanaikaisuuden hallinta 18 Luento 12, Yhteenveto 9

Kurssien välisiä riippuvuuksia Pakolliset perus- ja aineopinnot Tietokoneen toiminta Syventävät opinnot (Haj. järj. ja tietoliikenne) Rinnakkaisohjelmointi Tietoliik. perusteet Tietokoneen rakenne Tietoturvan per. Haj. järjest. Spes. & verif perusteet Käyttöjärjest. Internetprotokollat 19 Tietokoneen rakenne, 4 op 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? 20 Luento 12, Yhteenveto 10

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 21 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 Jatkoa syventävällä tasolla Internet-protokollat, 4 op 22 Luento 12, Yhteenveto 11

Tietoliikenteen perusteet TCP/IP -kerrosmalli Sovellus Sovellus rajapinta Kuljetuskerros Verkkokerros Siirtoyhteyskerros sovellus protokollat kuljetus protokollat verkko protokollat siirto protokollat Sovellus Sovellus rajapinta TCP, UDP IP Ethernet, token ring, PPP 23 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 muistialue? viestit? miksi? milloin? verkon ylitse? Jatkoa syventävällä tasolla Hajautetut järjestelmät, 4 op semaforit monitorit kohtaaminen vartioitu rinn. odotus rpc, viestit Java rinnakkaisohjelmointi 24 Luento 12, Yhteenveto 12

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 Jatkoa syventävällä tasolla Ohjelmien semantiikka (?), 6 op Automaattinen verifiointi (?), 6 op 25 Laskennan teorian perusta (2) suoritin - CPU muisti hae käsky suorita käsky 500 miljoonaa lukua á 10 numeroa väylä suoritin - CPU hae käsky suorita käsky muisti Ohjelma P Data väylä 26 Luento 12, Yhteenveto 13

Laskennan teoriaa (5) hae käsky suorita käsky Ohjelma P Data väylä Muistin sisältö ennen P:n suoritusta: Muistin sisältö P:n suorituksen jälkeen: X = hyvin iso kokonaisluku (500M numeroa?) Y = joku toinen hyvin iso luku P on kokonaislukuarvoinen funktio P: N N Ohjelman P esitysmuoto muistissa:iso kokonaisluku, P N 27 Laskennan teoriaa... (5) Mielivaltaisten ohjelmien ominaisuuksia voi päätellä kokonaislukujen ja niiden välisten funktioiden ominaisuuksista laskennan teoria Todistettuja lauseita ohjelmien ominaisuuksista pätevät kaikille tietokoneille pätevät aina: nyt ja tulevaisuudessa 28 Luento 12, Yhteenveto 14

Laskennan teoriasta ja algoritmianalyysistä todistettuja lauseita (4) Valitaanpa mikä tahansa aikaraja tai muistin 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 muistitilaa 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://www.retroweb.com/apollo_retrospective.html http://lue.kurssikokeeseen.edu/ajoissa.html 30 Luento 12, Yhteenveto 15