Muistihierarkia (4) Luento 9 Järjestelmän ulkoinen muisti. Ohjelman muistiosoitteet (3) Virtuaalimuisti (3) Virtuaalimuistin toteutus (2)

Samankaltaiset tiedostot
Muistihierarkia (4) Luento 9 Järjestelmän ulkoinen muisti. Ohjelman muistiosoitteet (3) Virtuaalimuisti (3) Virtuaalimuistin toteutus.

Luento 9 Järjestelmän ulkoinen muisti

Luento 9 Järjestelmän ulkoinen muisti

Luento 9 Järjestelmän ulkoinen muisti

Luento 9 Järjestelmän ulkoinen muisti

Luento 9 Järjestelmän ulkoinen muisti

Luento 9 Järjestelmän ulkoinen muisti

Luento 9 Järjestelmän ulkoinen muisti

Luento 9 Järjestelmän ulkoinen muisti

Muistihierarkia (4) Luento 9 Järjestelmän ulkoinen muisti

Luento 9 Järjestelmän ulkoinen muisti

Muistihierarkia (4) Luento 9 Järjestelmän ulkoinen muisti

Luento 9 Järjestelmän ulkoinen muisti

Muistihierarkia Kiintolevyt I/O:n toteutus

Muistihierarkia (4) Luento 9 Järjestelmän ulkoinen muisti

Luento 9 Järjestelmän ulkoinen muisti. Muistihierarkia Kiintolevyt Muut pyörivät levyt I/O:n toteutus

Järjestelmän ulkoinen muisti I/O

Luento 9 Järjestelmän ulkoinen muisti

Muistihierarkia (4) Luento 9 Järjestelmän ulkoinen muisti

Luento 9 Järjestelmän ulkoinen muisti. Muistihierarkia Kiintolevyt Muut pyörivät levyt I/O:n toteutus

Muistihierarkia Kiintolevyt I/O:n toteutus

VIRTUAALIMUISTI. Stallings, Luku 8.1

Sisältö VIRTUAALIMUISTI. Stallings, Luku 8.1. Suoritus virtuaalimuistissa. Suoritus virtuaalimuistissa. Puutoskeskeytys. Suoritus virtuaalimuistissa

ltö Luento 6: VIRTUAALIMUISTI Luento 7: Segmentointi Segmentointi ja sivutus yhdistettynä Yhteiskäytöstä Suoritus virtuaalimuistissa

Luento 6: VIRTUAALIMUISTI

Sisältö VIRTUAALIMUISTI. Stallings, Luku 8.1. Suoritus virtuaalimuistissa. Suoritus virtuaalimuistissa. Puutoskeskeytys. Suoritus virtuaalimuistissa

VIRTUAALIMUISTI. Stallings, Luku 8.1

Luento 5: YKSINKERTAINEN SEGMENTOINTI JA SIVUTUS

ltöä (Luennot 5&6) Luento 5: YKSINKERTAINEN SEGMENTOINTI JA SIVUTUS Pikakertaus: : a) b) c) Dyn.. part.: sijoitus Kuva Buddy System: esimerkki

Tietokonejärjestelmä. Tietokoneen rakenne. Ch 1 - Ch 8 [Sta06] Valikoituja paloja. TITO-kurssista. John von Neumann ja EDVAC, 1949.

Sisältöä. Tietokoneen rakenne. Ch 1 - Ch 8 [Sta06] Valikoituja paloja TITO-kurssista. Tietokonejärjestelmä

Osio 2: Luennot 4-7 Muistinhallinta

Ulkoinen muisti ja IIO:n toteutus

Luentokerta 5 Ohjelman toteutus järjestelmässä (prosessi, käyttöjärjestelmä) Järjestelmän ulkoinen muisti

Luento 7: VIRTUAALIMUISTIN SIVUTUS JA SEGMENTOINTI

Kuva 8.7. u Muunnos prosessin sivunumerosta sivutilanumeroksi u Kussakin alkiossa: u Katenoimalla. u MMU:ssa; juuri äsken käytettyjä muunnoksia

Muistinhallinta. Tietokoneen rakenne. Stallings: Ch Heittovaihto vs. Virtuaalimuisti Esim: Pentium. Luento 5-1

MUISTINHALLINTA. Stallings, Luku 7

Tietokoneen toiminta, K Tavoitteet (4)

D B. Levykön rakenne. pyöriviä levyjä ura. lohko. Hakuvarsi. sektori. luku-/kirjoituspää

Suoritin. Luento 5 Suoritin ja väylä. TTK-91 suorittimen rakenne (1) TTK-91 muistin rakenne

Luento 5 Suoritin ja väylä

Tietokoneen toiminta Teemu Kerola, Copyright Muistihierarkia

Käyttöjärjestelmät: Virtuaalimuisti

Jakso 12 Yhteenveto. Keskeiset asiat Teemu Kerola, K2000

Muistihierarkia Kiintolevyt I/O:n toteutus. Käännös, Linkitys Lataus

Luento 5 Suoritin ja väylä

Muistinhallinta. Teemu s Cheesecake. Tietokoneen rakenne

Osio 2: Luennot 4-7 Muistinhallinta YKSINKERTAINEN MUISTINHALLINTA. ltöä YLEISTÄ MUISTINHALLINNASTA. Looginen muisti.

Suoritin. Jakso 5 Suoritin ja väylä. TTK-91 muistin rakenne. TTK-91 suorittimen rakenne

Stallings, Luku 7. KJ-I I S2004 / Tiina Niklander; kalvot Auvo Häkkinen 6-1

Käyttöjärjestelmät II

Luento 1 Tietokonejärjestelmän rakenne

Suoritin. Luento 5 Suoritin ja väylä. TTK-91 muistin rakenne. TTK-91 suorittimen rakenne

Luento 1 Tietokonejärjestelmän rakenne. Järjestelmän eri tasot Laitteiston nopeus

Muistihierarkia. Virtuaalimuisti. Tiedostojärjestelmä. Levymuistin saantiaika. Tietokoneen toiminta Luento 9, Ulkoinen muisti ja I/O 1

Käyttöjärjestelmän rakenne

Jakso 5 Suoritin ja väylä

Osio 2: Luennot 5-8 Muistinhallinta

Luento 5 (verkkoluento 5) Suoritin ja väylä

Luento 1 Tietokonejärjestelmän rakenne

Luento 1 Tietokonejärjestelmän rakenne. Järjestelmän eri tasot Laitteiston nopeus

ltöä rjestelmä Luento 2: LAITTEISTOSTA Tietokonejärjestelm KESKUSYKSIKKÖ Keskusyksikkö Kuva 1.1 KJ-I S2005 / Tiina Niklander & Auvo Häkkinen 2-1

Jakso 5 Suoritin ja väylä

Luento 5: Muistin hallinta Luento 5. Luento 5-1. Luento 5-3. u Continuous memory allocation for partition. Luento 5-5

Käyttöjärjestelmät II

Jakso 5 Suoritin ja väylä. Suorittimen rakenne Väylän rakenne Käskyjen suoritussykli Poikkeukset ja keskeytykset TTK-91:n ja KOKSI:n rakenne

Yleiskuva. Käyttöjärjestelmät II. Tietokonejärjestelm. rjestelmä. KJ ja laitteistopiirteet. KJ ja laitteistopiirteitä.

D B. Levytiedostojen käsittely. Levytiedostojen käsittely

Luento 5 Suoritin ja väylä

Käyttöjärjestelmät. Tietokoneen rakenne. Stallings, Luku 1. KJ-I S2003 / Auvo Häkkinen, CT50A2602 / Leena Ikonen 1-1

Luento 5 Suoritin ja väylä

Suoritin. Luento 5 Suoritin ja väylä. TTK-91 suorittimen rakenne (1) TTK-91 muistin rakenne. Käskyjen nouto- ja suoritussykli (5)

1. Keskusyksikön rakenne

Luento 2: LAITTEISTOSTA

Jakso 8 Ohjelman suoritus järjestelmässä

Jakso 8 Ohjelman suoritus järjestelmässä

Jakso 8 Ohjelman toteutus järjestelmässä

Jakso 8 Ohjelman toteutus järjestelmässä

Tietojenkäsittelyn perusteet 2. Lisää käyttöjärjestelmistä

MUISTINHALLINNAN OHJELMISTO

Prosessi (4) Suorituksessa olevan ohjelman esitysmuoto järjestelmässä. Jakso 8 Ohjelman suoritus järjestelmässä. Prosessin elinkaari (9)

Lähtötiedot tiedot / seuraavaksi? Käyttöjärjestelmät II MUISTINHALLINNAN OHJELMISTO. Looginen vs. fyysinen osoite Perusvalinnat.

Luento 8 Ohjelman toteutus järjestelmässä

Luento 8 Ohjelman toteutus järjestelmässä. Prosessi Prosessin esitysmuoto järjestelmässä Käyttöjärjestelmä KJ-prosessit

Jakso 8 Ohjelman toteutus järjestelmässä. Prosessi Prosessin esitysmuoto järjestelmässä Käyttöjärjestelmä KJ-prosessit

Luento 1 (verkkoluento 1) Tietokonejärjestelmä

KJ-II K2006 / Auvo Häkkinen - Teemu Kerola Tehtävät, staattinen vs. dynaaminen partitiointi, Buddy System sivutus, segmentointi

Sisältöä MUISTINHALLINTA. Stallings, Luku 7. Fyysinen muisti YLEISTÄ MUISTINHALLINNASTA. Looginen muisti. Prosessin rakenne

Sisältö SIIRRÄNTÄ. I/O-laitteiden luokittelua. Yleistä siirrännästä. Siirrännän perustekniikat. Siirtonopeuksia (teoreettisia) Kuva 11.

Prosessi (4) Jakso 8 Ohjelman toteutus järjestelmässä. Prosessi. Prosessin vaihto (4) Prosessin elinkaari (9)

Tietokoneen toiminta, K Tavoitteet (4)

Luento 12 Yhteenveto. Keskeiset asiat Mitä hyötyä tästä on? Mitä seuraavaksi? Kurssit? Asiat? Teemu Kerola, K2000

Luento 1 (verkkoluento 1) Ohjelman sijainti Ohjelman esitysmuoto Laitteiston nopeus

Luento 5 (verkkoluento 5) Suoritin ja väylä

NTÄ. Luento 8: SIIRRÄNT. Osio 3: Siirräntä ja tiedostojärjestelmä. ltö. Yleistä siirrännästä. Siirtonopeuksia (teoreettisia) Kuva 11.1.

Prosessi (4) Luento 8 Ohjelman toteutus järjestelmässä. Prosessi. Prosessin vaihto (4)

Osio 3: Siirräntä ja tiedostojärjestelmä

Työasema- ja palvelinarkkitehtuurit (IC130301) Apumuistit. Kiintolevyt. 5 opintopistettä. Petri Nuutinen

Stallings, Luku 8.1. KJ-I I S2004 / Tiina Niklander; kalvot Auvo Häkkinen 7-1

Transkriptio:

Luento 9 Järjestelmän ulkoinen muisti Muistihierarkia Virtuaalimuisti Kiintot Muut pyörivät t Muistihierarkia (4) ks. Fig. 4-1 [Stal99] Ulkoinen muisti on halvempaa toteuttaa per tavu Ulkoinen muisti on hyvin paljon hitaampaa kuin sisäinen muisti Aika/tila optimointi suuret tietomäärät täytyy (kannattaa) kustannussyistä pitää ulkoisessa muistissa pienet tietomäärät täytyy (kannattaa) tehokkuussyistä pitää sisäisessä muistissa Kaiken viitatun tiedot tulee suoritusaikana olla sisäisessä muistissa! 1 2 Virtuaalimuisti (3) Osa muistihierarkiaa Vastaus ongelmaan miten tehdä suoritusaikaisesta muistista yhtä suuri kuin muisti ja yhtä nopea kuin keskusmuisti? Kaksitasoinen: keskusmuistissa kulloinkin käytössä olevat alueet llä kaikki tiedot kopiointi tarvittaessa Muisti väylä Ohjelman muistiosoitteet (3) Ohjelmassa loogiset nimet muuttujat, oliot, aliohjelmat Ladatussa ohjelmassa loogiset osoitteet staattinen osoitteiden sidonta joskus myös suorat fyysiset osoitteet käytössä KJ:n osat (esim. keskeytyskäsittelijät) Suoritusaikana tarvitaan fyysisiä osoitteita dynaaminen osoitteiden sidonta tehdään joka konekäskyllä jokaiselle tarvittavalle osoitteelle käskyn osoite operandien osoitteet 3 4 Heittovaihto (4) (swapping) Virtuaalimuistin toteutus (2) Pidä kaikki ohjelman muistialueet muistissa Suorituksessa oleva ohjelmalle Ready-to-Run jonossa oleville ohjelmille Miksi? Uusi prosessi? Etsi vapaa yhtenäinen muistialue ja swappaa prosessi sinne Ei tilaa? Siirrä joku (alemman prioriteetin) työ lle Joskus iso ohjelma pitää jakaa pienempiin ajokelpoisiin heittovaihdettaviin osiin Osoitteen muunnos: kanta- ja rajarekisterit Toteutustavat kanta- ja rajarekisterit sivutus (segmentointi ja sivuttava segmentointi) Laitteistotuki MMU - muistinhallintayksikkö rakenne ja toiminta vaihtelee virtuaalimuistin toteutustavan mukaan 5 6 Luento 9, Ulkoinen muisti & I/O 1

Kanta- ja rajarekistereihin perustuva virtuaalimuisti (3) Yhtenäiset keskusmuistialueet yksi tai useampi per prosessi erilliset segmentit (ja siis kanta ja rajarekisterit) koodille, datalle, ttk-91: 1 segmentti I/O-porteille, yhteiselle datalle, MMU:ssa BASE ja LIMIT rekisterit segmentti joko oletusarvoinen tai nimetty konekäskyssä kaikki osoitteet loogisia virtuaaliosoitteita helppo tarkistus ja muunnos Tarkista: Fyysinen osoite: 0 x < LIMIT BASE+x 7 Sivuttava virtuaalimuisti muistissa ja llä (4) Looginen osoiteavaruus jaettu saman kokoisiin sivuihin, esim. 1 KB Fyysinen muisti jaettu saman kokoisiin sivukehyksiin (sivuraameihin) ( frame) Kaikki tieto on llä Käytössä olevat tiedot ovat muistissa muisti 8 Sivuttava virtuaalimuisti (2) Jokainen looginen sivu voidaan sijoittaa mihin tahansa (vapaaseen) sivukehykseen muistissa Sivutaulupitää kirjaa loogisten sivujen sijainnista sekä muistissa että llä muisti vapaita sivukehyksiä sivutaulu 9 Sivuttavan virtuaalimuistin osoitteenmuunnos (7) Loogiset osoitteet sisältävät kaksi kenttää sivun osoite siirtymä sivun sisällä Sivutaulun avulla looginen sivun osoite korvataan fyysisellä sivukehyksen osoitteella Ongelmatilanteet looginen sivun osoite voi olla virheellinen kyseinen looginen sivu ei ole missään sivukehyksessä (vielä) sivunpuutoskeskeytys 01100110 10110000 sivu siirtymä 00111011 10110000 sivukehys siirtymä 10 Sivuttava virtuaalimuistin osoitteenmuunnos (4) sivutaulun osoite virtuaaliosoite 1 30 sivutaulu 0: 0 rwx 65 1: 1 rw 14 1 rw 55 Onko sivu 2:.. muistissa vai ei? Valid entry Access rights Page frame muistiinviittaustyyppi r Tarkista viitteen sallittavuus r {rw} 14 30 fyysinen osoite muistissa Sivunpuutoskeskeytys Lopeta suoritus Aloita luku ltä Anna suoritusvuoro seuraavalle prosessille I/O keskeytys Sivu 1 luettu, päivitä sivutaulu Siirrä alkuper. prosessi ready-to-run jonoon Sivunpuutos (12) sivutaulun osoite Sivu muistissa vai ei: EI OK! virt. osoite 1 30 0: 1: 2: Page 0 rwx 65 10 rw w 14 33 1 rw 55.. Anna suoritusvuoro alkup. prosessille, samaan konekäskyyn viitetyyppi r tarkista oikeudet r {rw} 14 30 fyysinen osoite 11 12 Luento 9, Ulkoinen muisti & I/O 2

Sivuttava virtuaalimuisti (6) Fyysinen muisti jaettu sivuihin prosessin looginen muistiavaruus on fyysisesti talletettu erillisissä samankokoisissa sivuissa Sivutaulu joka prosessilla omansa (PCB:ssä linkki siihen) sijaitsee muistissa voi olla hyvin iso (alkio per virtuaalisen osoiteavaruuden sivu) passivinen osa voi olla llä voi sijaita virtuaalimuistissa... Osoitteen muunnos (3) MMU tekee jokaiselle osoitteelle koodi, data useammin kuin kerran per käsky! Ei voi hakea osoitteenmuutostietoja muistissa olevasta sivutaulusta joka kerta! liian kallis hinta virtuaalimuistista? MMU pitää tallessa eräänlaisessa välimuistissa viimeisimmät osoitteenmuunnokset osoitteenmuunnostaulukko TLB (Translation Lookaside Buffer) 99.9% osumasuhde? 13 14 TLB - osoitteenmuunnostaulukko (3) TLB osuma? Fig. 7.19 [Stal99] Osoitteenmuunnos löytyy TLB:stä - nopea TLB huti? täytyy lukea tiedot sivutaulusta muistista (vrt. välimuisti) vie aikaa vähän (muutama muistiviite?) suoritin odottaa (tyhjäkäynnillä) Toteutus samalla tavalla kuten tavallinenkin välimuisti välimuistin rivin (datan) asemesta löytyykin halutun tiedon fyysinen osoite Muistin organisointi (3) CPU suorituslogiikka TLB Bus Disk regs cache VM backup File storage Memory 15 16 TLB ja välimuisti (4) Yleensä osoitteenmuunnos ensin ja sitten välimuistihaku Välimuisti voi perustua myös virtuaalisosoitteisiin voi tehdä TLB-haun ja välimuistihaun samanaikaisesti nopeuttaa Toteutukset hyvin samankaltaisia TLB toteutus optimoitu ajalliselle paikallisuudelle Kumpikin ovat tuntumattomia ( näkymättömiä ) niitä hyödyntäville ohjelmille KJ rutiinit voivat ehkä nollata molemmat prosessinvaihdon yhteydessä, mutta eivät lukea niiden sisältöä TLB vs. Välimuisti TLB huti CPU odottaa HW toteutus Tuntumaton prosessille Tiedot kopioidaan muistista TLB:hen sivutaulusta Välimuistihuti CPU odottaa HW toteutus Tuntumaton prosessille Tiedot kopioidaan muistista välimuistiin siivukehyksestä 17 18 Luento 9, Ulkoinen muisti & I/O 3

TLB hudit vs. sivunpuutoshudit TLB huti Suoritin odottaa tyhjäkäynnillä HW toteutus Data kopioidaan sivutaulusta TLB:hen kesto 4 ns (?) Sivunpuutos Prosessi odottaa ja suoritusvuoro toisella prosessilla SW toteutus Data kopioidaan ltä muistiin kesto 30 ms (?) Tiedostojärjestelmä (5) KJ:n osa, hallitsee kaikkia tiedostoja Valvoo oikeuksia tiedostoa avattaessa Muuntaa tiedostonimet fyysisiksi osoitteiksi Ylläpitää taulukoita, joista näkee mitä kohtaa mistäkin tiedostosta kukin prosessi on käsittelemässä Tiedostojärjestelmä lukee ja kirjoittaa tiedostoja suurina kerralla käsiteltävinä ina (0.5-8 KB?) käyttäjätason prosessit käsittelevät tiedostoja tavuittain, niiden ei tarvitse tietää tiedoston todellista fyysistä rakennetta (laiteajuri huolehtii siitä) 19 20 Levymuisti (9) Levykkö 0.5MB-80GB/kkö pyörii nopeasti (koko ajan?) ~ 3600-10800 rpm luku/kirjoituspäät liikkuvat kaikki yhtä aikaa? monta ä Levypinta ks. Figs 5.3, 5.4 [Stal99] 2 per (tai 1) ura ~ 2000-3000 uraa/pinta sektori: pienin kerralla ~ 20-100 sektoria/ura osoitettavissa oleva alue ~ 0.5-8KB/sektori sylinteri: päällekkäin olevat urat, luku/kirj. pää samalla kohtaa ~ 1-32 uraa/sylinteri ks. Fig 5.3 [Stal99] ~ 1-16 ä/kkö 21 Levymuistin saantiaika (2) Tiedon osoite: pinta + ura + sektori laiteajuri etsii KJ-taulukoista ks. Fig 5.4 [Stal99] loogisen osoitteen perusteella Saantiaika: hakuvarren siirtoaika (seek time) Esim: aver 6.3 ms, min-max 2-15 ms? odota kunnes sektori kohdalla (rotational delay) Esim: pyörähdysviive 3600 rpm 8.33 ms? (keskim. puolen kierroksen aika) siirrä sektorin verran tietoa (data transfer time) Esim: pyör.aika/sekt.lkm 0.42 ms 22 Tiedoston talletus lle (2) Tiedosto koostuu useista ista per sektori ( per usea sektori?) Levyn hakemistossa on tieto kunkin tiedoston käyttämistä ista luetaan t annetussa järjestyksessä hakemisto alkio FileA (unix) indeksi DOS-kkeen rakenne (10) FAT File Allocation Table kertoo, mitkä sektorit ovat vapaana kertoo, mitkä sektorit ovat käytössä millekin tiedostolle kiinteä paikka kkeellä, 2 kopiota Hakemisto erikoistyyppinen tiedosto hakemistoalkio joka tiedostolle nimi, tyyppi, koko, muutos pvm ja kellonaika attribuutit (invisible, read-only,...) linkki ensimmäiseen sektoriin FAT:ssä 23 24 Luento 9, Ulkoinen muisti & I/O 4

FAT - File Allocation Table (DOS) hakemistoalkio aa: 32 FAT varaustaulu 1. 34 36-1 32... 36 3. 32 33 34 35 36 34 2. DOS kkeet: 1.44MB, 512 B, 2.9K a entä: 1 GB, 64 KB, 64K a OK?... Mikä on hyvä n koko? Mihin käyttöön? Videokuvan talletus/playback? 1 minuutti 12.3 MB 4KB? osoitetaulu? 1.5 Mbit/sek (koko ajan) epäsuorat viittaukset? riittääkö nopeus? entä jos 1 tunti? 25 26 Erilaisia jä Kiinto ZIP ke Levyke CD-ROM, CD-R, CD-RW DVD...?... Kiinto (7) Kiinteä, ei vaihdettavissa oleva Väylä: IDE, EIDE, ATA, SCSI, PCMCIA Tila: 150 MB - 70 GB Hakuaika: 5-15 ms 1-10 ä Pyörimisnopeus: 4500-10800 rpm 16 g 43 x 36 x 5 mm Siirtonopeus: 5-50 MB/sec 27 28 Zip & Jaz keasemat (6) Levykeasema (6) Vaihdettava ke Väylä: USB, rinnakkaisväylä, SCSI,... Tila: 100 MB - 2 GB Hakuaika: 10-30 ms Pyörimisnopeus: 3000-5400 rpm Siirtonopeus: 1-6 MB/sec Vaihdettava ke Väylä:... Tila: 1.44 MB Hakuaika 90 ms Pyörimisnopeus: 300 rpm Siirtonopeus 0.05 MB/sec 29 30 Luento 9, Ulkoinen muisti & I/O 5

CD - Compact Disc (9) DVD - Digital Versatile Disk (9) Vaihdettava ke CD-R (Recordable) CD-RW (Rewri) Yksi pitkä spiraalimainen ura Väylä: SCSI, USB,... Tila: 650 MB Hakuaika 90 ms Pyörimisnopeus 200-9000 rpm Siirtonopeus 0.1-2 MB/sec Vaihdettava ke DVD-ROM DVD-R (Recordable) DVD-RAM (kuten tavallinen kova) Väylä: EIDE, ATAPI, SCSI Tila: 4.7-17 GB Hakuaika 100-180 ms Pyörimisnopeus 2000-8000 rpm Siirtonopeus 2-8 MB/sec 31 32 -- Luennon 9 loppu -- Fig. 5.47 from Hennessy-Patterson, Computer Architecture Alpha AXP 21064 memory hierarchy käskyjen TLB data TLB datavälimuisti käskyvälimuisti Käskyjen ja datan yhteinen L2 välimuisti Lisää tietoa? Tietokoneen rakenne muisti 33 Luento 9, Ulkoinen muisti & I/O 6