Documente Academic
Documente Profesional
Documente Cultură
Managementul memoriei
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
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
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
12
Segmentare cu paginare: Pentium (1)
14
Segmentare cu paginare: Pentium (3)
15
Segmentare cu paginare: Pentium (4)
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