Javaohjelmien suoritus (3) Jakso 11 Tulkinta ja emulointi. Java-virtuaalikone (JVM) (5) JVM:n tietorakenteet (8) JVM:n tietorakenteet (jatkuu) (6)
|
|
- Teuvo Pakarinen
- 8 vuotta sitten
- Katselukertoja:
Transkriptio
1 Jakso 11 Tulkinta ja emulointi Tulkinta ja emulointi Java-ohjelman suoritus, tulkinta ja kääntäminen Suorittimen emulointi: ttk-91, Crusoe 1 Javaohjelmien suoritus (3) Java-virtuaalikone - instr ( esimerkiksi) natiiviympäristö latausmoduuli Javatulkki Java (JIT) käännös k = i+j; Java-ohjelma Javakäännös Java byte-koodi - 2 Java-virtuaalikone (JVM) (5) Hypoteettinen, toteutus eri tavoilla Geneerinen, sitä on helppo simuloida kaikilla todellisilla suorittimilla Useita säikeitä (thread) voi olla samanaikaisesti suorituksessa suorittimella mikroaikaskaalassa vain yksi kerrallaan Tietorakenteet mm. virtuaalikoneen suorittimen rekisterit luodaan JVM:n käynnistämisen yhteydessä Käskyt virtuaalikoneen suorittimen konekäskyt 226 käskyä á 32 bittiä 3 JVM:n tietorakenteet (8) JVM-pino ks. Fig (Tane99) vähän kuten tavallinen AT-pino koostuu useista kehyksistä (frames) (vrt. aktivointitietue) ja operandipinosta käyttö: kehyksille ainoastaan push/pop-operaatiot, operandipinon alkioille myös push/pop ei tarvita yhtenäistä aluetta allokoidaan keosta (heap) toteutuksesta riippuen rajallinen tai dynaamisesti laajennettavissa tila loppu StackOverflowError, OutOfMemoryError 4 JVM-keko (JVM heap) yhteinen kaikille saman virtuaalikoneen säikeille automaattinen roskienkeruu (garbage collector) ei-käytössä oleva (eli vapautettu) alue palautetaan uusiokäyttöön (vapaaksi) ei tarvita erikseen free-operaatiota Java-ohjelmassa voi hidastaa suoritusta milloin vain ei tarvitse muodostaa yhtenäistä aluetta natiivijärjestelmän kasassa JVM-metodialue (JVM Method Area) yhteinen kaikille JVM-säikeille vastaa tavallista kääntäjän tuottamaa koodisegmenttiä loogisesti osa JVM-kekoa 5 6
2 JVM:n tietorakenteet (jatkuu) (7) Javan suoritusaikainen vakioallas (runtime constant pool) joka luokalle (class) tai liittymälle (interface) omansa suoritusaikainen esitystapa tiedoston class constant_pool -taulukolle vastaa vähän tavallista symbolitaulua useita erilaisia vakioita (käännösaikaiset literaalit, suoritusaikana ratkottavat attribuutit, ) talletetaan JVM-metodialueelle Natiivimetodien pinot (Native Method Stacks) toteutus voi käyttää tavallisia pinoja ( C stacks ) sellaisten natiivimetodien tukena, jota ei ole kirjoitettu Javalla käytetään myös Java-tulkin toteutuksessa ei tarvita JVM-toteutuksissa, joissa ei ole natiivimetodeja tila loppu StackOverflowError, OutOfMemoryError 7 8 JVM-rekisterit PC osoittaa johonkin JVM-metodialueelle CPP osoittaa vakioaltaaseen LV on paikallisten muuttujien kantaosoite (vähän kuten FP ttk-91:ssä) SP osoittaa JVM-operandipinon huipulle kaikki rekisterit implisiittisiä; niitä ei erikseen nimetä JVM -konekäskyissä JVM-kehys(frame, raami) talletetaan JVM-pinoon, luodaan metodin kutsun yhteydessä, vapautetaan metodista poistuttaessa paikalliset muuttujat parametrit, paluuarvon ja välitulokset dynaamisen linkityksen toteutusväline keskeytysten toteutusväline 9 10 JVM-kehyksen (8) Paikalliset muuttujat sisältävä taulukko viittaukset indeksoituna (0, 1, 2, ) rekisterin LV suhteen indeksit sanoina kaksi sanaa vaativa muuttuja (long, double) sijoitetaan kahteen peräkkäiseen (32 bittiseen) sanaan big-endian talletus Parametrit, paluuarvon ja välitulokset sisältävä operandipino SP osoittaa pinon huipulle pinoarkkitehtuuri (vs. rekisteriarkkitehtuuri) JVM:n tiedon osoitusmoodit (4) Välitön operandi Indeksoitu Pino-osoitus Taulukko-osoitus pinon kautta iinc 2 34 iinc 2 34 iadd iaload tehollinen osoite (LV) + 2 korvaa pinon kaksi päällä olevaa kokonaislukua niiden summalla Korvaa pinon pinnalla olevat taulukon alkuosoite ja indeksi k.o. taulukon alkiolla 11 12
3 JVM-käskyt (7) Peruslaskutoimitukset ks. Fig [Tane99] add, sub, mul, div, rem, neg Boolean and, or, xor, shl, shr, ushr Pinon hallinta dup, pop, swap, tauluk. luonti, esitystavan muutokset Load/Store load, aload, store, astore, push-käskyt Vertailut Kontrollinsiirrot Muut Java-tulkki (4) Emuloi JVM-konekielen käskyjä (byte-koodia) Yksi käsky kerrallaan JVM-rekisterit ja alueet emuloitu tulkin tietorakenteina Hidasta, mutta joustavaa Java tulkki Käännös natiivikoneelle (3) (a) Käännetään tavukoodi natiivikoneen konekielelle, ja suoritetaan normaalin ohjelman tapaan (b)käännetään tavukoodi korkean tason kielelle, joka sitten käännetään natiivikoneen konekielelle alkuosa riitää tehdä kerran loppuosa on jo valmiina yleensä ongelma: dynaaminen linkitys 15 Java JIT -käännös (6) JIT = Just-in-Time Emulointi ja/tai natiivikoneen suoritus tilanteesta riippuen Kääntää luokan natiivikonekielelle dynaamisesti linkitettäväksi moduuliksi, juuri ennen luokan metodin kutsua Tarvitsee paljon a Voi hidastaa suoritusta, jos käännökseen menee enemmän aikaa kuin tulkitsemiseen (käännös vasta 2. kutsukerralla?) JVM-rekisterit ja alueet emuloitu tulkin tietorakenteina, joita natiivikoodi myös käyttää dl latausmoduuli käännös dl-latausmoduuli JITkäännös Javatulkki - 16 Java-: Sun PicoJAVA II (4) Suorittimen määrittely, jonka mukaisessa koneessa byte-koodi -muodossa olevia ohjelmia voidaan sellaisenaan suorittaa Valinnainen väli ja liukuluku Kaikki 226 JVM-konekäskyä jotkut käskyt toteutettu aliohjelmilla, jotka aktivoidaan keskeytyskäsittelymekanismin avulla Myös 115 muuta konekäskyä n ja muiden ohjelmointikielten toteuttamiseksi PicoJAVA II -pino 64 (väli-) rekisteriä JVM-pinon huipun talletukseen loput JVM-pinosta ssa rekisterit (cache) 64 Shawn Lauzon, Survey of the JavaChip 17 18
4 PicoJAVA II -rekisterit (11) 25 rekisteriä á 32 bittiä PC, LV, CPP, SP (pino kasvaa alaspäin) OPLIM alaraja SP:lle; alitus aiheuttaa keskeytyksen FRAME osoittaa paikallisten muuttujataulukon jälkeen talletettuun metodista paluu osoitteeseen P rekisteri, joka kertoo pinon välirekistereiden tämänhetkisen käytön 4 rekisteriä keskeytysten ja break-point ien käsittelyyn 4 rekisteriä säikeiden hallintaan 4 rekisteriä C ja C++ ohjelmien toteutukseen 2 rajarekisteriä sallitun alueen rajoittamiseen suorittimen version numero ja konfiguraatiorekisterit PicoJAVA:n ylim. käskyt (5) Read/write ylimääräisille rekistereille Osoittimien manipulointikäskyt mitä tahansa aluetta voidaan suoraan lukea/kirjoittaa tarvitaan C/C++ varten C/C++ -aliohjelmien kutsu ja paluukäskyt Natiivi -manipulointi tyhjennä väli (osittain? kokonaan?),... Muut käskyt power on/off, PicoJAVA-toteutuksia (2) Sun microjava 701 valinnainen väli oma väylä PCI-väylä muille laitteille 16 ohjelmoitavaa I/O-johdinta näppäimet, LEDit, 3 ohjelmoitavaa ajastinta ( kellolaitekeskeytykset) suunnattu halpoihin kannettaviin laitteisiin (kämmenmikro, PDA - Personal Digital Assistant) Sun ultrajava nopeampi, parempi, kalliimpi, suunnattu grafiikka- ja multimediasovelluksiin Muita Java-suorittimia JEM (Rockwell Collins) PSC1000 (Patriot Scientific) dsys (Saksa), lääketieteellisiä laitteita MJ501 (LG Semicon) TV, älykortit JSR001, Real-Time Specification for Java (Java Community Process, Sun Microsystems ) ajile: aj-80, aj-100, älykkäät liikkuvat laitteet Sun MAJC MAJC - Microprocessor Architecture for Java Computing arkkitehtuurin määrittely tavoitteena suuri nopeus Java-, C- ja C++-sovelluksille suunnattu multimediasovelluksiin verkossa tukee hyvin JIT-käännöstä MAJC toteutus: MAJC 5200 (4) 1-4 ta (2 suorittimen lastu v.1999) Useiden (peräkkäin kutsuttavien) metodien samanaikainen suoritus eri suorittimilla ennakoiva (speculative) suoritukselle oma kasa peruutus (rollback), jos ennakoitu suoritus meni pieleen 4 säiettä suorituksessa per säikeen vaihto nopeampaa kuin sta luku! laiterekisterit 4:lle säikeelle! välin hudin aikana suoritetaan muita säikeitä Suunnattu interaktiiviseen TV:hen, virtuaalitodellisuussovelluksiin,
5 TTK-91-emulointi (5) TTK-91-konekielen emulointi KOKSI-simulaattorin osa Yksi käsky kerrallaan TTK-91-koneen rekisterit ja emuloitu tulkin tietorakenteina ks. simulaattorin koodi load R1, 234 add R1, =5 mul R1, R2 TTK-91 emulaattori Transmetan Crusoe- (8) x86-konekielen emulointi, JIT-käännös Natiivikäskykantaa ei ole julkistettu nopeampi, sama teknologia? yhtä nopea, vähemmän virtaa Monta x86-käskyä yhtäaikaa, sikin sokin emuloinnissa x86-rekisterit emuloitu natiivijärjestelmän laiterekistereillä x86- emuloitu suojattuna tietorakenteina Tarkat keskeytykset: suorituksen peruutus uusi, hidas JIT-käännös hidas mutta tarkka emulointi movl %esp, %ebp subl $4, %esp pushl %eax Dl latausmoduuli JITkäännös Pääohjelma Crusoen Crusoe-emulaattorin suoritus emulaattoriohjelma LDA R1, =543 ADD R2, R4, R5 x86-ohjelma mov %exc1, >%ebp+0xc! add %eax!, #4 Crusoe-suorittimen looginen rakenne Morph-host -emulaattori Koodin generaattori sovellus Tapahtumaperustainen pääohjelma väli konekäskyjen suorituspiirit Crusoe- X86-koneen laiterekisterit 27 laiterekisterit Käännöspuskuri Natiivi - - laitteisto konekäskyt keskeytykset 28 Crusoe-suorittimen fyysinen rakenne -- Jakson 11 loppu -- Vahvistetut X86-laiterek. Emuloidut x86-laiterek. sovellus konekäskyjen suorituspiirit TLB puskurin rekisterit väli natiivi? koodin generaattori? emulaattori omat laiterekisterit ALIASrekisterit puskuri käännöspuskuri väylä 29 30
Java ohjelmien suoritus (3) Luento 11 Tulkinta ja emulointi. Java virtuaalikone (JVM) (5) JVM:n tietorakenteet (8) JVM:n tietorakenteet (jatkuu) (6)
Luento 11 Tulkinta ja emulointi Tulkinta ja emulointi ohjelman suoritus, tulkinta ja kääntäminen Suorittimen emulointi 1 ohjelmien suoritus (3) virtuaalikone tulkki load k = i+j; ohjelma byte-koodi ( esimerkiksi)
Luento 11 Tulkinta ja emulointi
Luento 11 Tulkinta ja emulointi Tulkinta ja emulointi Java ohjelman suoritus, tulkinta ja kääntäminen Suorittimen emulointi 1 Java ohjelmien suoritus (3) Java virtuaalikone Java tulkki Pentium II load
Jakso 11 Tulkinta ja emulointi
Jakso 11 Tulkinta ja emulointi Tulkinta ja emulointi Java-ohjelman suoritus, tulkinta ja kääntäminen Suorittimen emulointi ttk-91, Crusoe 1 Java ohjelmien suoritus (3) Java virtuaalikone Java tulkki Pentium
Java ohjelmien suoritus (3) Luento 11 Tulkinta ja emulointi. Java virtuaalikone (JVM) (5) JVM:n tietorakenteet (9) JVM:n tietorakenteet (jatkuu)
Luento 11 Tulkinta ja emulointi Tulkinta ja emulointi ohjelman suoritus, tulkinta ja kääntäminen Suorittimen emulointi C#, ttk-91, Crusoe 1 ohjelmien suoritus (3) virtuaalikone SW HW tulkki ( esimerkiksi)
Luento 11 Tulkinta ja emulointi
Luento 11 Tulkinta ja emulointi Tulkinta ja emulointi Java ohjelman suoritus, tulkinta ja kääntäminen Suorittimen emulointi C#, ttk-91, Crusoe 1 Java ohjelmien suoritus (3) Java virtuaalikone SW HW Java
Tulkinta ja emulointi
Luento 11 (verkkoluento 11) Tulkinta ja emulointi Java ohjelman suoritus Tavukoodi JVM Tulkinta Java-suoritin Käännös ja JIT-käännös JVM vs. Titokone Java ohjelmien suoritus Java virtuaalikone SW HW Java
Java ohjelmien suoritus (3) Luento 11 Tulkinta ja emulointi
Luento 11 Tulkinta ja emulointi Tulkinta ja emulointi ohjelman suoritus, tulkinta ja kääntäminen Suorittimen emulointi C#, ttk-91, Crusoe 1 ohjelmien suoritus (3) virtuaalikone SW HW tulkki ( esimerkiksi)
Luento 11 Tulkinta ja emulointi
Luento 11 Tulkinta ja emulointi Tulkinta ja emulointi Java ohjelman suoritus, tulkinta ja kääntäminen Suorittimen emulointi C#, ttk-91, Crusoe 1 Java ohjelmien suoritus (3) Java virtuaalikone SW HW Java
Luento 11 Tulkinta ja emulointi
Luento 11 Tulkinta ja emulointi Tulkinta ja emulointi Java ohjelman suoritus, tulkinta ja kääntäminen Suorittimen emulointi C#, ttk-91, Crusoe 1 Java ohjelmien suoritus (3) Java virtuaalikone SW HW Java
Copyright 2018 Teemu Kerola
Luento 11 (verkkoluento 11) Tulkinta ja emulointi Java ohjelman suoritus Tavukoodi JVM Tulkinta Java-suoritin Käännös ja JIT-käännös JVM vs. Titokone 1 Java ohjelmien suoritus Java virtuaalikone SW HW
Jakso 12 Yhteenveto. Keskeiset asiat Teemu Kerola, K2000
Jakso 12 Yhteenveto Keskeiset asiat 1 Tavoitteet (4) Ymmärtää tietokonejärjestelmän keskeiset piirteet sillä suoritettavan ohjelman näkökulmasta Miten tietokonejärjestelmä suorittaa sille annettua ohjelmaa?
Tietokoneen toiminta, K Tavoitteet (4)
Jakso 12 Yhteenveto Keskeiset asiat 1 Tavoitteet (4) Ymmärtää tietokonejärjestelmän keskeiset piirteet sillä suoritettavan ohjelman näkökulmasta Miten tietokonejärjestelmä suorittaa sille annettua ohjelmaa?
Teemun juustokakku Rekisterien, välimuistin, muistin, levymuistin ja magneettinauhan nopeudet suhteutettuna juuston hakuaikaan juustokakkua tehdessä?
Tietokonejärjestelmän rakenne ttk-91 ja sillä ohjelmointi 27.1.2011 Tietokone suoritin (CPU) väylä tai väylät laiteohjaimet muiden koneiden kanssa Ethernet, modeemi,... laitteiden kanssa Levy, DVD, CD,
Jakso 4 Aliohjelmien toteutus
Jakso 4 Aliohjelmien toteutus Tyypit Parametrit Aktivointitietue (AT) AT-pino Rekursio 1 Aliohjelmatyypit (2) Korkean tason ohjelmointikielen käsitteet: aliohjelma, proseduuri parametrit funktio parametrit,
Java-ohjelman suoritus Java tavukoodi, Java-virtuaalikone. Java-ohjelmien emulointi ja käännös Java-suorittimet. C# ttk-91, Crusoe
Tulkinta ja emulointi Java-ohjelman suoritus Java tavukoodi, Java-virtuaalikone Java-ohjelmien emulointi ja käännös Java-suorittimet C# ttk-91, Crusoe luenn
Luento 1 Tietokonejärjestelmän rakenne
Luento 1 Tietokonejärjestelmän rakenne Järjestelmän eri tasot Laitteiston nopeus 1 Tietokonejärjestelmä Käyttäjä Tietokonelaitteisto Oheislaitteet (peripheral or I/O devices) Tietokone (computer) 2 Tietokone
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 1 Tietokonejärjestelmä Käyttäjä Tietokonelaitteisto Oheislaitteet (peripheral or I/O devices) Tietokone (computer) 2 Tietokone
Luento 4 Aliohjelmien toteutus
Luento 4 Aliohjelmien toteutus Tyypit Parametrit Aktivointitietue (AT) AT-pino Rekursio 1 Aliohjelmatyypit (2) Korkean tason ohjelmointikielen käsitteet: aliohjelma, proseduuri parametrit funktio parametrit,
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 1 Tietokonejärjestelmä Käyttäjä Tietokonelaitteisto Oheislaitteet (peripheral or I/O devices) Tietokone (computer) 2 Tietokone
Luento 1 Tietokonejärjestelmän rakenne
Luento 1 Tietokonejärjestelmän rakenne Järjestelmän eri tasot Laitteiston nopeus 1 Tietokonejärjestelmä Käyttäjä Tietokonelaitteisto Oheislaitteet (peripheral or I/O devices) Tietokone (computer) 2 Luento
Aliohjelmatyypit (2) Jakso 4 Aliohjelmien toteutus
Jakso 4 Aliohjelmien toteutus Tyypit Parametrit Aktivointitietue (AT) AT-pino Rekursio Aliohjelmatyypit (2) Korkean tason ohjelmointikielen käsitteet: aliohjelma, proseduuri parametrit funktio parametrit,
Tieto ja sen osoite (3) Jakso 3 Konekielinen ohjelmointi (TTK-91, KOKSI) Osoitinmuuttujat. Tieto ja sen osoite (5)
Jakso 3 Konekielinen ohjelmointi (TTK-91, KOKSI) Muuttujat Tietorakenteet Kontrolli Optimointi Tarkistukset 1 Tieto ja sen osoite (3) X DC LOAD, =X LOAD R2, X int x =; symbolin X arvo muuttujan X arvo
Jakso 4 Aliohjelmien toteutus
Jakso 4 Aliohjelmien toteutus Tyypit Parametrit Aktivointitietue (AT) AT-pino Rekursio 1 Aliohjelmatyypit (2) Korkean tason ohjelmointikielen käsitteet: aliohjelma, proseduuri parametrit funktio parametrit,
Luento 2 (verkkoluento 2) Ttk-91 järjestelmä
Luento 2 (verkkoluento 2) Ttk-91 järjestelmä Ttk-91 laitteisto Tiedon sijainti Muistitilan käyttö Ttk-91 konekieli Tiedon osoitus ttk-91:ssä Indeksointi, taulukot, tietueet 1 Suorituksenaikainen suorittimen
Kertausluento luennoista 1-3 1
Kertausluento 1 (lu01, lu02, lu03) Tietokonejärjestelmän rakenne ttk-91 ja sillä ohjelmointi Järjestelmän eri tasot Laitteiston nopeus ttk-91 rakenne ja käskykantaarkkitehtuuri Konekielinen ohjelmointi
Transmeta Architecture
Transmeta Architecture Major Ideas General Architecture Emulated Precise Exceptions What to do with It 1 Background Transmeta Corporation Paul Allen (Microsoft), George Soros (Soros Funds) David R. Ditzel
Jakso 3 Konekielinen ohjelmointi (TTK-91, KOKSI)
Jakso 3 Konekielinen ohjelmointi (TTK-91, KOKSI) Muuttujat Tietorakenteet Kontrolli Optimointi Tarkistukset 1 Muuttujan X osoite on 230 Muuttujan X arvo on 12 Symbolin X arvo on 230 symbolit ovat yleensä
Jakso 4 Aliohjelmien toteutus
Jakso 4 Aliohjelmien toteutus Tyypit Parametrit Aktivointitietue (AT) AT-pino Rekursio 1 Aliohjelmatyypit (2) Korkean tason ohjelmointikielen käsitteet: aliohjelma, proseduuri parametrit funktio parametrit,
Jakso 4 Aliohjelmien toteutus. Tyypit Parametrit Aktivointitietue (AT) AT-pino Rekursio
Jakso 4 Aliohjelmien toteutus Tyypit Parametrit Aktivointitietue (AT) AT-pino Rekursio 1 Aliohjelmatyypit (2) Korkean tason ohjelmointikielen käsitteet: aliohjelma, proseduuri parametrit funktio parametrit,
Transmeta Architecture
Transmeta Architecture Major Ideas General Architecture Emulated Precise Exceptions What to do with It 1 Background Transmeta Corporation Paul Allen (Microsoft), George Soros (Soros Funds) David R. Ditzel
Aliohjelmatyypit (2) Jakso 4 Aliohjelmien toteutus
Jakso 4 Aliohjelmien toteutus Tyypit Parametrit Aktivointitietue (AT) AT-pino Rekursio Aliohjelmatyypit (2) Korkean tason ohjelmointikielen käsitteet: aliohjelma, proseduuri parametrit funktio parametrit,
Jakso 3 Konekielinen ohjelmointi (TTK-91, KOKSI)
Jakso 3 Konekielinen ohjelmointi (TTK-91, KOKSI) Muuttujat Tietorakenteet Kontrolli Optimointi Tarkistukset 1 Muuttujan X osoite on 230 Muuttujan X arvo on 12 Symbolin X arvo on 230 Tieto ja sen osoite
Luento 4 Aliohjelmien toteutus
Luento 4 Aliohjelmien toteutus Tyypit Parametrit Aktivointitietue (AT) AT-pino Rekursio 1 Aliohjelmatyypit (2) Korkean tason ohjelmointikielen käsitteet aliohjelma, proseduuri parametrit funktio parametrit,
Luento 3 (verkkoluento 3) Ttk-91 konekielinen ohjelmointi. Ohjelman esitysmuoto Konekielinen ohjelmointi ttk-91:llä (Titokone, TitoTrainer)
Luento 3 (verkkoluento 3) Ttk-91 konekielinen ohjelmointi Ohjelman esitysmuoto Konekielinen ohjelmointi ttk-91:llä (Titokone, TitoTrainer) 1 Suorituksenaikainen suorittimen ja muistin sisältö muisti suoritin
Luento 3 Konekielinen ohjelmointi (TTK-91, KOKSI)
Luento 3 Konekielinen ohjelmointi (TTK-91, KOKSI) Muuttujat Tietorakenteet Kontrolli Optimointi Tarkistukset 1 Tieto ja sen osoite (3) X DC 12 LOAD R1, =X LOAD R2, X int x =12; symbolin X arvo muuttujan
Transmeta Architecture
Transmeta Architecture Major Ideas General Architecture Emulated Precise Exceptions What to do with It 1 Transmeta Corporation Background Paul Allen (Microsoft), George Soros (Soros Funds) David R. Ditzel
Luento 4 Aliohjelmien toteutus
Luento 4 Aliohjelmien toteutus Tyypit Parametrit Aktivointitietue (AT) AT-pino Rekursio 1 Aliohjelmatyypit (2) Korkean tason ohjelmointikielen käsitteet aliohjelma, proseduuri parametrit funktio parametrit,
Luento 1 (verkkoluento 1) Ohjelman sijainti Ohjelman esitysmuoto Laitteiston nopeus
Luento 1 (verkkoluento 1) Tietokonejärjestelmä Järjestelmän e eri tasot Ohjelman sijainti Ohjelman esitysmuoto Laitteiston nopeus 1 Tietokone- järjestelmäj ä Käyttäjä Tietokonelaitteisto Oheislaitteet
Luento 4 (verkkoluento 4) Aliohjelmien toteutus
Luento 4 (verkkoluento 4) Aliohjelmien toteutus Tyypit, Parametrit Aktivointitietue (AT) AT-pino, rekursio 1 Aliohjelmatyypit Korkean tason ohjelmointikielen käsitteet aliohjelma, proseduuri Parametrit
Luento 1 (verkkoluento 1) Tietokonejärjestelmä
Luento 1 (verkkoluento 1) Tietokonejärjestelmä Järjestelmän eri tasot Ohjelman sijainti Ohjelman esitysmuoto Laitteiston nopeus 1 Tietokonejärjestelmä Käyttäjä This image cannot currently be displayed.
Luento 4 Aliohjelmien toteutus. Tyypit Parametrit Aktivointitietue (AT) AT-pino Rekursio
Luento 4 Aliohjelmien toteutus Tyypit Parametrit Aktivointitietue (AT) AT-pino Rekursio 1 Aliohjelmatyypit (2) Korkean tason ohjelmointikielen käsitteet aliohjelma, proseduuri parametrit funktio parametrit,
Kertausluento 1 (lu01, lu02, lu03) Tietokonejärjestelmän rakenne ttk-91 ja sillä ohjelmointi
Kertausluento 1 (lu01, lu02, lu03) Tietokonejärjestelmän rakenne ttk-91 ja sillä ohjelmointi Järjestelmän eri tasot Laitteiston nopeus ttk-91 rakenne ja käskykantaarkkitehtuuri Konekielinen ohjelmointi
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 Järjestelmän eri tasot Laitteiston nopeus ttk-91 rakenne ja käskykantaarkkitehtuuri Konekielinen ohjelmointi
Transmeta Architecture
Transmeta Architecture Major Ideas General Architecture Emulated Precise Exceptions What to do with It 1 Background Transmeta Corporation Paul Allen (Microsoft), George Soros (Soros Funds) David R. Ditzel
Luento 2 (verkkoluento 2) Ttk-91 järjestelmä
Luento 2 (verkkoluento 2) Ttk-91 järjestelmä Käskyjen nouto- ja suoritussykli Ttk-91 laitteisto Tiedon sijainti Muistitilan käyttö Ttk-91 konekieli Tiedon osoitus ttk-91:ssä Indeksointi, taulukot, tietueet
Luento 4 (verkkoluento 4) Aliohjelmien toteutus
Luento 4 (verkkoluento 4) Aliohjelmien toteutus Tyypit, Parametrit Aktivaatiotietue (AT) AT-pino, rekursio 1 Aliohjelmatyypit Korkean tason ohjelmointikielen käsitteet aliohjelma, proseduuri Parametrit
Jakso 3 Konekielinen ohjelmointi (TTK-91, KOKSI) Muuttujat Tietorakenteet Kontrolli Optimointi Tarkistukset
Jakso 3 Konekielinen ohjelmointi (TTK-91, KOKSI) Muuttujat Tietorakenteet Kontrolli Optimointi Tarkistukset 1 Tiedon sijainti suoritusaikana Muistissa (=keskusmuisti) iso hidas Rekisterissä pieni nopea
LOAD R1, =2 Sijoitetaan rekisteriin R1 arvo 2. LOAD R1, 100
Tiedonsiirtokäskyt LOAD LOAD-käsky toimii jälkimmäisestä operandista ensimmäiseen. Ensimmäisen operandin pitää olla rekisteri, toinen voi olla rekisteri, vakio tai muistiosoite (myös muuttujat ovat muistiosoitteita).
Tiedon esitysmuodot. Luento 6 (verkkoluento 6) Lukujärjestelmät Kokonaisluvut, liukuluvut Merkit, merkkijonot Äänet, kuvat, muu tieto
Luento 6 (verkkoluento 6) Tiedon esitysmuodot Lukujärjestelmät Kokonaisluvut, liukuluvut Merkit, merkkijonot Äänet, kuvat, muu tieto Ohjelman esitysmuoto Rakenteellinen tieto 1 Tiedon tyypit Kommunikointi
Jakso 3 Konekielinen ohjelmointi (TTK-91, KOKSI)
Jakso 3 Konekielinen ohjelmointi (TTK-91, KOKSI) Muuttujat Tietorakenteet Kontrolli Optimointi Tarkistukset 1 Tiedon sijainti suoritusaikana Muistissa (=keskusmuisti) iso hidas Rekisterissä pieni nopea
Jakso 3 Konekielinen ohjelmointi (TTK-91, KOKSI)
Jakso 3 Konekielinen ohjelmointi (TTK-91, KOKSI) Muuttujat Tietorakenteet Kontrolli Optimointi Tarkistukset 1 Tiedon sijainti suoritusaikana Muistissa (=keskusmuisti) iso hidas Rekisterissä pieni nopea
Tiedon sijainti suoritusaikana (3) Luento 3 Konekielinen ohjelmointi (TTK-91, KOKSI) Miten tietoon viitataan? (4)
Luento 3 Konekielinen ohjelmointi (TTK-91, KOKSI) Muuttujat Tietorakenteet Kontrolli Optimointi Tarkistukset 1 Tiedon sijainti suoritusaikana (3) Muistissa (=keskusmuistissa) iso hidas Esim. 10 ns data-alueella
Luento 3 Konekielinen ohjelmointi (TTK-91, KOKSI)
Luento 3 Konekielinen ohjelmointi (TTK-91, KOKSI) Muuttujat Tietorakenteet Kontrolli Optimointi Tarkistukset 1 Tiedon sijainti suoritusaikana (3) Muistissa (=keskusmuistissa) iso hidas Rekisterissä pieni
Luento 3 Konekielinen ohjelmointi (TTK-91, KOKSI) Muuttujat Tietorakenteet Kontrolli Optimointi Tarkistukset
Luento 3 Konekielinen ohjelmointi (TTK-91, KOKSI) Muuttujat Tietorakenteet Kontrolli Optimointi Tarkistukset 1 Tiedon sijainti suoritusaikana (3) Muistissa (=keskusmuistissa) iso hidas Rekisterissä pieni
Luento 3 Konekielinen ohjelmointi (TTK-91, KOKSI)
Luento 3 Konekielinen ohjelmointi (TTK-91, KOKSI) Muuttujat Tietorakenteet Kontrolli Optimointi Tarkistukset 1 Tiedon sijainti suoritusaikana (3) Muistissa (=keskusmuistissa) iso hidas Esim. 10 ns data-alueella
Luento 3 Konekielinen ohjelmointi (TTK-91, KOKSI) Muuttujat Tietorakenteet Kontrolli Optimointi Tarkistukset
Luento 3 Konekielinen ohjelmointi (TTK-91, KOKSI) Muuttujat Tietorakenteet Kontrolli Optimointi Tarkistukset 1 Tiedon sijainti suoritusaikana (3) Muistissa (=keskusmuistissa) iso hidas Rekisterissä pieni
Aihepiiri Tietokoneen toiminta (Computer Organization I)
581305-6 toiminta (Computer Organization I) Liisa Marttinen Helsingin yliopisto Tietojenkäsittelytieteen laitos Kevät 2003 Aihepiiri Sovellukset Samanaikaisuus Teknologia Ohjelmointikielet toiminta: konekieli
Luento 2 TTK-91 tietokone ja sen KOKSI simulaattori
Luento 2 TTK-91 tietokone ja sen KOKSI simulaattori Miksi TTK-91? TTK-91 rakenne ja käskykanta-arkkitehtuuri Mikä on simulaattori? Miten TTK-91 ohjelmia suoritetaan simulaattorissa? 1 Miksi konekieltä?
Jakso 10 Ohjelman suoritus järjestelmässä
Jakso 10 Ohjelman suoritus järjestelmässä Käännös Linkitys Dynaaminen linkitys Lataus 1 Käännös lausekielestä Linkitys muiden ja kirjastomoduulien kanssa Lataus muistiin prosessia varten Lausekielestä
Luento 3 Konekielinen ohjelmointi (TTK-91, KOKSI)
Luento 3 Konekielinen ohjelmointi (TTK-91, KOKSI) Muuttujat Tietorakenteet Kontrolli Optimointi Tarkistukset 1 Tiedon sijainti suoritusaikana (3) Muistissa (=keskusmuistissa) iso hidas data-alueella vai
11/20: Konepelti auki
Ohjelmointi 1 / syksy 2007 11/20: Konepelti auki Paavo Nieminen nieminen@jyu.fi Tietotekniikan laitos Informaatioteknologian tiedekunta Jyväskylän yliopisto Ohjelmointi 1 / syksy 2007 p.1/11 Tämän luennon
Oppimistavoitteet kurssilla Tietokoneen toiminta
Oppimistavoitteet kurssilla Tietokoneen toiminta (Oppimistavoitteita tullaan muokkaamaan keväällä 2007 opiskelijoilta jo saatujen kommenttien pohjalta. Lisää kommentteja ja mielipiteitä oppimistavoitteiden
Tietokoneen toiminta (Computer Organization I)
581305-6 toiminta (Computer Organization I) Teemu Kerola Helsingin yliopisto Tietojenkäsittelytieteen laitos Kesä 2002 Avoin yliopisto 1 Aihepiiri Sovellukset Teknologia Samanaikaisuus Ohjelmointikielet
Luento 3 Konekielinen ohjelmointi (TTK-91, KOKSI) Muuttujat Tietorakenteet Kontrolli Optimointi Tarkistukset
Luento 3 Konekielinen ohjelmointi (TTK-91, KOKSI) Muuttujat Tietorakenteet Kontrolli Optimointi Tarkistukset 1 Tiedon sijainti suoritusaikana (3) Muistissa (=keskusmuistissa) iso hidas Esim. 10 ns data-alueella
Luento 12 Yhteenveto
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
Luento 12 Yhteenveto
Luento 12 Yhteenveto Keskeiset asiat Mitä hyötyä tästä on? Mitä seuraavaksi? Kurssit? Asiat? Tavoitteet (4) Ymmärtää tietokonejärjestelmän keskeiset piirteet sillä suoritettavan ohjelman näkökulmasta Miten
Ongelma(t): Miten mikro-ohjelmoitavaa tietokonetta voisi ohjelmoida kirjoittamatta binääristä (mikro)koodia? Voisiko samalla algoritmin esitystavalla
Ongelma(t): Miten mikro-ohjelmoitavaa tietokonetta voisi ohjelmoida kirjoittamatta binääristä (mikro)koodia? Voisiko samalla algoritmin esitystavalla ohjelmoida useita komponenteiltaan ja rakenteeltaan
Tietokoneen toiminta (Computer Organization I)
581305-6 toiminta (Computer Organization I) Tiina Niklander Helsingin yliopisto Tietojenkäsittelytieteen laitos Kalvot: Teemu Kerola 1 Aihepiiri Sovellukset Teknologia Samanaikaisuus Ohjelmointikielet
Tietokoneen toiminta (Computer Organization I)
581305-6 Tietokoneen toiminta (Computer Organization I) Liisa Marttinen Helsingin yliopisto Tietojenkäsittelytieteen laitos Kevät 2004 1 Aihepiiri Sovellukset Teknologia Samanaikaisuus Ohjelmointikielet
Tietokoneen toiminta (Computer Organization I)
581305-6 Tietokoneen toiminta (Computer Organization I) Liisa Marttinen Helsingin yliopisto Tietojenkäsittelytieteen laitos Kevät 2004 1 Aihepiiri Sovellukset Teknologia Samanaikaisuus Ohjelmointikielet
Tietokoneen toiminta (Computer Organization I)
581305-6 Tietokoneen toiminta (Computer Organization I) Liisa Marttinen Helsingin yliopisto Tietojenkäsittelytieteen laitos Kevät 2002 1 Aihepiiri Sovellukset Teknologia Samanaikaisuus Ohjelmointikielet
Aihepiiri Tietokoneen toiminta (Computer Organization I)
toiminta, K2000 1452002 581305-6 toiminta (Computer Organization I) Liisa Marttinen Helsingin yliopisto Tietojenkäsittelytieteen laitos Kevät 2002 Aihepiiri Sovellukset Samanaikaisuus Teknologia Ohjelmointikielet
Tietokoneen toiminta (Computer Organization I)
581305-6 Tietokoneen toiminta (Computer Organization I) Liisa Marttinen Helsingin yliopisto Tietojenkäsittelytieteen laitos Kevät 2002 1 Aihepiiri Sovellukset Teknologia Samanaikaisuus Ohjelmointikielet
Luento 2 TTK-91 tietokone ja sen KOKSI simulaattori
Luento 2 TTK-91 tietokone ja sen KOKSI simulaattori Miksi TTK-91? TTK-91 rakenne ja käskykanta-arkkitehtuuri Mikä on simulaattori? Miten TTK-91 ohjelmia suoritetaan simulaattorissa? 1 Miksi konekieltä?
Tietokoneen toiminta (Computer Organization I)
581305-6 Tietokoneen toiminta (Computer Organization I) Teemu Kerola Helsingin yliopisto Tietojenkäsittelytieteen laitos Kevät 2003 Muuntokoulutettaville Aihepiiri Sovellukset Teknologia Samanaikaisuus
Luento 5 (verkkoluento 5) Suoritin ja väylä
Luento 5 (verkkoluento 5) Suoritin ja väylä Käskyjen suoritussykli Suorittimen tilat Poikkeukset ja keskeytykset 1 Suorituksenaikainen suorittimen ja muistin sisältö muisti suoritin konekäskyjen suorituspiirit,
Luento 10 Käännös, linkitys ja lataus
Luento 10 Käännös, linkitys ja lataus Käännös Linkitys Dynaaminen linkitys Lataus 1 Lausekielestä suoritukseen (3) Käännös lausekielestä Linkitys muiden ja kirjastomoduulien kanssa Lataus muistiin prosessia
Luento 12 Yhteenveto
Keskeiset asiat Mitä hyötyä tästä on? Mitä seuraavaksi? Kurssit? Asiat? Luento 12 Yhteenveto Tavoitteet (4) Ymmärtää tietokonejärjestelmän keskeiset piirteet sillä suoritettavan ohjelman näkökulmasta Miten
Luento 2 TTK-91 tietokone ja sen KOKSI simulaattori
Luento 2 TTK-91 tietokone ja sen KOKSI simulaattori Miksi TTK-91? TTK-91 rakenne ja käskykanta-arkkitehtuuri Mikä on simulaattori? Miten TTK-91 ohjelmia suoritetaan simulaattorissa? 1 Miksi konekieltä?
Luento 10 Käännös, linkitys ja lataus. Käännös Linkitys Dynaaminen linkitys Lataus
Luento 10 Käännös, linkitys ja lataus Käännös Linkitys Dynaaminen linkitys Lataus 1 Lausekielestä suoritukseen (3) Käännös lausekielestä Linkitys muiden ja kirjastomoduulien kanssa Lataus muistiin prosessia
Jakso 10 Ohjelman suoritus järjestelmässä. Käännös Linkitys Dynaaminen linkitys Lataus
Jakso 10 Ohjelman suoritus järjestelmässä Käännös Linkitys Dynaaminen linkitys Lataus 1 Lausekielestä suoritukseen Käännös lausekielestä Linkitys muiden ja kirjastomoduulien kanssa Lataus muistiin prosessia
Luento 10 Käännös, linkitys ja lataus
Luento 10 Käännös, linkitys ja lataus Käännös Linkitys Dynaaminen linkitys Lataus 1 Lausekielestä suoritukseen (3) Käännös lausekielestä Linkitys muiden ja kirjastomoduulien kanssa Lataus muistiin prosessia
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 Käännös Linkitys Dynaaminen linkitys Lataus 1 Lausekielestä suoritukseen (3) Käännös lausekielestä Linkitys muiden ja kirjastomoduulien kanssa Lataus muistiin prosessia
Luento 2 TTK-91 tietokone ja sen KOKSI simulaattori. Miksi konekieltä? Tietokone TTK-91. Miksi ei oikeaa konekieltä?
Luento 2 tietokone ja sen KOKSI simulaattori Miksi? rakenne ja käskykanta-arkkitehtuuri Mikä on simulaattori? Miten ohjelmia suoritetaan simulaattorissa? Miksi konekieltä? Koneen toiminnan ymmärtäminen
Jakso 10 Ohjelman suoritus järjestelmässä
Jakso 10 Ohjelman suoritus järjestelmässä Käännös Linkitys Dynaaminen linkitys Lataus 1 Käännö s lausekielestä Linkitys muiden ja kirjastomoduulien kanssa Lataus muistiin prosessi a varten Lausekielestä
Tietokoneen toiminta (Computer Organization I)
581305-6 Tietokoneen toiminta (Computer Organization I) Teemu Kerola Helsingin yliopisto Tietojenkäsittelytieteen laitos Kevät 2003 Muuntokoulutettaville 1 Aihepiiri Sovellukset Teknologia Samanaikaisuus
Luento 2 TTK-91 tietokone ja sen KOKSI simulaattori
Luento 2 TTK-91 tietokone ja sen KOKSI simulaattori Miksi TTK-91? TTK-91 rakenne ja käskykanta-arkkitehtuuri Mikä on simulaattori? Miten TTK-91 ohjelmia suoritetaan simulaattorissa? 1 Miksi konekieltä?
Muistihierarkia Kiintolevyt I/O:n toteutus
Luento 8 (verkkoluento 9) Järjestelmän ulkoinen muisti I/O Muistihierarkia Kiintolevyt I/O:n toteutus 1 Muistihierarkia Ulkoinen muisti (levymuisti) on halvempaa toteuttaa per tavu Ulkoinen muisti on paljon
JAVA-PERUSTEET. JAVA-OHJELMOINTI 3op A274615 JAVAN PERUSTEET LYHYT KERTAUS JAVAN OMINAISUUKSISTA JAVAN OMINAISUUKSIA. Java vs. C++?
JAVA-OHJELMOINTI 3op A274615 JAVAN PERUSTEET LYHYT KERTAUS Teemu Saarelainen teemu.saarelainen@kyamk.fi Lähteet: http://java.sun.com/docs/books/tutorial/index.html Vesterholm, Kyppö: Java-ohjelmointi,
Tiedon sijainti suoritusaikana. Luento 3 Konekielinen ohjelmointi (TTK-91, KOKSI)
Luento 3 Konekielinen ohjelmointi (TTK-91, KOKSI) Muuttujat Tietorakenteet Kontrolli Optimointi Tarkistukset Tiedon sijainti suoritusaikana Muistissa (=keskusmuistissa) iso Esim. 256 MB, tai 64 milj. 32
Tietokoneen toiminta, K Tavoitteet (4)
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
Luento 12 Yhteenveto. Keskeiset asiat Mitä hyötyä tästä on? Mitä seuraavaksi? Kurssit? Asiat? Teemu Kerola, K2000
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
Tietokoneen toiminta (Computer Organization I)
581305-6 Tietokoneen toiminta (Computer Organization I) Päivi Kuuppelomäki Helsingin yliopisto Tietojenkäsittelytieteen laitos Kevät 2002 1 Aihepiiri Sovellukset Teknologia Samanaikaisuus Ohjelmointikielet
Tietokoneen toiminta (Computer Organization I) Aihepiiri. Mitä hyötyä tästä on? (3) Tavoitteet. Kurssien välisiä riippuvuuksia
58135-6 toiminta (Computer Organization I) Päivi Kuuppelomäki Helsingin yliopisto Tietojenkäsittelytieteen laitos Kevät 22 Aihepiiri Sovellukset Samanaikaisuus Teknologia Ohjelmointikielet toiminta: konekieli
Jakso 2 TTK-91 -tietokone ja sen KOKSI -simulaattori
Jakso 2 TTK-91 -tietokone ja sen KOKSI -simulaattori Miksi TTK-91? TTK-91:n rakenne ja käskykanta-arkkitehtuuri KOKSI-simulaattori 1 Miksi konekieltä? Koneen toiminnan ymmärtäminen Oman ohjelman toiminnan
Tietokoneen toiminta (Computer Organization I)
581305-6 Tietokoneen toiminta (Computer Organization I) Päivi Kuuppelomäki Helsingin yliopisto Tietojenkäsittelytieteen laitos Kevät 2002 1 Aihepiiri Sovellukset Teknologia Samanaikaisuus Ohjelmointikielet
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 1 Lausekielestä suoritukseen (3) Käännös lausekielestä Linkitys muiden ja kirjastomoduulien kanssa Lataus muistiin prosessia
Luento 12 Yhteenveto. 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? 1 Tavoitteet Ymmärtää tietokonejärjestelmän keskeiset piirteet sillä suoritettavan ohjelman näkökulmasta Miten
Tietokoneen toiminta Keskeiset asiat Mitä hyötyä tästä on? Mitä seuraavaksi? Kurssit? Asiat? Teemu Kerola, Copyright 2010
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
Tietokoneen toiminta (Computer Organization I)
581305-6 Tietokoneen toiminta (Computer Organization I) Liisa Marttinen Helsingin yliopisto Tietojenkäsittelytieteen laitos Kesä 2000 1 Aihepiiri Sovellukset Teknologia Samanaikaisuus Ohjelmointikielet