Luku 13 Kertausta Kurssin tavoitteet Miksi Keskeiset asiat
- Slides: 34
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, 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 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 2005 4
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 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 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 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 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 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 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 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 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 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. . . 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 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 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 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 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 = 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 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Ä 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 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 -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 (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 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 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 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 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 Liisa Marttinen kevät 2005 30
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 lopuke 3/2/2021 Liisa Marttinen kevät 2005 32
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 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
- Virhevaihtelu
- Tavoitteet päiväkoti harjoittelu
- Yityksen tavoitteet ja päämäärät
- Merkantilismi
- Hoitotyön keskeiset käsitteet
- Reljef na karti
- Neliöjuuri laskeminen
- Rahoitustulos
- 2000-luvun pop musiikki
- Topografski znakovi 8 razred
- Tss luku
- 60 luku hiukset
- 1950-luku muoti
- Neperin luku derivaatta
- Ruokaetikka kaava
- Eloonjäämiskuvaaja
- Miksi karboksyylihapot ovat happoja
- Pienoisevankeliumi
- Ionisidos
- Radioaaltojen vaikutus ihmiseen
- Lajimonimuotoisuus
- 5x miksi esimerkki
- Miksi lukioon
- Miksi opiskella teologiaa
- Good laboratory practices
- Biosentrismi
- Kineettinen kaasuteoria
- Miksi kristillinen oppi muotoutui
- Kenelle ehkäisylaastari sopii
- Miksi tänään liputetaan
- Miksi psykologia on jakautunut eri osa-alueisiin
- Miksi jalokaasuilla on alhainen sulamispiste