tefan Stncescu PARTEA II SISTEME DE OPERARE CURSUL

  • Slides: 27
Download presentation
Ştefan Stăncescu PARTEA II SISTEME DE OPERARE CURSUL 10 GESTIUNE DE MEMORIE 1

Ştefan Stăncescu PARTEA II SISTEME DE OPERARE CURSUL 10 GESTIUNE DE MEMORIE 1

GESTIUNE DE MEMORIE Memoria principala – cf. arh von Neumann (nepermanenta – rapida )

GESTIUNE DE MEMORIE Memoria principala – cf. arh von Neumann (nepermanenta – rapida ) : • Sir de “celule” care primesc, pastreaza si modifica informatii • Spatiu de cod si date in care programele devin procese Gestiunea memoriei : • Gestiunea spatiului liber/ocupat de memorie • Alocare/dealocare de spatii la procese in lucru • Transfer intre memorii in ierarhie (MP – disc) – swap • Gestiunea memoriei virtuale – alocare/dealocare pagini 2

GESTIUNE DE MEMORIE Memorii fara GM Programe utilizator OS DD (I/E) Programe utilizator OS

GESTIUNE DE MEMORIE Memorii fara GM Programe utilizator OS DD (I/E) Programe utilizator OS OS MSDOS -Un singur program utilizator in memorie – cooperativ cu SO – se incarca succesiv urmatorul Toate resursele – la vedere – fara securitate – fara comutare Multiproces – cu fire colaborative cu partajarea UC aplicatii dedicate – sisteme embedded 3

GESTIUNE DE MEMORIE Memoria cu partitii fixe Procese independente cu partajarea UC – time

GESTIUNE DE MEMORIE Memoria cu partitii fixe Procese independente cu partajarea UC – time sharing Partitia 1 Partitia 2 Partitia 3 Partitia 4 Partitia 5 • procese repartizate in spatii fixe • fiecare partitie procesele ruleaza succesiv pe loturi de procese (batch processing) • coada la fiecare partitie • procese repartizate la partitii potrivite ca dimensiune ÞPartitii goale cu procese in asteptare la alta coada => coada unica cu aprecierea adaptarii cererii de memorie la dimensiunea partitiei libere 4

GESTIUNE DE MEMORIE Memoria cu partitii variabile - swap Programele stau pe memoria externa

GESTIUNE DE MEMORIE Memoria cu partitii variabile - swap Programele stau pe memoria externa – disc Partitia 1 Partitia 2 Partitia 3 Partitia 4 Partitia n • La aparitia necesitatii de rulare programul se incarca de pe disc intr-o zona de memprie principala de dimensiune stabilita instant • La incheiere rulare, se salveaza pe disc rezultatele si se elibereaza zona ocupata de mem. Princ. • Disc memoria principala = swap => Alocare / dealocare/contabilizare zone libere 5

GESTIUNE DE MEMORIE Memoria cu partitii variabile – swap PROCES F PROCES C PROCES

GESTIUNE DE MEMORIE Memoria cu partitii variabile – swap PROCES F PROCES C PROCES D 3 Prtitia 3 PROCES B PROCES A PROCES D PROCES E PROCES A => Problema compactarii spatiilor libere Alocarea dimensiunii potrivite pentru proces – gestiune goluri

GESTIUNE DE MEMORIE Legea 50% N procese N/2 goluri 1 proces => sus 50%

GESTIUNE DE MEMORIE Legea 50% N procese N/2 goluri 1 proces => sus 50% probabilitate gol/proces jos 50% probabilitate gol/proces ÞTotal 2 procese la 1 gol 7

GESTIUNE DE MEMORIE Legea memoriei nefolosite (N/2) * k. S = M-NS M=NS(1+k/2) f=%

GESTIUNE DE MEMORIE Legea memoriei nefolosite (N/2) * k. S = M-NS M=NS(1+k/2) f=% spatiu gol in mem f=(N/2) * (k. S /M) S = DIM MEDIE PROCES KS= DIM MEDIE GOL M= dim memorie N=procese n/2=goluri (legea 50%) // nr. goluri * dim gol / toata mem f=Nk. S/2 M=Nk. S/2(NS*(1+k/2)) // cu M anterior Þ f=k/(2+k) // f nu depinde decat de k Ex: k=1/2 => f=(1/2)/(2+1/2)=1/5=20% k=1/4 => f=11% 8

GESTIUNE DE MEMORIE Algoritmi de alocare de procese in goluri organizate intr-o lista de

GESTIUNE DE MEMORIE Algoritmi de alocare de procese in goluri organizate intr-o lista de goluri 1. First fit => primul gol suficient pt proces => rapid 2. Next fit => first fit la restul listei => putin mai rau 3. Best fit => c. m. potrivit gol din lista => si mai rau 4. Worst fit => anti best fit, in c. m. mare gol Toate lente prin analiza listei de goluri => sortare, liste separate, etc. 5. Quick fit => liste separate de goluri de dim fixe => Problema=> unirea golurilor mici - merging 9

GESTIUNE DE MEMORIE Modele in gestiunea de spatii de memorie Harta de biti -Bitmap

GESTIUNE DE MEMORIE Modele in gestiunea de spatii de memorie Harta de biti -Bitmap 5 4 9 2 9 1 1 1 0 0 1 1 1 1 1 0 0 0 1 1 1 0 0 0 0 3 3 10

GESTIUNE DE MEMORIE Modele in gestiunea de spatii de memorie Liste inlantuite: 1 5

GESTIUNE DE MEMORIE Modele in gestiunea de spatii de memorie Liste inlantuite: 1 5 0 4 0 2 1 9 1 3 5 0 4 9 1 9 0 3 3 3 100 2 9 11

GESTIUNE DE MEMORIE Modele in gestiunea de spatii de memorie Modificari la liste inlantuite

GESTIUNE DE MEMORIE Modele in gestiunea de spatii de memorie Modificari la liste inlantuite A A X B X A B B A X 12

GESTIUNE DE MEMORIE Modele in gestiunea de spatii de memorie Buddy sistem 32 k

GESTIUNE DE MEMORIE Modele in gestiunea de spatii de memorie Buddy sistem 32 k 64 k 128 256 512 A A B C B B 128 256 512 C C 256 512 D C C 256 512 13

GESTIUNE DE MEMORIE Algoritmi de inlocuire a paginilor de memorie virtuala Algoritmul optim Not

GESTIUNE DE MEMORIE Algoritmi de inlocuire a paginilor de memorie virtuala Algoritmul optim Not Recently Used – NRU First In First Out – FIFO Second chance Clock Least. Recently Used - LRU Not Frequently Used - NFU Not Frequently Used – NFU w/Aging Working set - WS WS w/Clock 14

GESTIUNE DE MEMORIE Algoritmul optim Algoritm ideal, nerealizabil Optimalitatea: Se ruleaza programul cu date

GESTIUNE DE MEMORIE Algoritmul optim Algoritm ideal, nerealizabil Optimalitatea: Se ruleaza programul cu date fixate si se gasesc cele mai potrivite inlocuiri de pagini, cunoscand ce pagini vor fi cerute in viitor Succesiunea optima de inlocuiri : La orice intrerupere de lipsa de pagina de mem. virtuala se calculeaza pagina cel mai tarziu ceruta se inlocuieste acea pagina curent ceruta 15

GESTIUNE DE MEMORIE HW adiacent fiecarei pagini furnizeaza info care determina deciziile alg. Bistabilii

GESTIUNE DE MEMORIE HW adiacent fiecarei pagini furnizeaza info care determina deciziile alg. Bistabilii Referire-Modificare: R M celule de memorare cirire- scriere (Reff. – Modify) 0 0 Pagina nereferita, necitita, nescrisa-nemodificata 1 0 Pagina citita recent, nemodificata 0 1 Pagina citita demult, dar modificata atunci 1 1 Pagina citita recent, modificata (recent sau demult) R este sters periodic la IT ceas (“uita” accesari vechi inutile) 16

GESTIUNE DE MEMORIE NRU (not recently used) Foloseste bistabilii RM Clasifica paginile prezente in

GESTIUNE DE MEMORIE NRU (not recently used) Foloseste bistabilii RM Clasifica paginile prezente in memoria fizica cf. RM R M 0 0 Clasa 3 1 0 Clasa 2 0 1 Clasa 1 1 1 Clasa 0 Prioritate minima Prioritate maxima NRU => La PF elimina orice pagina (aleator) din clasa cea mai putin prioritara nevida Simplu, neoptimal, rezonabil de eficient, nu greseste mult 17

GESTIUNE DE MEMORIE FIFO (First In First Out) Foloseste o coada FIFO cu nr.

GESTIUNE DE MEMORIE FIFO (First In First Out) Foloseste o coada FIFO cu nr. de ordine ale paginilor cerute Alg. : Se completeaza coada si se folosesc orice pagini din coada La depasirea cozii (PF) se elimina pagina din frunte (c. m. veche) Simplu, rezonabil de eficient, dar poate elimina pagini des referite 18

GESTIUNE DE MEMORIE Inlocuire cu acordarea unei a doua sanse Foloseste o coada FIFO

GESTIUNE DE MEMORIE Inlocuire cu acordarea unei a doua sanse Foloseste o coada FIFO cu nr. de ordine ale paginilor cerute Foloseste bistabilii R-M Alg. : La PF if (R=0) then inlocuieste //pagina e veche, nereferita else R=0 //considera ca nu a fost citita, desi R=1 pune pagina din fruntea FIFO la coada FIFO //o trateaza ca pe o pagina nou incarcata reia procedseul cu pagina urmatoare (daca e aceeasi, nu o mai iarta) 19

GESTIUNE DE MEMORIE Inlocuire cu prioritate circulara Foloseste o lista circulara in loc de

GESTIUNE DE MEMORIE Inlocuire cu prioritate circulara Foloseste o lista circulara in loc de coada FIFO Foloseste Bistabilii R-M Alg. : La PF if (R=0) then inlocuieste //pagina e veche, nereferita else R=0 //considera ca nu a fost citita, desi R=1 avansaza o pozitie in coada circulara si reia procedeul (daca da peste aceeasi pagina o va elimina) 20

GESTIUNE DE MEMORIE Least Recently Used LRU Foloseste un numarator/registru NR la fiecare pagina

GESTIUNE DE MEMORIE Least Recently Used LRU Foloseste un numarator/registru NR la fiecare pagina Alg. : La fiecare cas IT toate NR sunt incrementate cu R(0/1) // pagina pastreaza ponderea referirilor La PF se elimina pagina cu NR c. m. mic => nu uita referirile vechi si numeroase Solutie: aging = inlocuieste bold text cu toate NR deplasare dreapta si adauga R(0/1) la NR in stanga (msb) 21

GESTIUNE DE MEMORIE Least Recently Used LRU 0 1 1 1 0 0 0

GESTIUNE DE MEMORIE Least Recently Used LRU 0 1 1 1 0 0 0 1 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 1 1 1 0 0 0 1 2 3 2 0 0 0 1 1 1 0 0 1 0 1 1 0 0 0 0 0 1 0 0 1 1 1 0 0 0 0 0 1 1 1 0 3 22

GESTIUNE DE MEMORIE Not Frequently Used - NFU Foloseste un numarator/registru NR de masurare

GESTIUNE DE MEMORIE Not Frequently Used - NFU Foloseste un numarator/registru NR de masurare a timpului si un regitru la fiecare pagina Alg. : La fiecare referire NR este incrementat si incarcat in registrul paginii referite // pagina pastreaza data referirii La PF se elimina pagina cu data cea mai veche(nr. c. m. mic) 23

GESTIUNE DE MEMORIE Pagina Not Frequently Used - NFU C 0 1 2 3

GESTIUNE DE MEMORIE Pagina Not Frequently Used - NFU C 0 1 2 3 4 5 K 0 1 0 1 1 1 00 0 0 0 10 0 0 1 20 0 0 2 1 1 0 0 1 1 0 0 0 0 1 0 0 3 1 0 0 0 1 1 1 0 0 0 0 1 0 0 0 4 0 1 1 0 0 1 1 1 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 1 0 0 0 0 1 0 1 0 0 0 0 0 1 0 1 1 0 0 1 1 1 0 0 0 3 1 0 0 0 4 0 1 0 0 0 5 24

GESTIUNE DE MEMORIE Least Recently Used - LRU /Not Frequently Used – NFU LRU

GESTIUNE DE MEMORIE Least Recently Used - LRU /Not Frequently Used – NFU LRU se actualizeaza la fiecare acces (instructiune) NFU se actualizeaza la fiecare IT (m. m. instructiuni) o pagina poate acumula la o IT m. m. referiri toate accesatele au aceeasi pondere primele accese la inceput de IT (vechi) au aceeasi pondere cu accesele la finele IT (noi) 25

GESTIUNE DE MEMORIE Set de lucru - Working Set Procesele starteaza fara pagini in

GESTIUNE DE MEMORIE Set de lucru - Working Set Procesele starteaza fara pagini in memorie si acumuleaza pagini – cerere de pagini la start Procesele intr-o etapa de lucru acceseaza un set limitat de pagini – localizarea referirii Set de lucru – working set un numar de pagini curente, cand procesul nu are PF Sufocare - thrashing lucrul unui proces fara set de lucru, cu PF frecvente => Algoritmi cu WS – asigura pagini inainte de folosire => prepaging – prevederea existentei inaintea cererii 26

GESTIUNE DE MEMORIE Algoritm cu set de lucru – Working Set Paging Alg. CVT

GESTIUNE DE MEMORIE Algoritm cu set de lucru – Working Set Paging Alg. CVT current virtual time = durata consumata de proces pana in prezent TLU time of last use = continutul registrului de pagina NR Alg: Loop toate paginile si if (R=1) incarca NR cu CVT //pagina e in WS if(R=0 & varsta>T) elimina pagina else //Varsta paginii = CVT-TLU //pagina nu e in WS //pagina e in WS, actualizare NR elimina pagina cu NR min daca exista, sau elimina aleator //toate paginile au R=1 27