Esittely latautuu. Ole hyvä ja odota

Esittely latautuu. Ole hyvä ja odota

9. Järjestelmän ulkoinen muisti

Samankaltaiset esitykset


Esitys aiheesta: "9. Järjestelmän ulkoinen muisti"— Esityksen transkriptio:

1 9. Järjestelmän ulkoinen muisti
Muistihierarkkia Tiedostojärjestelmä Kiintolevyt ja muut pyörivät levyt 16/09/2018 Liisa Marttinen kevät 2005

2 9.1 Muistihierarkia ulkoista muistia tarvitaan koska
keskusmuisti kallista keskusmuistin koko rajallinen keskusmuistin sisältö tuhoutuu virran katkettua ulkoinen muisti on halvempaa per tavu ulkoinen muisti on paljon hitaampaa 16/09/2018 Liisa Marttinen kevät 2005

3 ajan ja tilan optimointia
Suuret tietomäärät täytyy pitää ulkoisessa muistissa (kustannussyistä) Pienet tietomäärät kannattaa pitää sisäisessä muistissa tehokkuussyistä Suoritusaikana voidaan viitata vain keskusmuistissa olevaan tietoon! 16/09/2018 Liisa Marttinen kevät 2005

4 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/09/2018 Liisa Marttinen kevät 2005

5 Virtuaalimuisti Osa muistihierarkiaa
Pyrkii vastaamaan ongelmaan: ”Miten tehdä suoritusaikaisesta muistista yhtä suuri kuin levymuisti ja yhtä nopea kuin keskusmuisti?” prosessista pidetään keskusmuistissa kulloinkin tarpeelliset osat peräkkäiset osat voivat sijaita erillään Kaikki tiedot ovat tallessa levyllä, josta ne kopioidaan tarvittaessa. 16/09/2018 Liisa Marttinen kevät 2005

6 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/09/2018 Liisa Marttinen kevät 2005

7 Virtuaalimuistin toteutus
toteutustavat kanta- ja rajarekisterit sivutus (segmentointi- ja sivuttava segmentointi) pääosa toteutuksesta ohjelmallisesti laitteistotuki MMU – muistinhallintatyksikkö TLB nopeuttamaan todellisen osoitteen laskentaa rakenne ja toiminta vaihtelee virtuaalimuistin toteutuksen mukaan 16/09/2018 Liisa Marttinen kevät 2005

8 Sivutus: sivut ja sivutilat
muistin sivutiloja ohjelman sivuja Ohjelman sivuja voidaan sijoittaa vapaisiin sivutiloihin. Osa sivuista voi olla levyllä. ….. 1 2 3 ………... 4 6 8 10 ohjelman sivu 2 ohjelman sivu 3 ohjelman sivu 0

9 Sivutaulu kertoo, missä prosessin sivut todella sijaitsevat sivutilan nro P-bitti M-bitti muuta 1 2 3 4 ….. 16/09/2018 Liisa Marttinen kevät 2005

10 Sivutaulun sijainti suurempi sivutaulu ei mahdu MMU:n rekistereihin, vaan se on talletettava keskusmuistiin tarvitaan kaksi muistista hakua: ensin osa taulua osoitteen selvittämiseksi ja sitten varsinainen data => HIDASTAA TLB (translation look-aside buffer) tallettaa viimeksi käytetyt sivutaulun alkiot virtuaaliosoite <=> fyysinen osoite 16/09/2018 Liisa Marttinen kevät 2005

11 TLB on nopeaa assosiatiivimuistia MMU PTR TLB MAR fyysinen ohjelman
osoite fyysinen 16/09/2018 Liisa Marttinen kevät 2005

12 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/09/2018 Liisa Marttinen kevät 2005

13 Jokaisesta muistiviittauksesta MMU
tarkistaa sen oikeellisuuden osoite < LIMIT muuttaa ohjelmaosoitteen fyysiseksi muistiosoitteeksi osoite = osoite +BASE jos koodille ja datalle omat muistisegmentit, niin tarvitaan kaksi paria kanta- ja rajarekistereitä 16/09/2018 Liisa Marttinen kevät 2005

14 9.2 Tiedostojärjestelmä käyttöjärjestelmän osa
varaa tilat tiedostoille pitää kirjaa tiedostojen nimistä ja niiden sijainnista talletusvälineellä välittää tiedostonsiirrossa levykäsittely lohkoittain <=> prosessi käsittelee tavuittain tiedostojen suojaus ja käytön valvonta tiedostojen käyttöoikeudet ja niiden tarkastus tiedostojen varmistus laitevirheiltä mitä kohtaa kukin prosessi on käsittelemässä 16/09/2018 Liisa Marttinen kevät 2005

15 ulkoinen muisti tiedostot anonyymejä tiedoston rakenne
~ peräkkäisiä, numeroituja lohkoa lineaariset lohkot tiedosto koostuu loogisista lohkoista tiedostot anonyymejä käyttäjän antama nimi ei ole tiedoston ominaisuus tiedoston rakenne käyttöjärjestelmän tukema rakenne IBM OS/360, Digitalin DEC/VMS vain jono tavuja UNIX

16 Levymuisti urat levykkö levypinta (1 tai 2 per levy)
150 MB – 181 GB/levykkö levykkö yhteisellä akselilla koko ajan nopeasti pyöriviä levyjä levypinta (1 tai 2 per levy) urat sektori = pienin kerralla osoitettavissa oleva osa sylinteri = päällekkäisillä urilla olevat sektorit luku/kirjoituspäät (yksi levypintaa (jopa uraa) kohden) hakuvarren päässä, liikkuvat kaikki samalla kertaa rpm 1-16 levyä/levykkö uraa/pinta sektoria/ura 0.5-8KB/sektori 1-32 uraa /sylinteri 16/09/2018 Liisa Marttinen kevät 2005

17 Levykkö hakuvarsi luku- ja kirjoituspäät kullekin pinnalle levy
levypinta Levykkö 16/09/2018 Liisa Marttinen kevät 2005

18 uria sektoreita LEVYPINTA 16/09/2018 Liisa Marttinen kevät 2005

19 ... ... Ura/Sektori magnetisoituvaa ainetta - magneettitäpliä
uran leveys mikronia (mikron = mm) magneettitäplän leveys mikronia 16/09/2018 Liisa Marttinen kevät 2005

20 Poiminta- eli hajasaantimuisti
tietoa ei tarvitse käsitellä siinä järjestyksessä kuin se on talletettu tiedon osoite = levypinnan nro + uran nro + sektorin nro laiteajuri etsii KJ:n taulukoista loogisen osoitteen perusteella monesko lohko 16/09/2018 Liisa Marttinen kevät 2005

21 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/09/2018 Liisa Marttinen kevät 2005

22 Levyn lukeminen ja kirjoitus
laiteajuri laskee levypinnan, uran ja sektorin numeron laiteohjain siirtää luku- ja kirjoituspään oikealle sylinterille (seek) laiteohjain odottaa oikean lohkon pyörähtämistä kohdalle (search) ohjain siirtää yhden tai useamman sektorin levyaseman ja keskusmuistin välillä (transfer) 16/09/2018 Liisa Marttinen kevät 2005

23 Tiedostojen talletus levylle
Tiedosto koostuu useasta lohkosta lohko/sektori (lohko/usea sektori) loogisten lohkojen kuvaus lineaarisille lohkoille (~koodi ja data keskusmuistiin) peräkkäin vai sinne, mistä sattuu tilaa löytymään Levyn hakemistossa on tieto kunkin tiedoston käyttämistä lohkoista 16/09/2018 Liisa Marttinen kevät 2005

24 Tiedoston lohkot levyllä
Hakemistoalkio: Myfile Tiedoston lohkot levyllä Indeksilohko: 16/09/2018 Liisa Marttinen kevät 2005

25 Levyn käyttö muisti Virtuaalimuistin tukimuistina
Sivu (tied) Sivu (tav) Virtuaalimuistin tukimuistina tiedostojen talletukseen Virtuaalimuistin voi toteuttaa tiedostojärjestelmän päälle (sitä käyttäen) tai päinvastoin! väylä VM-tukimuisti tiedostot sivu lohko sivu levy sivu sivu sivu 16/09/2018 Liisa Marttinen kevät 2005

26 DOS-levykkeen rakenne
FAT- File Allocation Table mitkä sektorit vapaana mikä sektori minkäkin tiedoston käytössä kiinteä paikka levykkeellä kaksi kopiota Hakemisto erikoistyyppinen tiedosto hakemistoalkio joka tiedostolle 16/09/2018 Liisa Marttinen kevät 2005

27 MS/DOS FAT-taulu (File Allocation Table)
alkio jokaiselle levyn sektorille lohkot … …… 17 …. … ….. FAT 21 … FREE … …. EOL viimeinen lohko seuraava lohko 1. lineaarisen lohkon numero MY_DATA 17 hakemisto

28 21 3 -1 MY_DATA 17 FAT hakemistotiedosto FAT-taulu
lohkot … …. … MY_DATA 17 FAT 21 … FREE … … EOL

29 Lohkon koko pienin levyltä kerralla varattavissa oleva kokonaisuus voi olla usean sektorin pituinen varausyksikkö (cluster) eli lohko jos lohko liian iso, tilaa tuhlaantuu keskimäärin puolet tiedoston viimeisestä lohkosta on tyhjää tilaa lohkon koko vaikuttaa myös hakuaikaan levyn koko ja osiointi vaikuttaa lohkon pituuteen osio 128 MB: varausyksikkö 2 KB osio 2048 MB: varausyksikkö 32 KB 16/09/2018 Liisa Marttinen kevät 2005

30 Unixin ratkaisu 110 MY_DATA 110 hakemistoalkio indeksi lohko
datalohkoja 16/09/2018 Liisa Marttinen kevät 2005

31 Unixin ratkaisun ongelmia:
jokainen lohko-operaatio tarvitsee kaksi levyltä lukua indeksilohkon lukeminen datalohkon lukeminen myös pienet tiedostot tarvitsevat kaksi lohkoa indeksilohko rajoittaa tiedoston kokoa lohko = 1024 tavua (myös indeksilohko) jos lohkon numero vaatii 4 tavua => indeksilohkoon mahtuu vain 256 lohkoa siis tiedoston koko korkeintaan 256 * 1024 tavua eli 256 KB

32 Ratkaisu koko-ongelmaan käytetään kaksitasoista indeksointia
tiedoston koko voi olla 64 MB jos ei riitä otetaan käyttöön kolmitasoinen jne jokaista lohko-operaatiota varten kolme levyltä lukua! pienillekin tiedostoille kolme lohkoa! 16/09/2018 Liisa Marttinen kevät 2005

33 Kaksitasoinen indeksi
MY_DATA 110 ….. 1. indeksi 2. indeksi datalohkot 16/09/2018 Liisa Marttinen kevät 2005

34 Unixin käyttämä sekaratkaisu
tiedostojen hallintaan tietorakenne inode inode sisältää kaiken tarvittavan tiedon tiedoston hallintaan ei tiedon asiasisältöä käyttöjärjestelmän kannalta juuri inode on tiedosto 16/09/2018 Liisa Marttinen kevät 2005

35 inoden sisältö 13 lohkonumeroa tiedoston koko tavuina omistaja
tiedoston 10 ensimmäisen datalohkon numerot 1. tason indeksin numero 2. tason indeksin numero 3. tason indeksin numero tiedoston koko tavuina omistaja käyttöoikeudet yms. 16/09/2018 Liisa Marttinen kevät 2005

36 hakemistot (erityis)tiedostoja, jotka kuvaavat kuinka nimi liittyy tiedostoon hakemistoilla myös oma inode ja inode-numero, jopa oma nimi omattiedostot: inode- numero tiedoston nimi MY_DATA hakemisto

37 hakemistopuu / juuri include bin ect usr rms uwb xyz /usr/rms/huuhaa
ap joo koe huuhaa Jokainen tiedosto voidaan identifioida hakupolun avulla 16/09/2018 Liisa Marttinen kevät 2005

38 Suojaus suojausongelma ratkaisu tiedoston käytön kieltäminen toisilta
tiedoston käytön salliminen toisille ratkaisu jaetaan käyttäjät luokkiin, joille voidaan antaa eri oikeudet omistaja omistajan ryhmä muut 16/09/2018 Liisa Marttinen kevät 2005

39 Tiedoston / hakemiston käyttö
tiedostoilla oikeus lukea (r) kirjoittaa (w) suorittaa (ohjelma)tiedostoa (x) hakemistoilla oikeus listata hakemisto (r) luoda tai hävittää tiedostoja (w) käyttää hakemistoa tiedoston hakupolussa (x) 16/09/2018 Liisa Marttinen kevät 2005

40 Käyttöoikeuksien tarkistus
KJ tarkistaa tiedoston käyttöoikeudet sen avaamisen yhteydessä prosessin kuvaajassa käyttäjä- ja ryhmätunnisteet tiedostomääreissä käyttöoikeudet eri luokille käyttäjä- ja ryhmätunniste viedään prosessin kuvaajaan PCB, kun KJ kysyy käyttäjätunnuksen jokaiseen käyttäjätunnukseen liittyy käyttäjätunniste ja ryhmätunniste tiedostoa luotaessa tallentuu omistajan käyttäjätunniste ja ryhmätunniste 16/09/2018 Liisa Marttinen kevät 2005

41 uusille tiedostoille käyttöoikeuden oletusarvojen mukaan
tiedoston omistaja voi usein myös muuttaa käyttöoikeuksia unix: chmod o+r käyttöoikeuksien muutto-oikeutta ei voi luovuttaa muille 16/09/2018 Liisa Marttinen kevät 2005

42 Tiedoston käyttö prosessin käyttämä looginen tiedostonimi sidotaan todelliseen eli fyysiseen tiedostoon ohjelmointikielen lauseella tiedostoa avattaessa prosessi voi käyttää vain tiedostoja, jotka on avattu käyttöä varten 16/09/2018 Liisa Marttinen kevät 2005

43 KJ luo tarvittavat tietorakenteet
hakemistoalkio kopioidaan globaaliin ‘avoimet tiedostot’-tauluun lisätään luku/kirjoituspaikka lisätään laitenumero lisätään suojaustiedot prosessin PCB:n tiedostokuvaajatauluun viite ‘avoimet tiedostot’ -tauluun tiedoston avannut prosessi saa indeksin tiedostokuvaajatauluun prosessi voi viitata tiedostoon vain tämän indeksin avulla 16/09/2018 Liisa Marttinen kevät 2005

44 avoimet tiedosto -taulu
nimi laitenumero uid, gid rwx-bitit r/w-positio lohkonumerot tiedosto- kuvaaja PCB prosessille indeksi tiedostokuvaajaan = 2 avoimet tiedosto -taulu 16/09/2018 Liisa Marttinen kevät 2005

45 tiedoston käyttö prosessi käyttää tiedostoa siihen koodattujen luku- ja kirjoituskäskyjen avulla kääntäjä muuttaa lausekielen I/0-käskyt käyttöjärjestelmän palvelupyynnöiksi lue tietue tiedostosta Sisafile => PUSH SP, Sisafile ; mistä tiedostosta PUSH SP, =Tietue ; minne siirretään (muistios.) PUSH SP, = ; paljonko siirretään SVC SP, =READ ; operaatio 16/09/2018 Liisa Marttinen kevät 2005

46 9.3 Erilaisia levyjä kiintolevy ZIP-levyke Levykeasema
CD (Compact Disc) DVD (Digital Versatile Disc) 16/09/2018 Liisa Marttinen kevät 2005

47 Kiintolevy Kiinteä, ei vaihdettavissa oleva levy Tila: 20 - 400 GB
(Hitachi 500 GB, TB) Hakuaika: 5-15 ms tiedon siirtonopeus MB/s pyörimisnopeus esim rpm 5-10 levyä 16/09/2018 Liisa Marttinen kevät 2005

48 Zip & Jaz -levykeasemat
vaihdettava levyke Tila: 100 MB -2 GB hakuaika: ms pyörimisnopeus: rpm siirtonopeus: 1-6 MB/sec 16/09/2018 Liisa Marttinen kevät 2005

49 Levykeasemat vaihdettava levyke Tila: 1.44 MB hakuaika: 90 ms
pyörimisnopeus: 300 rpm siirtonopeus: 0.05 MB/sec 16/09/2018 Liisa Marttinen kevät 2005

50 CD – Compact Disc vaihdettava levyke yksi pitkä spiraalimainen ’ura’
CD-R (Recordable) CD-RW (ReWriteable) yksi pitkä spiraalimainen ’ura’ Tila: 650 MB hakuaika: 90 ms pyörimisnopeus: rpm siirtonopeus: MB/sec 16/09/2018 Liisa Marttinen kevät 2005

51 DVD (Digital Video/Versatile Disk)
vaihdettava levyke DVD-ROM DVD-R (Recordable) DVD-RAM (kuten tavallinen kovalevy) Tila: GB Hakuaika: ms Pyörimisnopeus rpm Siirtonopeus 2-8 MB/sec hitaampi kuin kovalevy 16/09/2018 Liisa Marttinen kevät 2005


Lataa ppt "9. Järjestelmän ulkoinen muisti"

Samankaltaiset esitykset


Iklan oleh Google