Sunteți pe pagina 1din 19

Curs 9

Managementul memoriei

1 Probleme de proiectare a sistemelor cu paginare


2 Segmentarea

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

• Configurația inițială
• Algoritm de înlocuire locală a paginii (Fig. b)
• Algoritm de înlocuire globală a paginii (Fig. c) 2
Politici de alocare globale versus locale (2)

3
Controlul încărcării memoriei
• Sistemul se poate supraîncărca când algoritmul PFF
indică
– Existența unor procese care au nevoie de mai multe
pagini și nici un proces nu poate dezaloca pagini
• Soluția este reducerea numărului de procese care au
nevoie de spațiu de memorie
– Prin transferarea pe disc a unor procese
– Reconsiderarea gradului de multiprogramare

4
Dimensiunea paginii
Pagină de dimensiune mică
• Avantaje
– Fragmentare internă mică
– Adaptare mai bună la diferite structuri de date
sau secțiuni de cod
• Dezavantaje
– Pentru anumite procese sunt necesare pagini
mai multe sau sunt necesare pagini mai mari

5
Spații de adresare separate
pentru date și pentru cod

Un singur spațiu de adresare Spații de adresare separate

6
Pagini partajate

Două procese care partajează același program care partajează tabela sa de pagini

7
Politica de curățare
• A daemon is an autonomous system process that periodically
performs some housekeeping task.
• Discutăm despre daemon și nu demon: demon = evil spirit; daemon =
attendant spirit (between human and god); daemon = daemon” is Greek for “helper”.
• Sistemele de operare sunt prevăzute cu paging daemons care
inspectează periodic starea memoriei. Acest tip de proces
pregătește sistemul pentru înlocuirea unor pagini în memorie
înainte de a apare propriu-zis nevoia de înlocuire. Acesta va
selecta și evacua pagini utilizând un algoritm de înlocuire a
paginilor.
• Rulați următoarele comenzi în terminalul Ubuntu
– $ ps –eo tty,pid,comm|grep ^?
– $ ps –U 0 -o tty,pid,comm|grep ^?

8
Implicarea SO în paginare
SO se implică de 4 ori în paginare:
1. Crearea proceselor
 Determină dimensiunea programului ($ps –eo pid,sz)
 Creează tabela de pagini
2. Execuția proceselor
 Resetarea UMM 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 execuției unui proces
 Eliberarea tabelei de pagini și a paginilor
9
Segmentarea

• Într-un spațiu de adresare unidimensional cu tabele de


pagini în creștere există posibilitatea ca la un moment dat
acestea să se suprapună.
• Din acest motiv au apărut segmentele care permit fiecărei
tabele de pagini să-și modifice dimensiunea în mod
independent.

10
Comparație între paginare și segmentare
Considerație Paginare Segmentare
Programatorul trebuie să știe ce Nu Da
tehnică se utilizează?
Câte spații contigue de adresare 1 Mai multe
există?
Spațiul de adresare total poate Da Da
depăși dimensiunea memoriei?
Datele și codul pot fi identificate și Nu Da
protejate separat?
Tabelele de pagini de dimensiune Nu Da
variabilă pot fi gestionate ușor?
Partajarea codului între utilizatori Nu Da
este facilă?
De ce a fost inventată tehnica? Pentru a simula un spațiu de Pentru a permite ca zona de date și
adresare contiguu mai mare zona de cod să fie două zone de
fără a achiziționa mai multă adresare logice independente
memorie ajutând astfel la protecția și
partajarea acestora.

11
Implementarea segmentării

(a)-(d) Apariția fragmentării externe


(e) Dispariția fragmentării 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

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. Care sunt problemele de proiectare a sistemelor cu paginare.
2. Definiți segmentarea.
3. Prezentați diferențele dintre paginare și segmentare.
4. Cum se realizează translatarea unei perechi (selector,deplasament) în
adresă fizică în cazul segmentării pure.
5. Cum se realizează translatarea unei perechi (selector,deplasament) în
adresă fizică în cazul segmentării paginate.
6. Ce reprezintă fragmentarea externă?
7. Ce reprezintă un selector?
8. Ce reprezintă un descriptor?
9. Ce reprezintă PFF?
10. Cum se calculează rata de defecte de pagină?
11. Cum poate preveni fenomenul de thrashing? Precizați mai multe
posibilități.
12. Prezentați următoarele utilitare de monitorizare a proceselor: top și
htop.
17
De știut...

1. O pagină se poate regăsi în două seturi de lucru simultan?


2. Care este diferența dintre fragmentarea internă și cea externă?
3. Dacă o pagină este partajată între 2 procese este posibil ca o pagină
să fie read-only pentru procesul 1 și read write pentru procesul 2?
Presupuneți că există sau nu segmentare.

18
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.

19

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