Tietokoneen toiminta 2 ov 4 op Liisa Marttinen

  • Slides: 28
Download presentation
Tietokoneen toiminta (2 ov = 4 op) Liisa Marttinen liisa. marttinen@cs. helsinki. fi Avoin

Tietokoneen toiminta (2 ov = 4 op) Liisa Marttinen liisa. marttinen@cs. helsinki. fi Avoin yliopisto, kesä 2005 Kurssin kotisivu: http: //www. cs. helsinki. fi/u/marttine/tito/avoinks 05/ kotisivu. html 10/26/2020 Liisa Marttinen 1

Kurssin oppimistavoitteet: n käsitteellisellä tasolla ymmärtää, miten tietokone toimii n n suoritin, keskusmuisti, välimuisti,

Kurssin oppimistavoitteet: n käsitteellisellä tasolla ymmärtää, miten tietokone toimii n n suoritin, keskusmuisti, välimuisti, ohjain, väylät, oheislaitteet miten tietokone suorittaa ohjelmia n n ohjelman esitysmuoto ja sijainti tietokoneessa suoritussykli, konekieli usean ohjelman ’samanaikainen’ suoritus käyttöjärjestelmän rooli 10/26/2020 Liisa Marttinen EI SIIS TÄTÄ! 2

Miksi tarpeen? Mitä hyötyä tästä on? n suoritusnopeus ja koodin viemä tila n Tietokone

Miksi tarpeen? Mitä hyötyä tästä on? n suoritusnopeus ja koodin viemä tila n Tietokone osaa suorittaa vain omalla konekielellään esitettyjä konekäskyjä. Suoritusnopeus riippuu näiden käskyjen suorittamisesta, ei suoraan korkean tason kielen (C, Java, C++) esitysmuodosta. n tehokkaan kääntäjän tekeminen n koodin optimointi käsin tehokkaammaksi ja tiiviimmäksi 10/26/2020 Liisa Marttinen 3

Miksi tarpeen? Mitä hyötyä tästä on? (2) n konetasoisen toiminnan ymmärtäminen n alemman tason

Miksi tarpeen? Mitä hyötyä tästä on? (2) n konetasoisen toiminnan ymmärtäminen n alemman tason ymmärtäminen auttaa ymmärtämään ylemmän tason asioita Miksi Javan byte-koodi kannattaisi kääntää? Mitä Java-ohjelmien kääntäminen oikein tarkoittaa? Mitä Java-ohjelmien suorittaminen tarkoittaa? Entä C-ohjelmien? 10/26/2020 Liisa Marttinen 4

Tietokonejärjestelmä Keskusyksikkö (CPU) prosessori eli suoritin keskusmuisti väylät ohjaimet oheislaitteet 10/26/2020 Liisa Marttinen 5

Tietokonejärjestelmä Keskusyksikkö (CPU) prosessori eli suoritin keskusmuisti väylät ohjaimet oheislaitteet 10/26/2020 Liisa Marttinen 5

Kurssin (alustava) sisältö 1. 2. 3. 4. 5. jakso: Johdanto, Tietojärjestelmän rakenne jakso: TTK-91

Kurssin (alustava) sisältö 1. 2. 3. 4. 5. jakso: Johdanto, Tietojärjestelmän rakenne jakso: TTK-91 -tietokone jakso: TTK-91 -käskykanta jakso: Konekielinen ohjelmointi. jakso: Aliohjelmien toteutus konekielen tasolla 6. jakso: CPU ja väylä 7. jakso: Tiedon esitysmuodot 10/26/2020 Liisa Marttinen 6

Kurssin (alustava) sisältö jatkuu: 8. jakso: Tiedon muuttumattomuus; järjestelmän sisäinen muisti 9. jakso: Ohjelman

Kurssin (alustava) sisältö jatkuu: 8. jakso: Tiedon muuttumattomuus; järjestelmän sisäinen muisti 9. jakso: Ohjelman toteutus järjestelmässä 10. jakso: Ulkoinen muisti, I/O: n toteutus, I/O-laitteet 11. jakso: Käännös, linkitys, lataus 12. jakso: Tulkinta ja emulointi 13. jakso: Kertausta ja yhteenveto 10/26/2020 Liisa Marttinen 7

Erilaisia tietokoneita n n n superlaskimet reitittimet tietokoneverkoissa pöytätietokoneet ja kannettavat tietokoneet kämmentietokoneet puhelimet

Erilaisia tietokoneita n n n superlaskimet reitittimet tietokoneverkoissa pöytätietokoneet ja kannettavat tietokoneet kämmentietokoneet puhelimet upotetut tietokoneet mm. autoissa, pesukoneissa, kameroissa jne. 10/26/2020 Liisa Marttinen 8

Yhä nopeampia, yhä tehokkaampia! Tehostumiskerroin 1000 500 muistin pakkaustiheys 200 100 prosessorin nopeus 50

Yhä nopeampia, yhä tehokkaampia! Tehostumiskerroin 1000 500 muistin pakkaustiheys 200 100 prosessorin nopeus 50 20 10 muistin saantiaika 5 2 1980 10/26/2020 1985 1990 1995 Liisa Marttinen 2000 Aika 9

Keskusyksikkö, keskusmuisti, ohjaimet keskusmuisti prosessori eli suoritin Ohjelmat + data ohjelman suoritus käyttöjärjestelmä tiedonsiirtoa

Keskusyksikkö, keskusmuisti, ohjaimet keskusmuisti prosessori eli suoritin Ohjelmat + data ohjelman suoritus käyttöjärjestelmä tiedonsiirtoa väylät ohjaimet oheislaitteet 10/26/2020 Liisa Marttinen suuria määriä dataa 10

Suuret nopeuserot tiedonsaannissa n n n n keskusyksikön omat rekisterit (5 ns) välimuistirekisterit (10

Suuret nopeuserot tiedonsaannissa n n n n keskusyksikön omat rekisterit (5 ns) välimuistirekisterit (10 ns) keskusmuisti (50 -100 ns) levy (10 -50 ms), CD-levy (300 ms) magneettinauha 1 s– 10 s verkon kautta toiselta koneelta ihmisen antama syöte 10/26/2020 Liisa Marttinen 11

Nopeuserojen vaikutus (1) n n n 1 s = 1000 ms 1 ms =

Nopeuserojen vaikutus (1) n n n 1 s = 1000 ms 1 ms = 1000 mikros 1 mikros = 1000 ns => 1 s = 10 **9 ns ihmisen antaman syötteen (~1 s) saaminen kestää noin 200 miljoona kertaa kauemmin kuin tiedonsaanti rekisteristä (~5 ns) ! levyltä haku (~10 ms) noin 2 miljoonaa kertaa pitempään kuin tiedonsaanti rekisteristä 10/26/2020 Liisa Marttinen 12

Nopeuserot ihmisen aikaskaalassa n ravintolan kokin tarvikkeet n n Mitä kokilla vastaa levyltä haku?

Nopeuserot ihmisen aikaskaalassa n ravintolan kokin tarvikkeet n n Mitä kokilla vastaa levyltä haku? n n kädessä (1 s) ~ tieto rekisterissä pöydällä (2 s) ~ tieto välimuistissa jääkaapissa ( 10 s) ~ tieto keskusmuistissa noin 2. 000 sekuntia eli 23 päivää Entä ihmisen antama syöte? n > 200. 000 sekuntia eli 2300 päivää eli yli 6 vuotta 10/26/2020 Liisa Marttinen 13

Nopeuserojen vaikutus n n n prosessori voi suorittaa vain keskusmuistissa olevaa ohjelmaa jos ohjelma

Nopeuserojen vaikutus n n n prosessori voi suorittaa vain keskusmuistissa olevaa ohjelmaa jos ohjelma tarvitsee tietoa levyltä tai käyttäjältä, niin prosessori siirtyy suorittamaan jotain toista ohjelmaa samanaikaisesti suorituksessa voi olla usea ohjelma, mutta yksi prosessori suorittaa vain yhtä kerrallaan 10/26/2020 Liisa Marttinen 14

Suorittimen toteutushierarkia n Konekieliarkkitehtuuri n mitä konekäskyjä kone osaa suorittaa n ADD r 1,

Suorittimen toteutushierarkia n Konekieliarkkitehtuuri n mitä konekäskyjä kone osaa suorittaa n ADD r 1, A A (A+B) B n Moduulit n yhteenlaskin, rekisteri, ALU AB F n Loogiset portit n A F B F= (A+B) AND, NOT, NOR 10/26/2020 Liisa Marttinen 00 1 01 0 10 0 11 0 15

Käskykanta-arkkitehtuuri ISA (Instruction set architecture) n n käskykanta = niiden konekäskyjen joukko, jotka kone

Käskykanta-arkkitehtuuri ISA (Instruction set architecture) n n käskykanta = niiden konekäskyjen joukko, jotka kone osaa suorittaa tyypillisiä konekäskyjä n ADD R 1, 100 STORE R 4, 20 n COMP R 3, R 2 n n arkkitehtuuri = mitä käskyjä, mikä on käskyn rakenne miten osoittaminen hoidetaan? TTK-91: 8 käskykoodi 10/26/2020 3 rekisteri 2 3 muistinoudot indeksirekisteri Liisa Marttinen 16 bittiä osoiteosa 16

Konekieli n n n Suoritin osaa suorittaa vain omalla konekielellään esitettyä ohjelmakoodia! => suoritettavan

Konekieli n n n Suoritin osaa suorittaa vain omalla konekielellään esitettyä ohjelmakoodia! => suoritettavan ohjelman täytyy olla konekielisessä muodossa suoritin on hyvin nopea => ohjelman täytyy olla nopeasti saatavilla => oltava jo valmiina keskusmuistissa n 10/26/2020 levyltä hakeminen on jo liian hidasta! Liisa Marttinen 17

Ohjelma konekielelle n Lausekielellä kirjoitettu ohjelma on joko käännettävä konekielelle n kääntäjä korvaa lausekielen

Ohjelma konekielelle n Lausekielellä kirjoitettu ohjelma on joko käännettävä konekielelle n kääntäjä korvaa lausekielen lauseet konekielen käskyillä, jotka suorittavat halutut toimenpiteet => konekielinen ohjelma, joka talletetaan muistiin suorittamista varten tai ohjelma on tulkittava n 10/26/2020 tulkkiohjelma käy läpi ohjelman lauseita yksi kerrallaan ja generoi lauseen suorittamiseen tarvittavat konekieliset käskyt, jotka heti suoritetaan Liisa Marttinen 18

Kääntäminen Suoritin eli prosessori Keskusmuisti C-kääntäjä (konekielinen ohjelma) suorittaa kääntäjäohjelman käskyjä. Tuloksena on Cohjelma

Kääntäminen Suoritin eli prosessori Keskusmuisti C-kääntäjä (konekielinen ohjelma) suorittaa kääntäjäohjelman käskyjä. Tuloksena on Cohjelma konekielisenä C-ohjelma (dataa kääntäjälle) C-ohjelma konekielisenä 10/26/2020 Liisa Marttinen 19

Käännetyn ohjelman suorittaminen Suoritin eli prosessori suorittaa konekielisen Cohjelman käskyjä. 10/26/2020 Keskusmuisti C-ohjelma konekielisenä

Käännetyn ohjelman suorittaminen Suoritin eli prosessori suorittaa konekielisen Cohjelman käskyjä. 10/26/2020 Keskusmuisti C-ohjelma konekielisenä Liisa Marttinen 20

Ohjelman tulkkaaminen Suoritin eli prosessori suorittaa tulkkiohjelman käskyjä datana tutkittava Cohjelma. Tuloksena on aina

Ohjelman tulkkaaminen Suoritin eli prosessori suorittaa tulkkiohjelman käskyjä datana tutkittava Cohjelma. Tuloksena on aina yhden lauseen konekäskyt, jotka heti suoritetaan Keskusmuisti tulkki (konekielinen ohjelma) tulkin yhdestä lauseesta generoimat konekieliset käskyt C-ohjelma (dataa tulkille) Suoritin vuorottelee tulkin omien käskyjen ja sen generoimien konekäskyjen suorittamista 10/26/2020 Liisa Marttinen 21

Käyttöjärjestelmä ja prosessi n Käyttöjärjestelmä on ohjelma, joka n n valvoo koko tietokonejärjestelmän toimintaa

Käyttöjärjestelmä ja prosessi n Käyttöjärjestelmä on ohjelma, joka n n valvoo koko tietokonejärjestelmän toimintaa jakaa koneen resursseja prosesseille n n n prosessoriaika, muistitila, oheislaitteet, . . toimii käyttöliittymänä laitteistoon Prosessi on suoritettava ohjelma n n työn suoritus käyttöjärjestelmä pitää kirjaa prosessien tiloista 10/26/2020 Liisa Marttinen 22

Prosessin kuvaaja (process control block) n sisältää kirjanpitotiedot prosessista n n mm. prosessin tunniste,

Prosessin kuvaaja (process control block) n sisältää kirjanpitotiedot prosessista n n mm. prosessin tunniste, ohjelmakoodin ja datan sijainti, avoinna olevat tiedostot ja niiden luku- ja kirjoituskohdat tiedot prosessin suoritusympäristöstä (= eri rekisterien arvot), jotta keskeytetty prosessi pystyy jatkamaan samasta tilasta, johon se keskeytettiin 10/26/2020 Liisa Marttinen 23

Moniajojärjestelmä n suorituksessa on monta prosessia n suoritetaan vuorotellen yhtä kerrallaan n suoritetaan samanaikaisesti

Moniajojärjestelmä n suorituksessa on monta prosessia n suoritetaan vuorotellen yhtä kerrallaan n suoritetaan samanaikaisesti useita prosesseja n n joko kutakin tietyn maksimiajan kerrallaan tai vaihdetaan, kun suoritettava prosessi joutuu odottamaan esim. levyltä lukua vain moniprosessorikoneessa käyttöjärjestelmä huolehtii prosessien vuorottamisesta (skeduloinnista) 10/26/2020 Liisa Marttinen 24

Käyttöjärjestelmä n Vaikka suorituksessa on monta prosessia, niin ne eivät saa sotkea toistensa suoritusta

Käyttöjärjestelmä n Vaikka suorituksessa on monta prosessia, niin ne eivät saa sotkea toistensa suoritusta n n kullakin prosessilla omat muistialueet, joita ne saavat käyttää Käyttöjärjestelmä on ohjelma, jolla on erityisoikeuksia n n etuoikeutettuja käskyjä, joita tavalliset ohjelmat eivät saa suorittaa voi viitata kaikkialle muistiin 10/26/2020 Liisa Marttinen 25

Esimerkkikone: TTK-91 n Laitteisto, hardware (HW) n n Käskykanta - konekieliarkkitehtuuri n n suoritin,

Esimerkkikone: TTK-91 n Laitteisto, hardware (HW) n n Käskykanta - konekieliarkkitehtuuri n n suoritin, muisti, väylät, oheislaitteiden liitännät konekäskyt, tiedon esitysmuodot, tietotyypit Symbolinen konekieli n n luettavampi muoto konekielestä ihmisen käyttöön tarkoitettu 10/26/2020 Liisa Marttinen 26

CPU eli suoritin rekisterit aritmeettis-looginen yksikkö ALU MUISTI MMU muistinhallinta yksikkö ohjausyksikkö CPU käyttöjärjestelmä

CPU eli suoritin rekisterit aritmeettis-looginen yksikkö ALU MUISTI MMU muistinhallinta yksikkö ohjausyksikkö CPU käyttöjärjestelmä kirjastorutiinit ohjelma data väylä 10/26/2020 Laiteohjaimet Liisa Marttinen 27

Titokone-simulaattori KOKSI-simulattori n n n ohjelmia, jotka simuloivat hypoteettisen TTK-91 -koneen laitteistoa symbolisen konekielen

Titokone-simulaattori KOKSI-simulattori n n n ohjelmia, jotka simuloivat hypoteettisen TTK-91 -koneen laitteistoa symbolisen konekielen kääntäjä graafinen käyttöliittymä, virheenjäljitysympäristö (debugger) 10/26/2020 Liisa Marttinen 28