Sunteți pe pagina 1din 23

Curs 8 Managementul memoriei

1 Probleme de proiectare a sistemelor cu paginare 2 Segmentarea

Probleme de proiectare a sistemelor cu paginare Politici de alocare globale versus locale (1)

Configuraia iniial Algoritm de nlocuire local a paginii (Fig. b) Algoritm de nlocuire global a paginii (Fig. c)

Politici de alocare globale versus locale (2)

Controlul ncrcrii memoriei


n pofida existenei unor modele bune sistemul se poate suprancrca cnd algoritmul PFF indic
Existena unor procese care au nevoie de mai multe pagini i nici un proces nu poate dezaloca pagini

Soluia este reducerea numrului de procese care au nevoie de spaiu de memorie


Prin transferarea pe disc a unor procese Reconsiderarea gradului de multiprogramare

Dimensiunea paginii
Pagin de dimensiune mic Avantaje
Fragmentare intern mic Adaptare mai bun la diferite structuri de date sau seciuni de cod

Dezavantaje
Pentru anumite procese sunt necesare pagini mai multe sau sunt necesare pagini mai mari

Spaii de adresare separate pentru date i cod

Un singur spaiu de adresare Spaii de adresare separate


6

Pagini partajate

Dou procese care partajeaz acelai program care partajeaz tabela sa de pagini
7

Politica de curare
Este necesar un proces care s ruleze n fundal,numit paging daemon(demon de paginare) care inspecteaz periodic starea memoriei:
Cnd dou cadre sunt libere acesta va selecta i evacua pagini utiliznd un algoritm de nlocuire Sau poate utiliza o list circular ca algoritm de nlocuire

Implicarea SO n paginare
SO se implic de 4 ori n paginare: 1. Crearea proceselor

Determin dimensiunea programului Creeaz tabela de pagini

2.

Execuia proceselor
Resetarea MMU(Memory Management Unit) pentru noi procese Golirea TLB(Translation Lookaside Buffer)

3.

La generarea unui defect de pagin


Determinarea adresei virtuale care a generat eroarea Alocarea i dezalocarea paginilor

4.

Finalizarea execuiei unui proces


Eliberarea tabelei de pagini i a paginilor
9

Segmentarea
ntr-un spaiu de adresare unidimensional cu tabele de pagini n cretere exist posibilitatea ca la un moment dat acestea s se suprapun. Din acest motiv au aprut segmentele care permit fiecrei tabele de pagini s-i modifice dimensiunea n mod independent. Segmentele sunt spaii de adresare independente. Segmentarea permite partajarea de date sau cod ntre mai multe programe.

10

Comparaie ntre paginare i segmentare


Consideraie Programatorul trebuie s tie ce tehnic se utilizeaz? Cte spaii contigue de adresare exist? Spaiul de adresare total poate depi dimensiunea memoriei? Datele i codul pot fi identificate i protejate separat? Tabelele de pagini de dimensiune variabil pot fi gestionate uor? Partajarea codului ntre utilizatori este facil? De ce a fost inventat tehnica? Nu 1 Da Nu Nu Nu Pentru a simula un spaiu de adresare contiguu mai mare fr a achiziiona mai mult memorie Paginare Da Mai multe Da Da Da Da Pentru a permite ca zona de date i zona de cod s fie dou zone de adresare logice independente ajutnd astfel la protecia i partajarea acestora.
11

Segmentare

Implementarea segmentrii

(a)-(d) Apariia fragmentrii externe (e) Dispariia fragmentrii externe prin compactare
12

Segmentare cu paginare: Pentium (1)

Un selector specific Pentium


13

Segmentare cu paginare: Pentium (2)

Descriptor de segment de cod pentru Pentium Diferene minore pentru descriptorii segmentului de date
14

Segmentare cu paginare: Pentium (3)

Translatarea unei perechi(selector,deplasament) n adres fizic


15

Segmentare cu paginare: Pentium (4)

Maparea unei adrese liniare n adres fizic


16

De tiut...
1. 2. 3. Probleme de proiectare a sistemelor cu paginare. Segmentarea. Diferene dintre paginare i segmentare.

4.
5. 6. 7. 8. 9.

Translatarea unei perechi (selector,deplasament) n adres fizic n cazul segmentrii pure.


Translatarea unei perechi (selector,deplasament) n adres fizic n cazul segmentrii paginate. Ce reprezint fragmentarea extern? Ce reprezint un selector? Ce reprezint un descriptor? Ce reprezint algoritmul PFF?

10. Cum se calculeaz rata de defecte de pagin?


17

1. O pagin se poate regsi n dou seturi de lucru simultan? 2. Explicai diferenele dintre fragmentarea intern i fragmentarea extern. 3. Scriei un program care simuleaz un sistem de paginare.Utilizatorul va selecta algoritmul de paginare (FIFO,LRU i cel puin un altul la alegere). 4. Dac o pagin este partajat ntre dou procese este posibil ca o pagin s fie read-only pentru un proces i read-write pentru cellalt proces? Presupunei 2 cazuri: existena segmentrii i lipsa acesteia.

De tiut...

De tiut...
Algoritmul FIFO poate lucra cu:
a) b) c) d) Algoritmi de alocare local Algoritmi de alocare global Algoritmi de alocare local i global Nici una din variante

De tiut...
Algoritmul LRU poate lucra cu:
a) b) c) d) Algoritmi de alocare local Algoritmi de alocare global Algoritmi de alocare local i global Nici una din variante

De tiut...
Algoritmul WSclock poate lucra cu:
a) b) c) d) Algoritmi de alocare local Algoritmi de alocare global Algoritmi de alocare local i global Nici una din variante

De tiut...
Algoritmul setului de lucru poate lucra cu:
a) b) c) d) Algoritmi de alocare local Algoritmi de alocare global Algoritmi de alocare local i global Nici una din variante

Bibliografie
A. Silberschatz, P. Galvin, Operating System Concepts, John Wiley and Sons Inc., 2005, pag 297-312, capitolul 9. A. Tanembaum, Modern Operating Systems, Prentice Hall, 2007, pag 216-254. Gh. Dodescu, Sisteme de operare, Ed. Economic, 2003, pag 129-195.

23

S-ar putea să vă placă și