Esittely latautuu. Ole hyvä ja odota

Esittely latautuu. Ole hyvä ja odota

Kurssin tavoitteet Miksi? Keskeiset asiat

Samankaltaiset esitykset


Esitys aiheesta: "Kurssin tavoitteet Miksi? Keskeiset asiat"— Esityksen transkriptio:

1 Kurssin tavoitteet Miksi? Keskeiset asiat
Luku 13 Kertausta Kurssin tavoitteet Miksi? Keskeiset asiat 16/01/2019

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

3 Miksi tarpeen? Mitä hyötyä tästä on?
suoritusnopeus ja koodin viemä tila 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. tehokkaan kääntäjän tekeminen koodin optimointi käsin tehokkaammaksi ja tiiviimmäksi konetasoisen toiminnan ymmärtäminen alemman tason ymmärtäminen auttaa ymmärtämään ylemmän tason asioita 16/01/2019 Liisa Marttinen kevät 2005

4 Tietokonejärjestelmä
Keskusyksikkö (CPU) prosessori eli suoritin keskusmuisti väylät ohjaimet oheislaitteet

5 Suuret nopeuserot tiedonsaannissa
keskusyksikön omat rekisterit (5 ns) välimuistirekisterit (10 ns) keskusmuisti ( ns) levy (10-50 ms), CD-levy (300 ms) magneettinauha verkon kautta toiselta koneelta ihmisen antama syöte 1 s – 10 s 16/01/2019 Liisa Marttinen kevät 2005

6 TTK-91-tietokone Keskusmuisti CPU Muistinhallinta-yksikkö
(myös välimuisti) Ohjelmat + niiden data Käyttöjärjestelmä Kirjastorutiinit Rekisterit Aritmeettis- looginen yksikkö (ALU) Ohjausyksikkö VÄYLÄT 16/01/2019 Oheislaitteiden ohjaimet Liisa Marttinen kevät 2005

7 TTK-91:n keskusyksikkö Prosessori (CPU) Rekisterit
Väy lät Rekisterit R0 R1 R2 R3 R4 R5 SP FP KESKUS-MUISTI väylät MMU LIMIT BASE MAR MBR CONTROL UNIT TR IR PC SR IN1 IN2 OUT ALU Prosessori (CPU) OHJAIMET 16/01/2019 Liisa Marttinen kevät 2005

8 Symbolisen konekielen osoitusmoodit
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 16/01/2019 Liisa Marttinen kevät 2005

9 Symbolinen konekieli vs. konekieli
LOAD R2, 22 arvo muistipaikasta 22 2 1 22 ei indeksointia 16/01/2019 Liisa Marttinen kevät 2005

10 Aritmeettinen lause tilan varaus koodi: LOAD R1, =46 tai LOAD R1, =5
A DC B DC C DC int a, b, c=5; ... b=46; a=5*b + c; .... koodi: LOAD R1, =46 STORE R1, B ... LOAD R1, B MUL R1, =5 LOAD R2, C ADD R1, R2 STORE R1 tai LOAD R1, =5 MUL R1, B ADD R1, C STORE R1, A 16/01/2019 Liisa Marttinen kevät 2005

11 Case-lause LOAD R1, Lkm Vrt4 COMP R1,=4 JNEQ Vrt0 LOAD R2, =11
STORE R2, X JUMP Cont Vrt0 COMP R1, =0 JNEQ Def JUMP Cont Def LOAD R2,=0 Cont NOP Case-lause Switch (lkm) { case 4: x = 11; break; case 0: break; default: x = 0; } Onko järjestyksellä väliä? 16/01/2019 Liisa Marttinen kevät 2005

12 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 Pinon käyttöä harjoitellaan runsaasti! Kekoa käytetään esim. Javan NEW-metodilla luotujen rakenteiden tallettamiseen pino keko Dynaaminen alue: pino, keko Kekoa ei kurssilla käytetä! 16/01/2019 Liisa Marttinen kevät 2005

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

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

15 Ohjelman osoiteavaruuden käyttö aliohjelmaa Alioh1 suoritettaessa:
Paaohj Alioh Alioh2 ... Aliohn... Apu, Bee, K X,Y, P1,P2 Isotaulu Pääohjelman ja aliohjelmien koodit globaalit, kaikkialle näkyvät muuttujat Bee ja K sekä taulukko Apu Aliohjelman omat paikalliset muuttujat X ja Y sekä parametrit P1 ja P2 vapaa muistitila 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!) SP HP 214 316 516 20999 21999 16/01/2019 Liisa Marttinen kevät 2005

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

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

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

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

20 Esimerkki koodauksesta
43.75 = binäärilukuna = * 2^5 = * 2^( ) = ==> bittijonoksi … 0 S E: 8 b M: 23 b 16/01/2019 Liisa Marttinen kevät 2005

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

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

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

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

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

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

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

28 Laiteohjain (I/O Moduuli)
suoritin käyttäjäprosessi Muisti laiteajuri KJ-prosessi, (tai aliohjelma?) väylä data c/s laiteohjain laite laite laiteohjainprosessi (device controller, device controller process)

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

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

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

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

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

34 Java-ohjelmien suoritus (Teemu Kerolan luennoista 2000)
k = i+j; Java-ohjelma Java-ohjelmien suoritus (Teemu Kerolan luennoista 2000) Java- käännös iload i iload j iadd istore k Java byte-koodi (JIT) käännös Pentium II -suoritin lataus- moduuli data natiiviympäristö Java- suoritin iload i iload j iadd istore k instr data Java-virtuaalikone Java- tulkki Pentium II -suoritin SW HW SW HW SW HW ( esimerkiksi) 16/01/2019 Liisa Marttinen kevät 2005


Lataa ppt "Kurssin tavoitteet Miksi? Keskeiset asiat"

Samankaltaiset esitykset


Iklan oleh Google