Luento 9 Järjestelmän ulkoinen muisti

Samankaltaiset tiedostot
Luento 9 Järjestelmän ulkoinen muisti

Luento 9 Järjestelmän ulkoinen muisti

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

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

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 Kiintolevyt Muut pyörivät levyt I/O:n toteutus

Luento 9 Järjestelmän ulkoinen muisti

Muistihierarkia Kiintolevyt I/O:n toteutus

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

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

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

Järjestelmän ulkoinen muisti I/O

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

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

VIRTUAALIMUISTI. Stallings, Luku 8.1

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

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

VIRTUAALIMUISTI. Stallings, Luku 8.1

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

Luento 6: VIRTUAALIMUISTI

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

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

Ulkoinen muisti ja IIO:n toteutus

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

Osio 2: Luennot 4-7 Muistinhallinta

Tietokoneen toiminta, K Tavoitteet (4)

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

Tietokoneen toiminta Teemu Kerola, Copyright Muistihierarkia

Jakso 12 Yhteenveto. Keskeiset asiat Teemu Kerola, K2000

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

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

MUISTINHALLINTA. Stallings, Luku 7

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

Käyttöjärjestelmät: Virtuaalimuisti

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. Teemu s Cheesecake. Tietokoneen rakenne

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

Luento 5 Suoritin ja väylä

Luento 1 Tietokonejärjestelmän rakenne

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

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

Luento 5 Suoritin ja väylä

Käyttöjärjestelmät II

Käyttöjärjestelmät II

Luento 1 Tietokonejärjestelmän rakenne

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

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

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

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

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

Osio 2: Luennot 5-8 Muistinhallinta

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

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

Jakso 5 Suoritin ja väylä

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

Käyttöjärjestelmän rakenne

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

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

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

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

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

Luento 5 Suoritin ja väylä

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

MUISTINHALLINNAN OHJELMISTO

Luento 1 (verkkoluento 1) Tietokonejärjestelmä

Jakso 8 Ohjelman suoritus järjestelmässä

Luento 5 Suoritin ja väylä

Jakso 8 Ohjelman suoritus järjestelmässä

Luento 2: LAITTEISTOSTA

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

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

Jakso 8 Ohjelman toteutus järjestelmässä

Jakso 8 Ohjelman toteutus järjestelmässä

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

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

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

1. Keskusyksikön rakenne

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

Stallings, Luku

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

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

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

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

Tietokoneen toiminta, K Tavoitteet (4)

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

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

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

Transkriptio:

Luento 9 Järjestelmän ulkoinen muisti Muistihierarkia Virtuaalimuisti Kiintolevyt Muut pyörivät levyt 1

Muistihierarkia (4) Ulkoinen muisti on halvempaa toteuttaa per tavu Ulkoinen muisti on hyvin paljon hitaampaa kuin sisäinen muisti Aika/tila optimointi ks. Fig. 2-18 [Tane99] 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! 2

Osa muistihierarkiaa Virtuaalimuisti (3) Vastaus ongelmaan: miten tehdä suoritusaikaisesta muistista yhtä suuri kuin levymuisti ja yhtä nopea kuin keskusmuisti Kaksitasoinen: keskusmuistissa kulloinkin käytössä alueet levyllä kaikki tiedot kopiointi tarvittaessa Muisti väylä levy 3

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 4

Heittovaihto (swapping) Pidä kaikki ohjelman muistialueet muistissa Suorituksessa oleva ohjelmalle Ready-to-Run jonossa oleville ohjelmille Uusi prosessi? Etsi vapaa yhtenäinen muistialue ja swappaa prosessi sinne Ei tilaa? Siirrä joku (alemman prioriteetin) työ levylle Joskus iso ohjelma pitää jakaa pienempiin ajokelpoisiin heittovaihdettaviin osiin Osoitteen muunnos: kanta- ja rajarekisterit Miksi? 5

Virtuaalimuistin toteutus Toteutustavat kanta- ja rajarekisterit sivutus (segmentointi ja sivuttava segmentointi) Laitteistotuki MMU - muistinhallintayksikkö rakenne ja toiminta vaihtelee virtuaalimuistin toteutustavan mukaan 6

Kanta- ja rajarekistereihin perustuva virtuaalimuisti (3) Yhtenäiset keskusmuistialueet yksi tai useampi per prosessi erilliset segmentit (ja siis kanta ja rajarekisterit) koodille, datalle, I/O-porteille, yhteiselle datalle, MMU:ssa BASE ja LIMIT rekisterit segmentti joko oletusarvoinen tai nimettykonekäskyssä kaikki osoitteet loogisia virtuaaliosoitteita helppo tarkistus ja muunnos ttk-91: 1 segmentti Tarkista: Fyysinen osoite: x < LIMIT BASE+x 7

Sivuttava virtuaalimuisti Looginen osoiteavaruus jaettu saman kokoisiin sivuihin, esim. 1 KB Fyysinen muisti jaettu saman kokoisiin sivukehyksiin (sivuraameihin) Kaikki tieto on levyllä Käytössä olevat tiedot ovat keskusmuistissa ( frame) muisti levy 8

Sivuttava virtuaalimuisti Jokainen looginen sivu voidaan sijoittaa mihin tahansa (vapaaseen) sivukehykseen muistissa Sivutaulu pitää kirjaa loogisten sivujen sijainnista sekä muistissa että levyllä muisti vapaita sivukehyksiä Sivutaulu levy 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 01100110 10110000 sivu siirtymä 00111011 10110000 sivukehys siirtymä looginen sivun osoite voi olla virheellinen kyseinen looginen sivu ei ole missään sivukehyksessä (vielä) sivunpuutoskeskeytys 10

Sivuttava virtuaalimuistin osoitteenmuunnos (4) virtuaaliosoite muistiinviittaustyyppi sivutaulun osoite Onko sivu muistissa vai ei? 1 30 0: 1: 2: sivutaulu 0 rwx 65 1 rw 14 1 rw 55.. Valid entry Access rights Page frame r Tarkista viitteen sallittavuus r {rw} 14 30 fyysinen osoite muistissa 11

Sivunpuutoskeskeytys KJ: Lopeta suoritus, siirrä odottamaan KJ: Aloita luku levyltä virt. osoite 0 55 sivutaulun osoite KJ: Anna suoritusvuoro seuraavalle prosessille I/O keskeytys KJ: Sivu 0 luettu, päivitä sivutaulu Sivu muistissa vai ei? 0: 1: 2: Sivunpuutos (12) Page table 0 rwx 65 0 w 33 1 rw 55.. KJ: Siirrä alkuper. 1 rw 14 prosessi ready-to-run Anna suoritusvuoro alkup. jonoon prosessille, samaan konekäskyyn viitetyyppi r tarkista oikeudet r {rw}? 55 fyysinen osoite 12

Sivuttava virtuaalimuisti (2) 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) passiivinen osa sivutaulua voi olla levyllä voi olla virtuaalimuistissa 13

Osoitteen muunnos (3) MMU tekee jokaiselle osoitteelle koodi, data useammin kuin kerran per käsky! Ei voi hakea osoitteenmuutostietoja muistista sivutaulusta joka kerta! liian kallis hinta virtuaalimuistista? MMU pitää tallessa ( välimuistissa ) viimeisimmät osoitteenmuunnokset osoitteenmuunnostaulukko TLB (Translation Lookaside Buffer) 99.9% osumasuhde? 29.5.2001 Copyright Teemu Kerola 1999 14

TLB - osoitteenmuunnostaulukko (3) TLB osuma? Osoitteenmuunnos löytyy TLB:stä - nopea; TLB huti? täytyy lukea tiedot sivutaulusta muistista suoritin odottaa (tyhjäkäynnillä) Toteutus Fig. 7.19 [Stal99] samalla tavalla kuten tavallinenkin välimuisti välimuistin rivin (datan) asemesta löytyykin haluttu tiedon fyysinen osoite 0-2 muistiviitettä, paitsi jos viitattu sivu täytyy ensin hakea muistista 15

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 nollata molemmat, mutta eivät lukea niiden sisältöä 16

TLB vs. Välimuisti TLB huti CPU odottaa HW toteutus Tuntumaton prosessille Tiedot kopioidaan muistista TLB:hen sivutaulu jossakin sivukehyksessä Välimuistihuti CPU odottaa HW toteutus Tuntumaton prosessille Tiedot kopioidaan muistista välimuistiin data jossakin sivukehyksestä 17

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 levyltä muistiin kesto 30 ms (?) = 30 000 000 ns 18

CPU Muistin organisointi (3) Memory suorituslogiikka TLB Bus regs cache table table Disk table table table table 19

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ä lohkoina (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ä) 20

Levymuisti (9) ks. Fig.2.20 [Tane99] Levykkö pyörii nopeasti (koko ajan?) luku/kirjoituspäät liikkuvat kaikki yhtä aikaa monta levyä Levypinta 2 per levy (tai 1) ura ks. Fig.2.19 [Tane99] 0.5MB-16GB/levykkö ~ 3600-10800 rpm ~ 1-16 levyä/levykkö ~ 2000-3000 uraa/pinta ~ 20-100 sektoria/ura sektori: pienin kerralla osoitettavissa oleva alue ~ 0.5-8KB/ura sylinteri: päällekkäin olevat urat (luku/kirj. pää samalla kohtaa) ~ 1-31 uraa/sylinteri 21

Levymuistin saantiaika (2) Tiedon osoite: levypinta + ura + sektori laiteajuri etsii KJ-taulukoista loogisen osoitteen perusteella Saantiaika: hakuvarren siirtoaika min, 2 ms, max 15 ms (?) odota kunnes sektori kohdalla (pyörähdysviive) on keskim. puolen pyörähdyksen aika; esim. 3600 rpm => 8.33 ms siirrä sektorin verran tietoa esim. pyör.aika/sekt. lkm = 0.42 ms ks. Fig.2.20 [Tane99] (seek time) (rotational delay) (data transfer time) 22

Tiedoston talletus levylle (2) Tiedosto koostuu useista lohkoista lohko per sektori Levyn hakemistossa on tieto kunkin tiedoston käyttämistä lohkoista luetaan lohkot annetussa järjestyksessä hakemisto alkio FileA (unix) indeksi lohko lohko lohko lohko lohko 23

DOS-levykkeen rakenne FAT -File Allocation Table kertoo, mitkä sektorit ovat vapaana kertoo, mitkä sektorit ovat käytössä millekin tiedostolle kiinteä paikka levykkeellä, 2 kopiota Hakemisto erikoityyppinen hakemisto hakemistoalkio joka tiedostolle nimi, tyyppi, koko, muutos pvm ja kellonaika attribuutiy (invisible, read-only, ) linkki ensimmäiseen sektoriin FAT:ssä 24

FAT - File Allocation Table (DOS) hakemistoalkio aa: 32 FAT varaustaulu 1. 34 36-1 32... 36 32 33 34 35 36 34 2. 3.... DOS levykkeet: 1.44MB, lohko 512 B, 2.9K lohkoa entä: 1 GB, lohko 64 KB, 64K lohkoa OK? 25

Mikä on hyvä levylohkon koko? Mihin käyttöön? Videokuvan talletus/playback? 1 minuutti 12.3 MB lohko 4KB? osoitetaulu? epäsuorat viittaukset? riittääkö nopeus? entä jos 1 tunti? 1.5 Mbit/sek (koko ajan) 26

Erilaisia levyjä Kiintolevy ZIP levyke Levyke CD-ROM, CD-R, CD-RW DVD 27

Kiintolevy (7) Kiinteä, ei vaihdettavissa oleva levy Väylä: IDE, EIDE, ATA, SCSI, PCMCIA Tila: 150 MB - 70 GB Hakuaika: 5-15 ms 1-10 levyä Pyörimisnopeus: 4500-10800 rpm Siirtonopeus: 5-50 MB/sec 16 g 43 x 36 x 5 mm 28

Zip & Jaz levykeasemat (6) Vaihdettava levyke 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 29

Levykeasema (6) Vaihdettava levyke Väylä:... Tila: 1.44 MB Hakuaika 90 ms Pyörimisnopeus: 300 rpm Siirtonopeus 0.05 MB/sec 30

CD - Compact Disc (9) Vaihdettava levyke CD-R (Recordable) CD-RW (Rewritable) 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 31

DVD - Digital Versatile Disk (9) Vaihdettava levyke DVD-ROM DVD-R (Recordable) DVD-RAM (kuten tavallinen kovalevy) Väylä: EIDE, ATAPI, SCSI Tila: 4.7-17 GB Hakuaika 100-180 ms Pyörimisnopeus 2000-8000 rpm Siirtonopeus 2-8 MB/sec 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 levy 33