34
S. Ribaric, AIOR 1 11. VIRTUALNI MEMORIJSKI SUSTAV • Problemi s memorijom u jedno- i višekorisnickom sustavu • Memorijska hijerarhija • Fizicki i logicki adresni prostori • Vremenska i prostorna lokalnost • Denningov model memorije • Stranicenje • Segmentacija

11. VIRTUALNI MEMORIJSKI SUSTAV - Matematički odsjek · Glavna ili primarna memorija se prividno (virtualno) pojavljuje kao memorija koja ima kapacitet sekundarne memorije (npr

  • Upload
    others

  • View
    19

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 11. VIRTUALNI MEMORIJSKI SUSTAV - Matematički odsjek · Glavna ili primarna memorija se prividno (virtualno) pojavljuje kao memorija koja ima kapacitet sekundarne memorije (npr

S. Ribaric, AIOR 1

11. VIRTUALNI MEMORIJSKI SUSTAV

• Problemi s memorijom u jedno- i višekorisnickom sustavu

• Memorijska hijerarhija

• Fizicki i logicki adresni prostori

• Vremenska i prostorna lokalnost

• Denningov model memorije

• Stranicenje

• Segmentacija

Page 2: 11. VIRTUALNI MEMORIJSKI SUSTAV - Matematički odsjek · Glavna ili primarna memorija se prividno (virtualno) pojavljuje kao memorija koja ima kapacitet sekundarne memorije (npr

S. Ribaric, AIOR 2

• Proizvodaci racunalskih sustava isporucuju sustave sglavnom (radnom) memorijom kapaciteta od nekolikodesetaka do stotinu i više stotina M bajtova

• Sekundarna memorija – nekoliko desetaka ili stotina (i više)G bajtova.

Problem: Kapacitet glavne memorije otvoreno pitanje odnosa performansa/cijena

Posljedica: Nesklad izmedu memorijskih zahtjeva programa i kapaciteta stvarne, fizicke memorije

Page 3: 11. VIRTUALNI MEMORIJSKI SUSTAV - Matematički odsjek · Glavna ili primarna memorija se prividno (virtualno) pojavljuje kao memorija koja ima kapacitet sekundarne memorije (npr

S. Ribaric, AIOR 3

Jednokorisnicki racunalni sustav:

• Problem se rješavao uporabom postupka prekrivanja ili preklapanja (engl. Overlay):

- programer je dijelio program na nekoliko programskih blokova

(modula) i blokova podataka

- svi programski blokovi i blokovi podataka nisu istodobno potrebni tijekom izvodenja programa

- u glavnoj se memoriji nalazi programski modul koji se trenutno izvršava i njemu potreban blok podataka

- u glavnoj se memoriji trajno pohranjuje onaj dio programa kojim se upravlja premještanje blokova izmedu glavne memorije i sekundarne memorije

Page 4: 11. VIRTUALNI MEMORIJSKI SUSTAV - Matematički odsjek · Glavna ili primarna memorija se prividno (virtualno) pojavljuje kao memorija koja ima kapacitet sekundarne memorije (npr

S. Ribaric, AIOR 4

- svi ostali programski moduli su smješteni u sekundarnoj memoriji ipremještaju se u glavnu memoriju upravo kad su potrebni- moduli se premještaju u isto podrucje glavne memorije u kojem su bilipohranjeni prethodni moduli

PREKLAPANJE !!!

Znacajka: Staticko rukovanje memorijom

Page 5: 11. VIRTUALNI MEMORIJSKI SUSTAV - Matematički odsjek · Glavna ili primarna memorija se prividno (virtualno) pojavljuje kao memorija koja ima kapacitet sekundarne memorije (npr

S. Ribaric, AIOR 5

Pojavom višekorisnickih racunalnih sustava postupak prekrivanja ilipreklapanja je nedjelotvoran i skoro neizvodljiv:

• zbog istodobnog postojanja više programa razlicitih korisnika u glavnojmemoriji• zbog smanjenja raspoloživog prostora za svakog korisnika u glavnojmemoriji

• zbog prisutnosti više aktivnih programskih modula razlicitih korisnika –uporaba zajednickih sustavskih modula → uvodenje dodatnih zaštitnih mehanizama pristupa pojedinim programskim modulima• zbog toga što se podatkovne strukture mijenjaju dinamicki tijekomizvodenja programa

• zbog potrebe razmještanja programskih modula tijekom izvodenjaprograma

RJEŠENJE: Dinamicko rukovanje memorijom

Page 6: 11. VIRTUALNI MEMORIJSKI SUSTAV - Matematički odsjek · Glavna ili primarna memorija se prividno (virtualno) pojavljuje kao memorija koja ima kapacitet sekundarne memorije (npr

S. Ribaric, AIOR 6

Virtualni memorijski sustav(lat. virtus – hrabrost, snaga, vrlina – snažan, jak sposoban za

djelovanje, no skriven, koji se ne pojavljuje ali se može pojaviti)

• problem kapaciteta glavne memorije rješava se upotrebommemorijske hijerarhije

Uporabom tog arhitektonskog koncepta ostvaruje se sljedeci cilj:

Glavna ili primarna memorija se prividno (virtualno) pojavljujekao memorija koja ima kapacitet sekundarne memorije (npr.nekoliko desetaka ili stotina G bajtova) a brzinu ima jednaku brzini najbrže (ili skoro najbrže) memorije u memorijskoj hijerarhiji.

Page 7: 11. VIRTUALNI MEMORIJSKI SUSTAV - Matematički odsjek · Glavna ili primarna memorija se prividno (virtualno) pojavljuje kao memorija koja ima kapacitet sekundarne memorije (npr

S. Ribaric, AIOR 7

Memorijska hijerarhija:

(M1, M2, M3, ... Mn)

Mi je “podredena” memoriji Mi-1

Procesor komunicira s prvim clanom hijerarhije (M1)

Page 8: 11. VIRTUALNI MEMORIJSKI SUSTAV - Matematički odsjek · Glavna ili primarna memorija se prividno (virtualno) pojavljuje kao memorija koja ima kapacitet sekundarne memorije (npr

S. Ribaric, AIOR 8

ci – cijena po bitutai – vrijeme pristupaSi – kapacitet memorije

Vrijedi: ci > ci+1tai < tai+1Si < Si+1

Primjer:

Page 9: 11. VIRTUALNI MEMORIJSKI SUSTAV - Matematički odsjek · Glavna ili primarna memorija se prividno (virtualno) pojavljuje kao memorija koja ima kapacitet sekundarne memorije (npr

S. Ribaric, AIOR 9

Primjer:

Page 10: 11. VIRTUALNI MEMORIJSKI SUSTAV - Matematički odsjek · Glavna ili primarna memorija se prividno (virtualno) pojavljuje kao memorija koja ima kapacitet sekundarne memorije (npr

S. Ribaric, AIOR 10

Fizicki i logicki adresni prostor

Skup stvarnih, fizickih memorijskih lokacija glavne memorijeoblikuje fizicku memoriju

memorija prikljucena na sabirnicu procesora, odnosno racunala

Skup adresa koje su jednoznacno dodijeljene tim memorijskim (fizickim) lokacijama predstavlja fizicki adresni prostor

Page 11: 11. VIRTUALNI MEMORIJSKI SUSTAV - Matematički odsjek · Glavna ili primarna memorija se prividno (virtualno) pojavljuje kao memorija koja ima kapacitet sekundarne memorije (npr

S. Ribaric, AIOR 11

Logicki adresni prostor skup je logickih adresa. Adresa koje upotrebljava programer ili koju generira program ili proces (dretva) kao najmanja programska jedinica naziva se logicka adresa.

adresa koju generira procesor

Page 12: 11. VIRTUALNI MEMORIJSKI SUSTAV - Matematički odsjek · Glavna ili primarna memorija se prividno (virtualno) pojavljuje kao memorija koja ima kapacitet sekundarne memorije (npr

S. Ribaric, AIOR 12

Odnos izmedu fizickog adresnog prostora (FAP) ilogickog adresnog prostora (LAP):

• LAP = FAP /racunala na bazi 8-bitnih mikroprocesora/• LAP < FAP /racunala na bazi 8-bitnih mikroprocesora –

memorijske banke/• LAP > FAP /16-, 32-, 64-bitni mikroprocesori/ !!!

Problem: za LAP >> FAP odrediti funkciju f:

f: LAP → FAP

Page 13: 11. VIRTUALNI MEMORIJSKI SUSTAV - Matematički odsjek · Glavna ili primarna memorija se prividno (virtualno) pojavljuje kao memorija koja ima kapacitet sekundarne memorije (npr

S. Ribaric, AIOR 13

f: LAP → FAP

LAP = {0, 1, 2, ..., N-1}FAP = {0, 1, 2, ..., M-1}

vrijedi: N >> M

f: LAP → FAP ∪ φ

Page 14: 11. VIRTUALNI MEMORIJSKI SUSTAV - Matematički odsjek · Glavna ili primarna memorija se prividno (virtualno) pojavljuje kao memorija koja ima kapacitet sekundarne memorije (npr

S. Ribaric, AIOR 14

Neka je a∈ LAP

Funkcija f je definirana kao:

f(a) = a’ ako se podatak s virtualnom adresom a nalazi naadresi a’ u fizickoj memoriji (a’ ∈ FAP)

f(a) = φ oznacava PROMAŠAJ (engl. Missing-item fault)

Page 15: 11. VIRTUALNI MEMORIJSKI SUSTAV - Matematički odsjek · Glavna ili primarna memorija se prividno (virtualno) pojavljuje kao memorija koja ima kapacitet sekundarne memorije (npr

S. Ribaric, AIOR 15

Adresno preslikavanje:

Page 16: 11. VIRTUALNI MEMORIJSKI SUSTAV - Matematički odsjek · Glavna ili primarna memorija se prividno (virtualno) pojavljuje kao memorija koja ima kapacitet sekundarne memorije (npr

S. Ribaric, AIOR 16

Denningov model

Page 17: 11. VIRTUALNI MEMORIJSKI SUSTAV - Matematički odsjek · Glavna ili primarna memorija se prividno (virtualno) pojavljuje kao memorija koja ima kapacitet sekundarne memorije (npr

S. Ribaric, AIOR 17

Denningov model ima (namjerno) ugradenu nelogicnost:

Tablica preslikavanja ima broj elemenata jednak broju adresau logickom prostoru (kapacitet sekundarne memorije)?!

Broj registara potreban za izvedu tablice preslikavanjapremašuje kapacitet fizicke memorije

Tablicu preslikavanja treba smanjiti!

Page 18: 11. VIRTUALNI MEMORIJSKI SUSTAV - Matematički odsjek · Glavna ili primarna memorija se prividno (virtualno) pojavljuje kao memorija koja ima kapacitet sekundarne memorije (npr

S. Ribaric, AIOR 18

Rješenje:

Element u tablici preslikavanja neka sadrži adresu bloka podataka umjesto adrese pojedinacno naslovljavanog podatka(u širem smislu te rijeci)

Dijeljenje logickog i fizickog adresnog prostora na blokove!

Blokovi = stranice /ako su cvrste duljine/Blokovi = segmenti /ako su promjenjive duljine/

Page 19: 11. VIRTUALNI MEMORIJSKI SUSTAV - Matematički odsjek · Glavna ili primarna memorija se prividno (virtualno) pojavljuje kao memorija koja ima kapacitet sekundarne memorije (npr

S. Ribaric, AIOR 19

Stranicenje (engl. Paging)

Page 20: 11. VIRTUALNI MEMORIJSKI SUSTAV - Matematički odsjek · Glavna ili primarna memorija se prividno (virtualno) pojavljuje kao memorija koja ima kapacitet sekundarne memorije (npr

S. Ribaric, AIOR 20

Translacija zadane virtuane adrese “p-w”u fizicku adresu “q-w”:

VA ← “p-w”, FAULT ← 0READ ← 1MA(q) ← PAGETABLE(VA(p)),

MA(w) ← VA(w)IF (MA(q) = 0) THEN

FAULT ← 1,END

Page 21: 11. VIRTUALNI MEMORIJSKI SUSTAV - Matematički odsjek · Glavna ili primarna memorija se prividno (virtualno) pojavljuje kao memorija koja ima kapacitet sekundarne memorije (npr

S. Ribaric, AIOR 21

Funkcija translacije adrese:

Page 22: 11. VIRTUALNI MEMORIJSKI SUSTAV - Matematički odsjek · Glavna ili primarna memorija se prividno (virtualno) pojavljuje kao memorija koja ima kapacitet sekundarne memorije (npr

S. Ribaric, AIOR 22

Omjer pogotka H (engl. Hit ratio)

H – vjerojatnost da se logicka adresa koja je generiranaod procesora odnosi na informaciju koja se nalazi u glavnojmemoriji (M1)

M1, N1 - broj pozivanjaM2, N2 - broj pozivanja

H = N1 / (N1 + N2)

Page 23: 11. VIRTUALNI MEMORIJSKI SUSTAV - Matematički odsjek · Glavna ili primarna memorija se prividno (virtualno) pojavljuje kao memorija koja ima kapacitet sekundarne memorije (npr

S. Ribaric, AIOR 23

Omjer promašaja (engl. Miss ratio)

Miss_ratio = 1 – H

Page 24: 11. VIRTUALNI MEMORIJSKI SUSTAV - Matematički odsjek · Glavna ili primarna memorija se prividno (virtualno) pojavljuje kao memorija koja ima kapacitet sekundarne memorije (npr

S. Ribaric, AIOR 24

Performansa memorijskog sustava zavisi od:

• statistickih svojstava pozivanja/ redoslijed i frekvencija pojavljivanja logickih adresa/• velicine bloka (stranice) i kapaciteta glavne memorije• strategije zamjene stranica i tehnike adresnog preslikavanja

Page 25: 11. VIRTUALNI MEMORIJSKI SUSTAV - Matematički odsjek · Glavna ili primarna memorija se prividno (virtualno) pojavljuje kao memorija koja ima kapacitet sekundarne memorije (npr

S. Ribaric, AIOR 25

Lokalnost

Vremenska lokalnost – ocituje se u tomu što ce program ubliskoj buducnosti naslovljavati (referencirati) oneprogramske i podatkovne objekte koje je naslovljavao i ubližoj prošlosti.

Prostorna lokalnost – se manifestira u tomu što ce programnaslovljavati u skoroj buducnosti one programske ipodatkovne objekte koji imaju adrese bliske onima koje suupotrebljavane u bližoj prošlosti.

Page 26: 11. VIRTUALNI MEMORIJSKI SUSTAV - Matematički odsjek · Glavna ili primarna memorija se prividno (virtualno) pojavljuje kao memorija koja ima kapacitet sekundarne memorije (npr

S. Ribaric, AIOR 26

Lokalnost – izražena radnim skupom WS(t, h) (engl. Working set).

WS(t, h) predstavlja skup memorijskih lokacija ili blokova koji su u vremenu t referencirani u posljednjih h pozivanja:

WS(t, h) = {i ∈ N i ∈ rk-h, rk-h+1, ... , rk}

skup stranica /blokova/ N = {1, 2, ... , n} koji cine neki program

Page 27: 11. VIRTUALNI MEMORIJSKI SUSTAV - Matematički odsjek · Glavna ili primarna memorija se prividno (virtualno) pojavljuje kao memorija koja ima kapacitet sekundarne memorije (npr

S. Ribaric, AIOR 27

R – slijed naslovljavanja stranica:

R = (r1, r2, ..., rk, ... )

WS(k, h) – skup stranica koje se javljaju u “oknu”naslovljavanja velicine h (gledajuci unatrag u slijedunaslovljavanja stranica).

Primjer:Neka je R = (4, 4, 5, 4, 5, 5, 6, 20, 20, ... ) slijed naslovljavanja stranica

WS(6, 4) = { 4, 5}

k = 1 2 3 4 5 6 7 8( 4 4 5 4 5 5 6 20... )

h = 4

Page 28: 11. VIRTUALNI MEMORIJSKI SUSTAV - Matematički odsjek · Glavna ili primarna memorija se prividno (virtualno) pojavljuje kao memorija koja ima kapacitet sekundarne memorije (npr

S. Ribaric, AIOR 28

Primjer:Nacin smještanja stranica:• potpuno asocijativno

preslikavanjeNacin zamjene stranica:• LRU algoritam

zamjene stranica

Page 29: 11. VIRTUALNI MEMORIJSKI SUSTAV - Matematički odsjek · Glavna ili primarna memorija se prividno (virtualno) pojavljuje kao memorija koja ima kapacitet sekundarne memorije (npr

S. Ribaric, AIOR 29

Nacin smještanja stranica odreduje kako se stranice iz sekundarnememorije preslikavaju u stranice primarne memorije:

• potpuno asocijativno preslikavanje

• izravno (direktno) preslikavanje

• skupno asocijativno preslikavanje

Page 30: 11. VIRTUALNI MEMORIJSKI SUSTAV - Matematički odsjek · Glavna ili primarna memorija se prividno (virtualno) pojavljuje kao memorija koja ima kapacitet sekundarne memorije (npr

S. Ribaric, AIOR 30

Potpuno asocijativnopreslikavanje:

-stranica iz sekundarnememorije može se se smjestitina bilo koji slobodni stranicniprikljucak

Page 31: 11. VIRTUALNI MEMORIJSKI SUSTAV - Matematički odsjek · Glavna ili primarna memorija se prividno (virtualno) pojavljuje kao memorija koja ima kapacitet sekundarne memorije (npr

S. Ribaric, AIOR 31

Izravno preslikavanje:- svaka stranica iz sekundarne memorije može se smjestiti samona odredeni stranicni prikljucak:

j = i (modulo Bp)

Stranica iz sekundarne memorije sastranicnim brojem i smješta se na stranicni prikljucak j; Bp – broj stranicnih prikljucaka

Page 32: 11. VIRTUALNI MEMORIJSKI SUSTAV - Matematički odsjek · Glavna ili primarna memorija se prividno (virtualno) pojavljuje kao memorija koja ima kapacitet sekundarne memorije (npr

S. Ribaric, AIOR 32

Skupno asocijativno preslikavanje (engl. Set associative):Stranicni prikljucci primarne memorije grupirani suu skupove tako da je dopušteno preslikavanje straniceiz sekundarne memorije u bilo koji prikljucak kojipripada odgovarajucem skupu

Stranica s indeksomi iz sekundarnememorije može se

prikljuciti na bilo kojislobodni prikljucakskupine j:

j = i (modulo Bs)

Bs = Q – broj skupova

Page 33: 11. VIRTUALNI MEMORIJSKI SUSTAV - Matematički odsjek · Glavna ili primarna memorija se prividno (virtualno) pojavljuje kao memorija koja ima kapacitet sekundarne memorije (npr

S. Ribaric, AIOR 33

Algoritmi zamjene stranica

Situacija:- nova se stranica iz sekundarne memorije treba prenijeti u glavnu memoriju

a u njoj nema slobodnog stranicnog prikljucka

Odluka:- koja ce se stranica iz glavne memorije odstraniti i na taj nacin osloboditi

stranicni prikljucak

Algoritmi zamjene:- Slucajni izbor- FIFO- LRU (engl. Least Recently Used)- OPT! (optimalna strategija zamjene stranica zahtijeva potpuno

znanje o buducim referenciranjima stranica)

Page 34: 11. VIRTUALNI MEMORIJSKI SUSTAV - Matematički odsjek · Glavna ili primarna memorija se prividno (virtualno) pojavljuje kao memorija koja ima kapacitet sekundarne memorije (npr

S. Ribaric, AIOR 34

Primjer višekorisnickog virtualnog

sustava