17. Tipuri de Memorie Si Memoria Virtuala

27
Răzvan Daniel ZOTA Facultatea de Cibernetică, Statistică şi Informatică Economică [email protected] http://zota.ase.ro/bti Bazele Tehnologiei Informaţiei

description

bti

Transcript of 17. Tipuri de Memorie Si Memoria Virtuala

Page 1: 17. Tipuri de Memorie Si Memoria Virtuala

Răzvan Daniel ZOTAFacultatea de Cibernetică, Statistică şi

Informatică Economică[email protected]

http://zota.ase.ro/bti

Bazele Tehnologiei Informaţiei

Page 2: 17. Tipuri de Memorie Si Memoria Virtuala

2

Conţinut

• Memoria – tipuri de memorie• Memoria virtuală• Algoritmi de inter-schimbare a paginilor în cazul MV

Page 3: 17. Tipuri de Memorie Si Memoria Virtuala

3

O ierarhie a memoriei

Regiştrii UCP Cache Memoria principală Dispozitive I/ E

Dimensiune 200 B 64 KB 32 MB 2 GBViteza 5 ns 10 ns 100 ns 5 ms

Dimensiuni maxime1 KB (CMOS sau BiCMOS) 4 MB SRAM 4 GB DRAM > 1 GB

Bandwith (MB/sec) 4000-32000 800-5000 400-2000 4-32Administrare Compilator Hardware SO SO/ utilizatorBackup Cache Mem principală Disc Banda magnetică

Regiştrii UCP CacheMagistrala de memorieMemoriaprincipală Magistrala I/E Dispozitive

I/E

Page 4: 17. Tipuri de Memorie Si Memoria Virtuala

4

Tipuri de memorie

Regiştrii UCP CacheMagistrala de memorieMemoriaprincipală Magistrala I/E Dispozitive

I/E

Creşte dimensiunea/timpul de acces

Creşte preţul

Page 5: 17. Tipuri de Memorie Si Memoria Virtuala

5

Memoria cache• Tip de memorie mică, ultra-rapidă, aproape de UCP, ce

conţine cele mai recent accesate date sau instrucţiuni de cod– “Cache hit”– “Cache miss” (un bloc de dimensiune fixă de date ce conţine

datele necesare sunt extrase din memoria principală şi introduse în cache)

• Fenomenul de “localizare temporală” ne spune că este foarte probabil să avem nevoie de aceste date curând, deci el este plasat în cache unde poate fi accesat rapid

• Timpul de răspuns necesar pentru un “cache miss” depinde atât de latenţa memoriei cât şi de bandwith – ce determină timpul în care va fi citit întregul bloc. Un “cache miss” administrat hardware va determina de regulă o pauză în funcţionarea CPU – până în momentul în care sunt disponibile datele.

Page 6: 17. Tipuri de Memorie Si Memoria Virtuala

6

Memoria cache şi controller-ul de memorie cache

UCP

Magistrala de sistem

512 MB DRAMMemoria principală

Timp de acces: 60 ns

Subsistemul de Intrare/Ieşire

512 KB SRAM cache

Timp de acces: 10 nsUCC

Unitatea de control cache

Page 7: 17. Tipuri de Memorie Si Memoria Virtuala

7

Unitatea de management a memoriei virtuale

UCP

Magistrala de sistem

Memoria principală DRAM

Subsistemul de Intrare/Ieşire

Memoria SRAM cache

UMMUnitatea de management

a memoriei

Page 8: 17. Tipuri de Memorie Si Memoria Virtuala

8

Magistrala de sistem

Procesor

Magistrala de sistemSlot Slot Slot Slot Slot

Page 9: 17. Tipuri de Memorie Si Memoria Virtuala

9

Magistrala de sistem - echipamente periferice

Procesor

Magistrala de sistemSlot Slot Slot Slot Slot

Memorie

Interfaţă de

monitor

Interfaţă de

imprimantă

Interfaţă de CD-ROM

Interfaţă de floppy-

disc

Page 10: 17. Tipuri de Memorie Si Memoria Virtuala

10

Execuţie concurenţială

Execuţie AşteptareExecuţie Aşteptare

ExecuţieAşteptare Aşteptare

ExecuţieAşteptare

Ex

AşteptareExecuţie

Aşteptare

Programul 1

Programul 2

Programul 3

Page 11: 17. Tipuri de Memorie Si Memoria Virtuala

11

Fragmentarea memoriei

Sistemul de operare

Regiune memorie 1

Regiune 324 KB

Regiune 600 KB

Regiune de memorie neutilizată

Regiune memorie 2

Regiune 100 KB

Regiune de memorie de 1024 KB

Page 12: 17. Tipuri de Memorie Si Memoria Virtuala

12

Segmentarea memoriei

Sistemul de operare

Regiune memorie 1

Program 1 - segment 0

Regiune memorie 2

Regiune memorie 3

Program 1 - segment 1

Program 1 - segment 2

Page 13: 17. Tipuri de Memorie Si Memoria Virtuala

13

Translatarea dinamica a adreselor - segmentarea

Adresa de bază Deplasament

Nr. de segment Deplasament

Segment Adresa de început

012

123456789 Adresa de început a segmentului + deplasamentul

= adresa absolută a segmentului

Sistemul de operare

Regiune memorie 1Program 1 - segment

0Regiune memorie 2

Regiune memorie 3

Program 1 - segment 1

Program 1 - segment 2

Expandarea adresei

Page 14: 17. Tipuri de Memorie Si Memoria Virtuala

14

Translatarea dinamica a adreselor - paginarea

Adresa de bază Deplasament

Nr. de pagină Deplasament

Pagină Adresa de început

012

123456789 Adresa de început a paginii + deplasamentul

= adresa absolută a paginii

Sistemul de operare

Regiune memorie 1Program 1 - pagina 0

Regiune memorie 2

Regiune memorie 3

Program 1 - pagina 1

Program 1 - pagina 2

Expandarea adresei

Page 15: 17. Tipuri de Memorie Si Memoria Virtuala

15

Translatarea dinamica a adreselor – segmentare + paginarea

Adresa de bază Deplasament

Segment Deplasament

Segment Adresa tabelei de pagini

012

123456789

Adresa absolută= adresa reală a paginii +deplasamentul

Expandarea adresei

Pagină

Pagina Adresa reală

012

123456789

Tabela de pagini a segmentului 2

2

3

4

5

51

Page 16: 17. Tipuri de Memorie Si Memoria Virtuala

16

Memoria virtualăMemoria virtuală Reprezintă separarea conceptuală a memoriei

logice disponibile pentru aplicaţii faţă de memoria fizică. În acest mod putem avea o memorie virtuală de dimensiuni mari chiar cu o memorie fizică de dimensiuni reduse.

Memoria virtuală Harta memoriei (memory

map)

Memoria fizică Disk

Pagini de memorie

Page 17: 17. Tipuri de Memorie Si Memoria Virtuala

17

Memoria virtuală• În acelaşi sens, nu toate obiectele (date sau instrucţiuni)

pot fi la un moment dat în memoria principală. Dacă avem memorie virtuală, atunci unele dintre obiecte se pot afla pe disc. Spaţiul de adresare este de regulă împărţit în blocuri de lungime fixă – pagini.

• La un moment dat, paginile se află fie în memoria principală, fie pe disc

• Atunci când se cere un obiect care nu este în cache sau în memoria principală, apare un “page-fault” – moment în care întreaga pagină este mutată de pe disc în memoria principală. Aceste “page-fault” durează mai mult şi atunci sunt controlate de software şi UCP nu face pauză.

• De regulă, UCP comută către alt task atunci când apare un acces la disc. Memoria cache şi memoria principală au aceeaşi relaţie ca şi cea existentă între memoria principală şi disc.

Page 18: 17. Tipuri de Memorie Si Memoria Virtuala

18

Memoria virtuală• În orice moment, un calculator rulează mai multe procese, fiecare având propriul

spaţiu de adrese de memorie. Ar fi foarte costisitor să se dedice un întreg spaţiu de adresare pentru fiecare proces, având în vedere că multe dintre procese folosesc doar o mică parte a spaţiului propriu de adrese. A apărut astfel necesitatea partajării unei părţi a memoriei între mai multe procese.

• Acest procedeu poartă numele de “memorie virtuală” – memoria fizică se divide în blocuri care sunt alocate diferitelor procese.

• Inerentă unei astfel de abordări este o schemă de protecţie ce restricţionează accesul proceselor la blocuri ce aparţin altor procese. Majoritatea formelor de memorie virtuală reduc, de asemenea, timpul de pornire a unui program, deoarece nu tot codul sau datele trebuie să fie deja în memoria fizică înainte ca programul să înceapă.

• Nu însă partajarea între procese a memoriei este adevăratul motiv pentru care s-a inventat memoria virtuală. Dacă un program devine prea mare pentru memoria fizică, este sarcina programatorului să îl facă să încapă în ea. Au rezultate acele suprapuneri (overlay).

• Blocurile de memorie în cazul memoriei virtuale se numesc pagini sau segmente. UCP foloseşte adrese virtuale ce sunt translatate (hardware cât şi software) în adrese fizice ce accesează memoria principală. Acest procedeu se numeşte procedeul de mapare a memoriei sau de translatare a adreselor. Astăzi memoria virtuală intervine la nivel de memorie principală şi disc magnetic.

Page 19: 17. Tipuri de Memorie Si Memoria Virtuala

19

Memoria virtualăCererea de pagini (demand paging) Atunci când o pagină de memorie este referită (fie că este vorba despre cod sau date ) şi ea

nu se află în memorie atunci ea este adusă de pe disc şi se re-execută instrucţiunea

 

Memoria fizică Hard disc

Programul A

Programul B

Page 20: 17. Tipuri de Memorie Si Memoria Virtuala

20

Memoria virtuală  Regula spune că cererile de pagini din

memoria externă (page faults) se produc rareori.

 Tabela de pagini necesită prezenţa unui bit

“rezident" care ne arată dacă pagina este sau nu în memorie. Uneori se utilizează termenul "valid" pentru a indica rezidenţa în memorie. O pagină “invalidă" este astfel o pagină nerezidentă sau care are o adresă ilegală.

Este mai logic să avem doi biţi - unul ne indică faptul că pagina este validă iar cel de-al doilea ne arată dacă pagina este sau nu în memorie.

11110

0

Nr paginii Bit valid/invalid

Tabela de pagini

10

10

Nr paginii Bit valid/invalid

Rezident

Page 21: 17. Tipuri de Memorie Si Memoria Virtuala

21

Memoria virtuală Paşii ce se urmăresc în cazul unui “page fault” 1. Procesul necesită o pagină ce nu este rezidentă în memorie.

2. Verifică în tabela de pagini dacă referinţa de memorie este validă sau nu.

3. Dacă este validă dar pagina nu este rezidentă, se încearcă obţinerea acesteia din memoria secundară.

4. Se caută şi se alocă un cadru (frame) liber (o pagină de memorie fizică neutilizată în prezent – poate fi necesară eliberarea unei pagini de memorie).

5. Se planifică o operaţie de disc pentru a se citi acea pagină din memoria secundară în cadrul nou alocat.

6. După scrierea paginii în memorie se modifică tabela de pagini - pagina este acum rezidentă.

 • Se reporneşte instrucţiunea ce a generat page fault. 

Page 22: 17. Tipuri de Memorie Si Memoria Virtuala

22

Memoria virtuală

Paşii administrării unui “page fault”

Se încarcă P

Tabela de pagini

1

2Referinţă la tabela de

paginiTrap

Sistemul de Operare

3 Obţinerea paginii din memoria

secundară

Cadru liber de memorie

4 Copierea paginii în memoria principală

Memoria fizică

5 Refacerea tabelei de

pagini

6 Repetarea instrucţiunii

Page 23: 17. Tipuri de Memorie Si Memoria Virtuala

23

Memoria virtuală – înlocuirea paginilor

1. Se caută pagina pe disc.2. Se caută un cadru liber. a. Dacă există, se foloseşte b. Altfel, se selectează o pagină “victimă” c. Se scrie pagina “victimă” pe disc. 3. Se citeşte noua pagină în cadrul eliberat. Se modifică

tabela de pagini. 4. Se reporneşte procesul. 

În cazul supra-alocării memoriei trebuie să renunţăm la ceva deja existent în memorie.

Supra-alocarea apare atunci când programele au nevoie de mai multe pagini de memorie decât cele existente fizic.

Abordare: Dacă nici o pagină fizică nu este liberă, se caută una care nu este utilizată la momentul respectiv şi se eliberează, urmărind următorii paşi:

Page 24: 17. Tipuri de Memorie Si Memoria Virtuala

24

Memoria virtuală – înlocuirea paginilor

Pagina

Bit valid/invalid

p1p2

vi

Victima1

Copierea paginii

“victimă” pe disc

p1

p23Copierea paginii

necesare de pe disc în memorie

SWAP2

Bitul se modifică în “invalid”

4Bitul se

modifică în “valid”Tabela de

pagini Memoria fizică

Funcţionarea mecanismului de înlocuire a paginilor

Page 25: 17. Tipuri de Memorie Si Memoria Virtuala

25

Memoria virtuală – înlocuirea paginilor

Algoritmi de înlocuire a paginilor În momentul supra-alocării putem fie interschimba pagini de pe disc, fie supra-scrie anumite pagini. Ce pagini vor fi înlocuite?- pentru a minimiza numărul de page faults. Exemplul unui şir de referinţă pentru pagini de memorie ce vor fi executate:Şir de referinţă: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5 

FIFO Uşor de implementat dpdv conceptual.Se poate folosi fie un “time-stamp” pentru pagini, fie o organizare într-o coadă. (Coada reprezintă implementarea cea mai uşoară)

1

2

3

5

1

2

4

510 “page faults”

4 3

Şir de referinţă: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5

Page 26: 17. Tipuri de Memorie Si Memoria Virtuala

26

Memoria virtuală –înlocuirea paginilor

Înlocuirea optimă 

• Reprezintă o politică de înlocuire a paginilor care au cea mai mică rată “page fault”.

• Algoritmul: se înlocuieşte pagina care nu va fi utilizată pentru cea mai lungă perioadă de timp.

• Practic imposibil de implementat.

1

2

3

4

6 “page faults”

4 5

Şir de referinţă: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5

Page 27: 17. Tipuri de Memorie Si Memoria Virtuala

27

Memoria virtuală – înlocuirea paginilor

Metoda LEAST RECENTLY USED ( LRU ) – “Cea mai puţin recent folosită pagină”

– Se înlocuieşte pagina care nu a fost utilizată pentru cea mai mare perioadă de timp.– Rezultatele sunt bune; dificultatea apare la implementare.– Variante de implementare:

•  ”Time stamp” pentru pagini - înregistrarea ultimei utilizări.• Stivă de pagini – se scot paginile utilizate şi se introduc în vârful stivei

Ambele metode necesită facilităţi hardware (trebuie făcută reactualizare după fiecare instrucţiune), de aceea este rar utilizată în practică.

1

2

3

5

4

4 3

58 “page faults”

Şirul de referinţă: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5