1 / 37

Pomnilniška hierarhija

Pomnilniška hierarhija. Kaj je navidezni pomnilnik. Mehanizem, ki daje uporabniku vtis, da je glavnega pomnilnika več, kot ga je v resnici. Koncept navideznega pomnilnika ni nov (pozna šestdeseta leta prejšnjega stoletja). Sprva realiziran na velikih računalniških sistemih.

sydnee-holt
Télécharger la présentation

Pomnilniška hierarhija

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Pomnilniška hierarhija

  2. Kaj je navidezni pomnilnik • Mehanizem, ki daje uporabniku vtis, da je glavnega pomnilnika več, kot ga je v resnici. • Koncept navideznega pomnilnika ni nov (pozna šestdeseta leta prejšnjega stoletja). • Sprva realiziran na velikih računalniških sistemih. • Množična prisotnost je razmeroma nova (osebni računalniki). • Obravnavanje navideznega pomnilnka spada v širši kontekst upravljanja pomnilnika, ta pa v kontekst operacijskih sistemov. • Podlago delovanju navideznega pomnilnika daje lokalnost pomnilniških referenc. • Za realizacijo je potrebna ustrezna strojna in programska oprema.

  3. Navidezni pomnilnik • Analize kažejo: • Nekateri deli programa se redko ali celo nikoli ne izvršijo. • Deli programa se (v enoprocesorskih sistemih) ne izvršujejo sočasno, niti ves čas. • Torej ni potrebe, da bi se v pomnilniku nahajali sočasno ali ves čas. • Zadostuje, da se v pomnilniku nahaja tisti del “delovni del” programa , ki se tedaj izvršuje. • Zamisel: • Dodeljevanje pomnilnika programom/procesom oziroma delom programov/procesov samo, če ga zares potrebujejo (to je “na zahtevo”). • Pridobitve: • Možno je izvrševati programe, ki so večji od velikosti glavnega pomnilnika • Maks. velikost programa ni direktno dvisna od velikosti glavnega pomnilnika. • Možnost sočasnega izvrševanja večjega števila programov (procesov oz. opravil) kot bi to dovoljevala velikost glavnega pomnilnika.

  4. Logični in fizični naslovi • Za razumevanje delovanja navideznega pomnilnika je bistvenega pomena razlikovanje logičnih od fizičnih naslovov. • Logični naslov je naslov znotraj programa (naslov ukaza ali podatka). • To je v bistvu naslov, ki ga generira procesor med izvrševanjem programa (na primer vsebina programskea števca). • Fizični naslov je naslov pomnilniške besede (glavnega) pomnilnika. To je v bistvu naslovna kombinacija na naslovnem vodilu. • Logični naslovi sestavljajo logično naslovno področje programa. • Torej je velikost logičnega naslovnega področja dana z velikostjo programa. Maksimalna velikost programa je dana z dolžino logičnega naslova oziroma dolžino (ter funkcijo) naslovnih registrov procesorja. • Fizični naslovi sestavljajo fizično naslovno področje pomnilnika. • Velikost fizičnega naslovnega področja je dana z velikostjo glavnega pomnilnika. Maksimalna velikost glavnega pomnilnika je dana s širino naslovnega vodila.

  5. Logični in fizični naslovi Ko program namestimo v pomnilnik – dodelimo pomnilnik – mu dodelimo fizične naslove. • Logični • naslovi • Fizični • naslovi • Na primer, ukazu z logičnim naslovom 1000 dodelimo pomnilniško besedo • s fizičnim naslovom 3000. • Vprašanje: kdaj in kako naj se l. n. 1000 preslika v f. n.?

  6. Preslikava l.n. v f.n. • Statično – pred izvršitvijo: • Prevajanje: program prevedemo tako, da so logični naslovi po vrednosti kar enaki fizičnim naslovom (absolutni program). Program namestimo na te fizične naslove (dodelimo tisti del pomnilnika) in ga izvršimo. • Povezovanje: program prevedemo ob predpostavki, da bodo fizični naslovi izbrani v času povezovanja. Program ali dele programov prevedemo tako, da začnejo z logičnim naslovom 0000. V času povezovanja se logični naslovi “preračunajo” v fizične naslove, program namestimo na predvidene naslove in ga izvršimo. • Nameščanje: Programu dodelimo (“izračunamo”) dejanske naslove v času nameščanja, program v glavni pomnilnik tja tudi namestimo in izvršimo.

  7. Preslikovanje l.n. v f.n. • Dinamično – med izvrševanjem: • Ko procesor generira logični naslov, se le-ta “preračuna” – to je preslika v fizični naslov pomnilniške besede, kjer je nameščen ukaz (ali podatek) . • Za to preslikavo je potrebna ustrezna strojna oprema, na primer, ko procesor generira logični naslov 1000, se le ta s pomočjo strojne opreme preslika v fizični naslov 3000. • Na tem temelji izvedba navideznega pomnilnika. • Vprašanje: kako na učinkovit način realizirati to preslikavo?

  8. Dodeljevanje pomnilnika • Zvezno: • Program (proces ali opravilo) namestimo v pomnilnik v enem kosu. • V pomnilnik lahko namestimo sicer tudi več programov (več opravilnost), vendar vsakega zase zvezno. • Nezvezno: • Posamezen program namestimo v pomnilnik po delih. Zvezno je nameščen v pomnilnik samo posamezen del programa. • To je podlaga za izvedbo navideznega pomnilnika, program delimo na: • Enako velike dele – strani, “ostranjenje”, • Različno velike dele – segmente, “segmentiranje”, • Kombinacijo obeh – segmentiranje z ostranjenjem.

  9. Upravljanje pomnilnika

  10. Navidezni pomnilnik – povzetek

  11. Navidezni pomnilnik – prednosti

  12. Navidezni pomnilnik – opombe

  13. Ostranjen navidezni pomnilnik

  14. Ostranjenje - primer

  15. Ostranjen navidezni pomnilnik

  16. Preslikava l.n. V f.n.

  17. Tabela strani • Primer: • Velikost strani = velikost okvirja = 4 KB • Logični naslovni prostor: 4 GB, maks. št. strani 1 M • Fizični naslovni prostor: 4 MB, št. okvirjev 1 K • Poleg logičnega in fizičnega naslova vsebuje tabela še dodatna določila: bit veljavnosti (V), bit spremembe (M), bit zaščite (WP), bit prisotnosti, ipd. • Tabela strani je lahko zelo velika • Velikost tabele strani = število strani x velikost posamezne komponente, • Na primer, 1 M x 8 = 8 MB • Vsak program, ki je nameščen v pomnilnik, mora imeti svojo tabelo, • Toliko tabel kot programov. • Vprašanje: Kam namestiti vse tabele? • Tabele so nameščene v glavni pomnilnik.

  18. Tabela strani

  19. Tabela strani • Posledica: • Upočasnitev napredovanja programa – za vsako koristno rferenco sta potrebna dva pomnilniška dostopa, eden do tabele in eden do programa (vsebine) • V uporabi pa so tudi večnivojski sistemi tabel • Vsakemu program v tem primeru pripada ena tabela prvega nivoja in več tabel naslednjega (drugega), tretjega , ..., nivoja. • Za vsako pomnilniško referenco je potrebno toliko dodatnih dostopov kolikor je nivojev tabel. • Preslikava l.n. v f.n. pa mora biti hitra • Rešitev – naslovni preslikovalni predpomnilnik – ATC ali TLB • ATC – Address Translation Cache • TLB – Translation Look-aside Buffer • ATC (TLB) vsebuje samo del – aktivni del – tabele strani • Tabela strani se sicer še vedno nahaja v glavnem pomnilniku.

  20. Tabela strani in ATC • Tabela strani se nahaja v glavnem pomnilniku, aktivni del tabele se nahaja tudi v ATC • Ta predpomnilnik je največkrat asociativen ali delno (npr. 4 ali 8-stransko delno asociativen) • Dokler je aktivni del tabele v predpomnilniku, je dostop do pomnilnika hiter oz. se praktično ne podaljša • V nasprotnem primeru je potreben dodaten pomnilniški dostop do pomnilnika (za vsak nivo tabel) in polnjenje ATC. • V primeru, da stran ni v pomnilniku, pa je (seveda) potreben tudi dostop do diska (torej nameščanje strani).

  21. Prekrivanje strani

  22. Ostranjenje - primer

  23. Ostranjenje - primer

  24. Ostranjenje - primer

  25. Segmentiranje • Segmentiranje temelji na izgledu naslovnega področja, kot ga vidi programer. • Logično naslovno področje za njega ni linearno zaporedje pomnilniških naslovov. • Program sestavlja določeno število različno velikih delov programa – segmentov. • Segment je del programa, ki ima za programerja enoten pomen (npr. ukazi, podatki, sklad) • Vsak segment ima svoje ime (oznako ali številko) in velikost. • Logični naslov je tako dan z dvema določiloma: imenom segmenta in odmikom znotraj segmenta.

  26. Segmentiranje

  27. Segmentiran pomnilnik

  28. Segmentiran pomnilnik

  29. Segmentiran pomnilnik

  30. Segmentiran navidezni pomnilnik

  31. Segmentiran navidezni pomnilnik

  32. Asociativni segmentni registri

  33. Asociativni segmentni registri

  34. Asociativni segmentni registri

  35. 836+ in ostranjenje

  36. 836+ in navidezni pomnilnik

More Related