Tietokoneen toiminta, K Tavoitteet (4)

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, K2000

Luento 12 Yhteenveto

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

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

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

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

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

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

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 Tietokonejärjestelmän rakenne. Järjestelmän eri tasot Laitteiston nopeus

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

Luento 1 (verkkoluento 1) Tietokonejärjestelmä

Käännös, linkitys ja lataus

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

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

Tietokoneen toiminta (Computer Organization I)

Kertausluento luennoista 1-3 1

Tietokoneen toiminta (Computer Organization I)

Tietokoneen toiminta (Computer Organization I)

Aihepiiri Tietokoneen toiminta (Computer Organization I)

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

Tietokoneen toiminta (Computer Organization I)

Tietokoneen toiminta (Computer Organization I)

Tietokoneen toiminta (Computer Organization I)

Tietokoneen toiminta (Computer Organization I)

Tietokoneen toiminta (Computer Organization I)

Aihepiiri Tietokoneen toiminta (Computer Organization I)

Tietokoneen toiminta (Computer Organization I)

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)

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

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)

Muistihierarkia Kiintolevyt I/O:n toteutus

Jakso 10 Ohjelman suoritus järjestelmässä

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

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

Luento 4 Aliohjelmien toteutus

Jakso 4 Aliohjelmien toteutus

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

Jakso 10 Ohjelman suoritus järjestelmässä

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

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

Luento 10 Käännös, linkitys ja lataus. 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

Järjestelmän ulkoinen muisti I/O

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

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

Luento 4 Aliohjelmien toteutus

Muistihierarkia Kiintolevyt I/O:n toteutus

Luento 4 (verkkoluento 4) Aliohjelmien toteutus

Aliohjelmatyypit (2) Jakso 4 Aliohjelmien toteutus

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

Jakso 5 Suoritin ja väylä

Luento 4 Aliohjelmien toteutus

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

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

Jakso 4 Aliohjelmien toteutus

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

Tietokoneen toiminta Teemu Kerola, Copyright Muistihierarkia

Jakso 8 Ohjelman suoritus järjestelmässä

Luento 4 Aliohjelmien toteutus

Jakso 5 Suoritin ja väylä

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

Jakso 8 Ohjelman toteutus järjestelmässä

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

Jakso 8 Ohjelman suoritus järjestelmässä

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

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

Luento 4 (verkkoluento 4) Aliohjelmien toteutus

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

Jakso 8 Ohjelman toteutus järjestelmässä

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

Luento 9 Järjestelmän ulkoinen muisti

Jakso 4 Aliohjelmien toteutus

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

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

Luento 9 Järjestelmän ulkoinen muisti

Luento 9 Järjestelmän ulkoinen muisti

Aliohjelmatyypit (2) Jakso 4 Aliohjelmien toteutus

Muistihierarkia (4) Luento 9 Järjestelmän ulkoinen muisti. Ohjelman muistiosoitteet (3) Virtuaalimuisti (3) Virtuaalimuistin toteutus.

Aliohjelmien toteutus Suoritin ja väylä

Luento 5 Suoritin ja väylä

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

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

1. Keskusyksikön rakenne

Tulkinta ja emulointi

Luento 9 Järjestelmän ulkoinen muisti

Transkriptio:

Luento 12 Yhteenveto Keskeiset asiat Mitä hyötyä tästä on? Mitä seuraavaksi? Kurssit? Asiat? 1 Tavoitteet (4) 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? 2 Luento 12, Yhteenveto 1

Mitä hyötyä tästä on? (2) Ohjelman suoritusnopeus perustuu suorittimen (CPU) suorittamiin konekäskyihin, ei pelkästään ohjelman korkean tason esitysmuotoon Ylemmän tason asioiden ymmärtäminen on helpompaa (mahdollista), kun ymmärtää alemman tason asiat 3 Keskeisiä asioita (9) Järjestelmä kokonaisuudessaan, nopeuserot Esimerkkikone ja sen käyttö Konekielinen ohjelmointi Suoritin, rekisterit, väylät, muisti konekäskyjen suoritussykli, keskeytykset Aktivointitietuepino, aliohjelmien toteutus Tiedon esitysmuodot (ohjelma vs. laitteisto) Välimuisti Prosessi ja sen toteutus (PCB) Ulkoinen muisti ja I/O laitteet laiteajurit, laitekeskeytykset, levymuisti Ohjelmien suoritus järjestelmässä käännös, linkitys, lataus, tulkinta, emulointi, simulointi 4 Luento 12, Yhteenveto 2

Nopeuserot: juustokakku Rekisterien, välimuistin, muistin, levymuistin ja magneettinauhan nopeudet suhteutettuna juuston hakuaikaan juustokakkua tehdessä? Europa (Jupiter) käsi jääkaappi pöytä kuu 0.5 sek (rekisteri) 10 sek (muisti) 12 pv (levy) 4 v (nauha, ihminen) 5 Esimerkkikone: TTK-91 laitteisto suoritin - CPU ALU CU rekisterit MMU muisti (kirjastorutiinit) 1 sek (välimuisti) (käyttöjärjestelmä) (cache) (tlb) ohjelma data väylä laiteohjaimet 6 Luento 12, Yhteenveto 3

Konekielinen ohjelmointi for (int i=20; i < 50; ++i) T[i] = 0; 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 TTK-91 Nouto- ja suoritussykli Hae käsky PC++ M=2 M>0 pura käsky, laske osoite lue muistista M=0 suorita käsky pushr kirj. muistiiin write push pushr D=0 (SR) tarkista keskeytykset noutosykli Noutosykli suoritussykli 8 Luento 12, Yhteenveto 4

Aktivointitietue Aliohjelman toteutusmuoto (ttk-91) kaikkien ulostuloparametrien arvot kaikkien (sisäänmeno) parametrien arvot paluuosoite kutsukohdan aktivointitietue aliohjelman ajaksi talletettujen rekistereiden arvot kaikki paikalliset muuttujat ja tietorakenteet int funca (int x,y); paluuarvo param x param y vanha PC vanha FP vanha R1 vanha R2 paik. m. i1 paik. m. i2 9 IEEE 32-bit FP Standard + 15 0.1875 = 0.0011 sign exponent 23 bittiä mantissalle, siten että... 1) Binääripiste (.) on heti ensimmäisen bitin jälkeen mantissa or significand 2) Mantissa on normalisoitu: vasemmanpuolimmainen bitti on1 3)Vasemmanpuolimmaista (eniten merkitsevä) bittiä (1) ei talleteta (implied bit) 1/8 = 0.1250 1/16= 0.0625 0.1875 mantissa eksponentti 0.0011 15 1.1000 12 1000 12 24 bitin mantissa! 10 Luento 12, Yhteenveto 5

Välimuisti suoritin - CPU ALU rekisterit CU MMU muisti (kirjastorutiinit) (käyttöjärjestelmä) Välimuisti (cache) ohjelma data väylä laiteohjaimet 11 Prosessin elinkaari ready-to-run valmis suoritukseen running suorituksessa luonti odottaa waiting poistettu tai tapettu 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 Laiteohjain ja laiteajuri Muisti väylä suoritin käyttäjäprosessi laiteajuri (KJ prosessi) laite data c/s laiteohjain laiteohjainprosessi (device controller) laite Ks. Fig 6.4 [Stal99] 14 Luento 12, Yhteenveto 7

Sivuttava virtuaalimuisti Looginen osoiteavaruus jaettu saman kokoisiin sivuihin, esim. 1 KB Fyysinen muisti jaettu saman kokoisiin ( frame) sivuraameihin Jokainen looginen sivu voidaan sijoittaa mihin tahansa (vapaaseen) sivuraamiin Sivutaulu pitää kirjaa loogisten sivujen sijainnista muisti levy 15 CPU suorituslogiikka TLB regs TLB table table Memory cache Bus Disk table table table table 16 Luento 12, Yhteenveto 8

Levyjen käyttö Tiedosto koostuu useista lohkoista lohko per 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 17 Käännös lausekielestä Linkitys muiden ja kirjastomoduulien kanssa Lataus muistiin prosessia varten Lausekielestä suoritukseen Käännösyksikkö myprog.c Lausekielinen ohjelma tai moduuli osoitteet: symbolit Objektimoduuli myprog.obj Käännetty ohjelma (konekielellä) osoitteet: lineaariset (per moduuli) Ajomoduuli myprog.exe osoitteet: lineaariset, osa puutteellisia (?) Prosessi Suorituskelpoinen ohjelma osoitteet: lineaariset (virt. avar.?) prog.c prog.o math.l prog 18 Luento 12, Yhteenveto 9

Tulkinta ja emulointi Java virtuaalikone Java tulkki Pentium II suoritin data load iload i iload j iadd istore k Java suoritin ( esimerkiksi) natiiviympäristö k = i+j; Java ohjelma Java käännös iload i Java iload j byte-koodi iadd istore k data (JIT) käännös dl latausmoduuli Pentium II suoritin 19 20 Luento 12, Yhteenveto 10

Kurssien välisiä suhteita Tietokoneen toiminta (2ov) Käyttöjärjestelmät I (2ov) Rinnakkaisohjelmointi (2ov) Tietokoneen rakenne (2ov) Tietoliikenne I (2ov) 21 Asioiden välisiä suhteita (8) Tietokoneen toiminta Ohjelmointikielet Tietokoneen rakenne Samanaikaisuuden hallinta Laskennan teoria Kääntäjät Oikeellisuuden todentaminen Tietoliikenne Käyttöjärjestelmät 22 Luento 12, Yhteenveto 11

-- Luennon 12 ja koko kurssin loppu -- http://www.retroweb.com/apollo_retrospective.html http://cooks.com/muribeachcomber/ 23 Lisää tietoa kurssien sisällöstä kiinnostuneille erittäin kiinnostuneet voivat myös tutustua kurssien kotisivuihin ja kurssimappeihin talletettuun kurssimateriaaliin 24 Luento 12, Yhteenveto 12

Tietokoneen rakenne, 2 ov Yksi taso alaspäin TITOsta Sopiva 2. vuoden opiskelijalle Useissa korkeakouluissa yhdistetty TITOon Miten kellopulssi saa suorittimen suorittamaan konekäskyjä? Miten suorittimen aritmetiikka on toteutettu? Usea käsky on todellisuudessa suorituksessa samanaikaisesti Miten tämä toteutetaan, mitä ongelmia siitä seuraa ja miten noita ongelmia ratkotaan? Jatkoa syventävällä tasolla Tietokonearkkitehtuurit, 4 ov 25 TiKRa. [Stal99] 26 Luento 12, Yhteenveto 13

Käyttöjärjestelmät I, 2 ov Sopiva 2. vuoden opiskelijalle Käyttöjärjestelmän rooli yhden prosessin valvojana Täsmentää ja jatkaa TITOn käyttöjärjestelmien piirteiden esittelyä Samanaikaiset prosessit resurssien käyttäjinä Systeemin resurssien jakelu Prosessien vuoronanto (skedulointi) Jatkoa perustasolla ja syventävällä tasolla Käyttöjärjestelmät II, 2 ov Käyttöjärjestelmämetodiikka, 3 ov 27 KJ... 28 Luento 12, Yhteenveto 14

Tietoliikenne I, 2 ov Sopiva 2. vuoden opiskelijalle Tietokoneverkkojen peruspalvelut käyttäjälle ja sovelluksille Verkkojen tiedonsiirron perusvälineistö Verkkoarkkitehtuurin kerrosrakenne ja kunkin tason palvelut Jatkoa perustasolla ja syventävällä tasolla Tietoliikenne II, 2 ov Tietoliikennejärjestelmät, 3 ov 29 Tietoliikenne 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 30 Luento 12, Yhteenveto 15

Rinnakkaisohjelmointi, 2 ov Sopiva: 2. vuoden opiskelijoille Samanaikaisuuden aiheuttamat ongelmat järjestelmä kaatuu miksi niin kävi? Samanaikaisuuden aiheuttamat vaatimukset systeemille Prosessien synkronointi eri tapauksissa odottamalla vai prosessia vaihtamalla? Prosessien kommunikointi eri tavoin yhteinen muistialue? viestit? verkon ylitse? Jatkoa syventävällä tasolla Hajautetut järjestelmät, 3 ov 31 RIO: synkronointiongelman ratkaisu Test-and-Set -käskyllä TAS Ri, L (ttk-91:n laajennus) Kriittinen vaihe Ri := mem[l] if Ri==1 then {Ri := 0, mem[l] := Ri, jump *+2} LOOP: TAS R1, L # L: 1 (vapaa) 0 (varattu) JUMP LOOP... kriittinen? vaihe... LOAD R1,=1 STORE R1,L Toimiiko, jos tulee keskeytys pahalla kohtaa? 32 Luento 12, Yhteenveto 16

Ohjelmointikielten periaatteet, 4 ov Lähtötiedot: OKLPM, TiKi, ohjelmointilabrat Sopiva: 3. vuoden opiskelijat Ohjelmointikielten määrittelyn välineistö Erilaiset ohjelmointiparadigmat esimerkkikielten avulla proseduraaliset kielet C, Pascal oliokielet Smalltalk funktionaaliset kielet logiikkaohjelmointikielet Prolog Jatkoa syvemmällä tasolla:?? Scheme, ML 33 Ohjelmointikielten kääntäjät, 5 ov Lähtötiedot: OKLPM, ohjelmointilabrat Sopiva: 3. vuoden opiskelijat Ohjelmointikielten kääntäjien tyypit rekursiivisesti etenevä jäsentelijä Kääntäjän osat selaaja lex jäsentelijä semantiikan analyysi koodin generointi Jatkoa syvemmällä tasolla:?? yacc 34 Luento 12, Yhteenveto 17

Spesifioinnin ja verifioinnin perusteet, 2 ov Lähtötiedot: hajautuksen ja samanaikaisuuden problematiikka Sopiva: 3. vuoden opiskelijalle Mallinnetaan prosesseja siirtymäsysteemeillä Automaattisen verifioinnin periaatteet Yksinkertaisia protokollien verifiointi Jatkoa syventävällä tasolla Ohjelmien semantiikka, 3 ov Automaattinen verifiointi, 3 ov 35 Ohjelmoinnin ja laskennan perusmallit, 2 ov Lähtötiedot: TiRa & matematiikkaa (Algebra I,...) Sopiva: 1 vuoden opiskelijalle, joka on opiskellut jo matematiikkaa Laskennalliset ongelmat, niiden luokittelu Äärelliset automaatit ja säännölliset kielet Kieliopit Turingin kone Jatkoa syventävällä tasolla Laskennan teoria, 3 ov 36 Luento 12, Yhteenveto 18

Laskennan teorian perusta (1) suoritin - CPU muisti hae käsky suorita käsky 40 miljoonaa lukua á 10 numeroa väylä suoritin - CPU hae käsky suorita käsky muisti Ohjelma P Data väylä 37 Laskennan teoriaa (4) 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 (200M numeroa?) Y = joku toinen hyvin iso luku P on kokonaislukuarvoinen funktio P:ø ø Ohjelman P esitysmuoto muistissa: Iso kokonaisluku, P ø 38 Luento 12, Yhteenveto 19

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 nyt ja tulevaisuudessa 39 Laskennan teoriasta ja algoritmianalyysistä todistettuja lauseita (3) Valitaanpa mikä tahansa aikaraja, 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 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 40 Luento 12, Yhteenveto 20