230 likes | 429 Views
Managementul memoriei. Curs 8. 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)
E N D
Managementul memoriei Curs 8 1 Probleme de proiectare a sistemelor cu paginare 2Segmentarea 1
Probleme de proiectare a sistemelor cu paginarePolitici 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)
Controlul încărcării memoriei În pofida existenței unor modele bune 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
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
Spații de adresare separate pentru date și cod Un singur spațiu de adresare Spații de adresare separate
Pagini partajate Două procese care partajează același program care partajează tabela sa de pagini
Politica de curățare Este necesar un proces care să ruleze în fundal,numit paging daemon(demon de paginare) care inspectează periodic starea memoriei: Când două cadre sunt libere acesta va selecta și evacua pagini utilizând 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: Crearea proceselor Determină dimensiunea programului Creează tabela de pagini Execuția proceselor Resetarea MMU(Memory Management Unit) pentru noi procese Golirea TLB(Translation Lookaside Buffer) La generarea unui defect de pagină Determinarea adresei virtuale care a generat eroarea Alocarea și dezalocarea paginilor Finalizarea execuției unui proces Eliberarea tabelei de pagini și a paginilor
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. Segmentele sunt spații de adresare independente. Segmentarea permite partajarea de date sau cod între mai multe programe.
Implementarea segmentării (a)-(d) Apariția fragmentării externe (e) Dispariția fragmentării externe prin compactare
Segmentare cu paginare: Pentium (1) Un selector specific Pentium
Segmentare cu paginare: Pentium (2) Descriptor de segment de cod pentru Pentium Diferențe minore pentru descriptorii segmentului de date
Segmentare cu paginare: Pentium (3) Translatarea unei perechi(selector,deplasament) în adresă fizică
Segmentare cu paginare: Pentium (4) Maparea unei adrese liniare în adresă fizică
De știut... Probleme de proiectare a sistemelor cu paginare. Segmentarea. Diferențe dintre paginare și segmentare. Translatarea unei perechi (selector,deplasament) în adresă fizică în cazul segmentării pure. Translatarea unei perechi (selector,deplasament) în adresă fizică în cazul segmentării paginate. Ce reprezintă fragmentarea externă? Ce reprezintă un selector? Ce reprezintă un descriptor? Ce reprezintă algoritmul PFF? Cum se calculează rata de defecte de pagină? 17
De știut... • O pagină se poate regăsi în două seturi de lucru simultan? • Explicați diferențele dintre fragmentarea internă și fragmentarea externă. • Scrieți un program care simulează un sistem de paginare.Utilizatorul va selecta algoritmul de paginare (FIFO,LRU și cel puțin un altul la alegere). • Dacă o pagină este partajată între două procese este posibil ca o pagină să fie read-only pentru un proces și read-write pentru celălalt proces? Presupuneți 2 cazuri: existența segmentării și lipsa acesteia.
De știut... • Algoritmul FIFO poate lucra cu: • 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: • 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: • 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: • 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