Luku 13 Kertausta Kurssin tavoitteet Miksi Keskeiset asiat

  • Slides: 34
Download presentation
Luku 13 Kertausta Kurssin tavoitteet Miksi? Keskeiset asiat 3/2/2021 1

Luku 13 Kertausta Kurssin tavoitteet Miksi? Keskeiset asiat 3/2/2021 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 3/2/2021 ohjelman esitysmuoto ja sijainti tietokoneessa suoritussykli, konekieli usean ohjelman ’samanaikainen’ suoritus käyttöjärjestelmän rooli Liisa Marttinen kevät 2005 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 n n tehokkaan kääntäjän tekeminen koodin optimointi käsin tehokkaammaksi ja tiiviimmäksi konetasoisen toiminnan ymmärtäminen n alemman tason ymmärtäminen auttaa ymmärtämään ylemmän tason asioita 3/2/2021 Liisa Marttinen kevät 2005 3

Tietokonejärjestelmä Keskusyksikkö (CPU) prosessori eli suoritin keskusmuisti väylät ohjaimet oheislaitteet 3/2/2021 Liisa Marttinen kevät

Tietokonejärjestelmä Keskusyksikkö (CPU) prosessori eli suoritin keskusmuisti väylät ohjaimet oheislaitteet 3/2/2021 Liisa Marttinen kevät 2005 4

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 3/2/2021 Liisa Marttinen kevät 2005 5

TTK-91 -tietokone CPU Rekisterit Aritmeettislooginen yksikkö (ALU) Keskusmuisti Muistinhallintayksikkö (myös välimuisti) Ohjausyksikkö Käyttöjärjestelmä Kirjastorutiinit

TTK-91 -tietokone CPU Rekisterit Aritmeettislooginen yksikkö (ALU) Keskusmuisti Muistinhallintayksikkö (myös välimuisti) Ohjausyksikkö Käyttöjärjestelmä Kirjastorutiinit Ohjelmat + niiden data VÄYLÄT 3/2/2021 Oheislaitteiden ohjaimet Liisa Marttinen kevät 2005 6

TTK-91: n keskusyksikkö Rekisterit väylät V ä y lä t MMU LIMIT BASE MAR

TTK-91: n keskusyksikkö Rekisterit väylät V ä y lä t MMU LIMIT BASE MAR MBR R 0 R 1 R 2 R 3 R 4 R 5 SP FP KESKUSMUISTI CONTROL UNIT TR IR PC SR IN 1 IN 2 ALU OUT Prosessori (CPU) OHJAIMET 3/2/2021 Liisa Marttinen kevät 2005 7

Symbolisen konekielen osoitusmoodit n n n n suora muistiosoitus suora rekisteriosoitus välitön operandi epäsuora

Symbolisen konekielen osoitusmoodit n n n n suora muistiosoitus suora rekisteriosoitus välitön operandi epäsuora muistiosoitus epäsuora rekisteriosoitus indeksoitu suora muistiosoitus indeksoitu välitön osoitus indeksoitu epäsuora muistiosoitus 3/2/2021 Liisa Marttinen kevät 2005 8

Symbolinen konekieli vs. konekieli arvo muistipaikasta 22 LOAD R 2, 22 2 2 1

Symbolinen konekieli vs. konekieli arvo muistipaikasta 22 LOAD R 2, 22 2 2 1 0 22 ei indeksointia 3/2/2021 Liisa Marttinen kevät 2005 9

Aritmeettinen lause tilan varaus int a, b, c=5; . . . A B C

Aritmeettinen lause tilan varaus int a, b, c=5; . . . A B C DC DC DC 0 0 5 koodi: b=46; . . a=5*b + c; . . 3/2/2021 LOAD STORE. . . LOAD MUL LOAD ADD STORE R 1, =46 R 1, B R 1, =5 R 2, C R 1, R 2 R 1 Liisa Marttinen kevät 2005 tai LOAD R 1, =5 MUL R 1, B ADD R 1, C STORE R 1, A 10

LOAD R 1, Lkm Case-lause Vrt 4 COMP R 1, =4 JNEQ Vrt 0

LOAD R 1, Lkm Case-lause Vrt 4 COMP R 1, =4 JNEQ Vrt 0 LOAD R 2, =11 STORE R 2, X JUMP Cont Vrt 0 COMP R 1, =0 JNEQ Def JUMP Cont Def LOAD R 2, =0 STORE R 2, X Cont NOP Switch (lkm) { case 4: x = 11; break; case 0: break; default: x = 0; break; } Onko järjestyksellä väliä? 3/2/2021 Liisa Marttinen kevät 2005 11

Muistin varaus ohjelmalle pino käytössä mm. aliohjelmakutsuissa: - parametrien välitys – aliohjelman omat lokaalit

Muistin varaus ohjelmalle pino käytössä mm. aliohjelmakutsuissa: - parametrien välitys – aliohjelman omat lokaalit tilavaraukset Ohjelman konekieliset käskyt staattinen alue Ohjelman globaaleille muuttujille varattu tila pino keko Dynaaminen alue: pino, keko Pinon käyttöä harjoitellaan runsaasti! Kekoa käytetään esim. Javan NEW-metodilla luotujen rakenteiden tallettamiseen Kekoa ei kurssilla käytetä! 3/2/2021 Liisa Marttinen kevät 2005 12

Yhden ohjelman muistitilan käyttö TTK 91: ssä ohjelmakoodi globaalit muuttujat ja tietorakenteet BASE ohjelman

Yhden ohjelman muistitilan käyttö TTK 91: ssä ohjelmakoodi globaalit muuttujat ja tietorakenteet BASE ohjelman LIMIT P muistitila SP pino aliohjelmien toteuttamista varten sekä tilat paikallisille muuttujille vapaa alue HP Keskusmuisti 3/2/2021 Keko dynaamisesti varattavia muistialueita varten (esim. Java ’new’). TTK 91: ssä ei ole toteutettu kekoa! Liisa Marttinen kevät 2005 13

Aktivointitietue n aliohjelman toteutusmuoto n n (TTK-91) funktion paluuarvot kaikkien parametrien arvot paluuosoite kutsujan

Aktivointitietue n aliohjelman toteutusmuoto n n (TTK-91) funktion paluuarvot kaikkien parametrien arvot paluuosoite kutsujan aktivointitietueen osoitin (vanha FP) n n n aktivointitietueen osoitin FP kutsuhetkellä paikalliset muuttujat talteen laitettuja rekistereiden arvoja 3/2/2021 Liisa Marttinen kevät 2005 Ohjelmakoodit ja globaalit muuttujat paluuarvo(t) parametri x parametri y vanha PC vanha FP paikall. m a paikall. m b vanha rek. arvo 14

0 Ohjelman osoiteavaruuden käyttö aliohjelmaa Alioh 1 suoritettaessa: Paaohj. . . Alioh 1. .

0 Ohjelman osoiteavaruuden käyttö aliohjelmaa Alioh 1 suoritettaessa: Paaohj. . . Alioh 1. . . Alioh 2. . . Pääohjelman ja aliohjelmien koodit . . . . Aliohn. . . 214 316 516 Apu, Bee, K X, Y, P 1, P 2 Aliohjelman omat paikalliset muuttujat X ja Y sekä parametrit P 1 ja P 2 vapaa muistitila SP 20999 HP globaalit, kaikkialle näkyvät muuttujat Bee ja K sekä taulukko Apu Isotaulu Aliohjelman suoritusaikana varaama suuri taulukko Isotaulu[0: 9999]. Käytössä myös aliohjelman suorituksen jälkeen, kunnes erikseen vapautetaan (’free’). (Ei ole toteutettu TTK-91: een!) 21999 3/2/2021 Liisa Marttinen kevät 2005 15

Nouto- ja suoritussykli Aloitus Hae PC: n osoittama käsky Käskyn suoritus noutosykli suoritussykli Lopetus

Nouto- ja suoritussykli Aloitus Hae PC: n osoittama käsky Käskyn suoritus noutosykli suoritussykli Lopetus Käskyn suoritus voi muuttaa systeemin tilaa - muuttaa rekistereiden arvoja - muuttaa muistipaikkojen arvoja - muuttaa laitteiden tilaa 3/2/2021 Liisa Marttinen kevät 2005 16

sisäiset väylät rekisterit MMU LIMIT BASE PC MAR MBR ’ADD’ CONTROL UNIT ALU TR

sisäiset väylät rekisterit MMU LIMIT BASE PC MAR MBR ’ADD’ CONTROL UNIT ALU TR IR PC SR V ä y lä t KESKUSMUISTI ohjelma: käsky ’ADD’ +1 Prosessori (CPU) Käskyn nouto 3/2/2021 Liisa Marttinen kevät 2005 17

Poikkeusten ja keskeytysten käsittely tilarekisteri SR tarkastetaan aina ennen seuraavan käskyn noutoa n n

Poikkeusten ja keskeytysten käsittely tilarekisteri SR tarkastetaan aina ennen seuraavan käskyn noutoa n n n käskyn suorituksen aiheuttama poikkeustilanne käskyn aiheuttama plvelupyyntö keskeytyspyyntö prosessorin ulkopuolelta n n I/O-toiminnan päättyminen keskeytyksen havaittuaan prosessori siirtyy suorittamaan käyttöjärjestelmän koodia (keskeytyskäsittely) n jos ei aihetta jatkotoimiin => takaisin suorittamaan ohjelman koodia 18

Suorittimen tilan muuttuminen n SVC, INT Käyttäjätilasta => etuoikeutettuun n n user keskeytys tai

Suorittimen tilan muuttuminen n SVC, INT Käyttäjätilasta => etuoikeutettuun n n user keskeytys tai SVC keskeytyskäsittelijä päättää, onko tilanvaihto tarpeen kernel IRET Etuoikeutetusta => käyttäjätilaan n n IRET-käsky palataan suorittamaan joko samaa ohjelmaa tai sen suoritus keskeytyy, jolloin jatketaan jonkin toisen käyttäjänohjelman suorittamista 3/2/2021 Liisa Marttinen kevät 2005 19

Esimerkki koodauksesta 43. 75 = 101011. 11 binäärilukuna = 1. 0101111 * 2^5 =

Esimerkki koodauksesta 43. 75 = 101011. 11 binäärilukuna = 1. 0101111 * 2^5 = 1. 0101111 * 2^(132 -127) 132 = 10000100 ==> bittijonoksi 0 10000100 01011110000… 0 S E: 8 b M: 23 b n 3/2/2021 Liisa Marttinen kevät 2005 20

Virheen korjaava Hamming-koodi A 0 1 1 0 B Luku: 1100 C A A

Virheen korjaava Hamming-koodi A 0 1 1 0 B Luku: 1100 C A A C 0 1 C 0 0 1 1 1 0 0 B B Tarkistusbitit Bitti muuttunut lisättynä Kukin databitti kuuluu erilaisiin pariteettijoukkoihin. Koska on 4 databittiä, tarvitaan 3 pariteettibittiä. Virheen havainneet pariteettijoukot pystyvät korjaamaan virheen. Liisa Marttinen kevät 2005 3/2/2021 21

Käyttäjä Sovellusohjelmat Komentotulkki Varusohjelmat PALVELUPYYNNÖT PROSESSIEN HALLINTA RESURSSIEN JAKELU SUOJAUS TIEDOSTOJÄRJESTELMÄ MUISTINHALLINTA lohkot SIIRRÄNTÄJÄRJESTELMÄ

Käyttäjä Sovellusohjelmat Komentotulkki Varusohjelmat PALVELUPYYNNÖT PROSESSIEN HALLINTA RESURSSIEN JAKELU SUOJAUS TIEDOSTOJÄRJESTELMÄ MUISTINHALLINTA lohkot SIIRRÄNTÄJÄRJESTELMÄ laiteajurit Laiteohjaimet ja laitteisto 3/2/2021 Liisa Marttinen kevät 2005 22

Initiated 1. READY to Run 2. 5. 3. WAITING RUNNING 4. 6. Prosessin tilasiirtymäkaavio

Initiated 1. READY to Run 2. 5. 3. WAITING RUNNING 4. 6. Prosessin tilasiirtymäkaavio Terminated 3/2/2021 Liisa Marttinen kevät 2005 23

Muistihierarkia Prosessori muutama ns rekisterit välimuisti 50 -100 ns Keskusmuisti koodi- ja data-alueet 10

Muistihierarkia Prosessori muutama ns rekisterit välimuisti 50 -100 ns Keskusmuisti koodi- ja data-alueet 10 -20 ns lohkopuskuri 3/2/2021 Liisa Marttinen kevät 2005 10 ms levy 24

Virtuaalimuisti Kulloinkin käytössä olevat tiedot Keskusmuistissa osa prosessin tiedoista väylä Levyllä prosessin koko muistialue

Virtuaalimuisti Kulloinkin käytössä olevat tiedot Keskusmuistissa osa prosessin tiedoista väylä Levyllä prosessin koko muistialue (data + koodi + pino + keko) 3/2/2021 levyohjain Liisa Marttinen kevät 2005 Levy 25

Kanta- ja rajarekisteriä käyttävä järjestelmä n Osoitemuutos n n prosessin muistialue on yhtenäinen kokonaisuus

Kanta- ja rajarekisteriä käyttävä järjestelmä n Osoitemuutos n n prosessin muistialue on yhtenäinen kokonaisuus osoitemuutos ja suojaus kanta- ja rajarekistereiden avulla (BASE, LIMIT) MMU LIMIT ohjelman osoite BASE MAR 3/2/2021 Liisa Marttinen kevät 2005 fyysinen osoite 26

Levymuistin saantiaika n n = tiedon hakuun kuluva aika mekaaninen siirto: saantiaika = keskim

Levymuistin saantiaika n n = tiedon hakuun kuluva aika mekaaninen siirto: saantiaika = keskim 6 ms, n n n min 2, max 15 ms hakuvarren siirtoaika + keskim. puolen kierroksen aika, pyörähdysaika + jos 3600 rpm=> 8. 33 ms lohkon /lohkojen lukemiseen kuluva aika yhden tai useamman sektorin tietomäärän siirtäminen: pyörähdysaika/sektorien lkm uralla x luettavien sektorien määrä (esim. 0. 42 ms) 3/2/2021 Liisa Marttinen kevät 2005 27

Laiteohjain (I/O Moduuli) Muisti suoritin väylä käyttäjäprosessi laiteajuri KJ-prosessi, (tai aliohjelma? ) data c/s

Laiteohjain (I/O Moduuli) Muisti suoritin väylä käyttäjäprosessi laiteajuri KJ-prosessi, (tai aliohjelma? ) data c/s laiteohjain laiteohjainprosessi (device controller, device controller process) 3/2/2021 Liisa Marttinen kevät 2005 28

n käyttöjärjestelmä: n laiteriippumaton taso tutkii mikä laite on kyseessä prosessin kuvaaja PCB tiedostokuvaajataulu

n käyttöjärjestelmä: n laiteriippumaton taso tutkii mikä laite on kyseessä prosessin kuvaaja PCB tiedostokuvaajataulu 0 1 2 3 4. . . käytettävä laiteajuri; lohkon koko laitekuvaajat avoimet tiedostot -taulu 3/2/2021 nimi, laitenumero =‘levynro’ uid, gid rwx-bitit r/w-positio lohkonumerot …. Liisa Marttinen kevät 2005 29

Moduuli 1 Moduuli 2 Käännös Objektimoduuli Linkitys Moduuli 3 Käännös Objektimoduuli Kirjastomoduuli Ajomoduuli 3/2/2021

Moduuli 1 Moduuli 2 Käännös Objektimoduuli Linkitys Moduuli 3 Käännös Objektimoduuli Kirjastomoduuli Ajomoduuli 3/2/2021 Liisa Marttinen kevät 2005 30

Symboli tyyppi arvo uudelleensijoitustietoa (2, 3) (0, 4, 6) s i Taas data viite

Symboli tyyppi arvo uudelleensijoitustietoa (2, 3) (0, 4, 6) s i Taas data viite 10 11 0 HALT vakio 11 OPER 2: ADD Rj 1 M 1 Ri ADDR 0 10 00 00 …. 8: JLES 00 3/2/2021 00 Liisa Marttinen kevät 2005 31

Moduulin otsake EXPORT-hakemisto IMPORT-hakemisto Kääntäjän tuottaman objektimoduulin osat Uudelleensijoitushakemisto Koodi ja alustettu data Moduulin

Moduulin otsake EXPORT-hakemisto IMPORT-hakemisto Kääntäjän tuottaman objektimoduulin osat Uudelleensijoitushakemisto Koodi ja alustettu data Moduulin lopuke 3/2/2021 Liisa Marttinen kevät 2005 32

Ohjelman talletus muistiin: 0: Keskusmuisti A 300: 301: 400: B 401: C 600: 601:

Ohjelman talletus muistiin: 0: Keskusmuisti A 300: 301: 400: B 401: C 600: 601: 602: 603: 3/2/2021 580: X S T BASE 580 LIMIT 603 Liisa Marttinen kevät 2005 33

Java-ohjelmien suoritus data Java-virtuaalikone ta da (Teemu Kerolan luennoista 2000) k = i+j; Java-ohjelma

Java-ohjelmien suoritus data Java-virtuaalikone ta da (Teemu Kerolan luennoista 2000) k = i+j; Java-ohjelma Javakäännös iload i Java iload j byte-koodi iadd istore k instr Javatulkki SW HW Pentium II -suoritin ( esimerkiksi) 3/2/2021 SW HW iload i iload j iadd istore k Javasuoritin natiiviympäristö Liisa Marttinen kevät 2005 (JIT) käännös latausmoduuli SW HW Pentium II -suoritin 34