Sunteți pe pagina 1din 26

Curs 7

Managementul memoriei

1 Concepte
2 Swapping
3 Memoria virtuală

1
Managementul memoriei
• Programatorii își doresc memorie:
– De dimensiune mare
– Rapidă
– Non volatilă
• Ierarhia memoriilor
– Memorie de dimensiune mică, viteză mare și scumpă – cache
– Memorie de viteză medie și ponderată ca preț – memoria principală
– Memorie de dimensiune mare, viteză mică dar ieftină – hard disk
• Una din principalele funcții ale SO este de a administra
memoria (ierarhia acesteia), care presupune încărcarea și
evacuarea blocurilor de date în/din memoria secundară.

2
Monoprogramare fără swapping sau paginare

Trei modalități simple de organizare a memoriei


pentru un SO cu un singur proces aflat în execuție.
3
Multiprogramare cu partiții fixe de
memorie

• Partiții fixe de memorie


– Cozi de așteptare separate pentru fiecare partiție
– O singură coadă de așteptare pentru toate partițiile
4
Multiprogramare

Degree of multiprogramming
Utilizarea UCP este dependentă de numărul de procese încărcate
în memorie
5
Relocare și protecție
• Relocare:
– Adresele nu pot fi absolute. Într-un sistem multiprogramat,
memoria principală este în general împărțită de mai multe
procese. Odată ce un proces a fost evacuat pe disc, nu putem
cere ca atunci când acest proces este readus în memorie să fie
încărcat în aceiași regiune. Trebuie să permitem ca un program
să fie relocat în memoria principală.
• Protecție:
– Prin relocare dinamică, un proces are un spațiu de adresare
propriu care nu îl partajează cu alte procese (există excepții).
Soluția mapează spațiul de adresare a fiecărui proces într-o altă
zona fizică de memorie utilizând base register și limit register.
– Fiecare proces este astfel izolat și protejat de accesul nedorit al
altor procese.

6
Translatarea adreselor logice în
adrese fizice
Adresa relativă

Base register Bloc de control a


proceselor
Adresa
absolută

Sumator Program

Date
Limit register
Comparator

Stiva

Întrerupere către SO
Imaginea procesului în
memoria principală

7
Swapping (1)

Alocarea memoriei se schimbă


– Procesele accesează zona de memorie
– Părăsesc zona de memorie
Regiunile hașurate reprezintă zone de memorie
neutilizată
8
Swapping (2)

a) Alocarea de spațiu în memorie pentru un segment de date ce


crește în dimensiune
b) Alocarea de spațiu în memorie pentru un segment de date și
segment de stivă care cresc în dimensiune
9
Managementul memoriei
cu bitmap (harta de biți)

• Alocarea memoriei pentru 5 procese, trei zone libere


și harta de biți corespondentă
• Aceiași informație dar sub formă de listă sortată
după adresă 10
Managementul memoriei
cu liste

Patru combinații posibile pentru procesul X care își încheie execuția

11
Memoria virtuală
Paginare (1)

Poziționarea și modalitatea de funcționare a MMU


12
Paginare (2)

Relația dintre adresele virtuale și adresele fizice din


memorie oferite de tabela de pagini 13
Tabela de pagini (1)

Funcționarea MMU cu 16 pagini virtuale de dimensiune 4 KB


14
Tabela de pagini (2)

O înregistrare a tabelei de pagini


f(nr_pagină_virtuală)=nr_cadru_pagină

15
Memorii asociative (TLB)

16
Dimensiunea paginii
• Linux
$ getconf PAGE_SIZE
• Windows
#include <stdio.h>
#include <windows.h>
int main(void)
{
SYSTEM_INFO si;
GetSystemInfo(&si);
printf("The page size for this system is %u bytes.\n", si.dwPageSize);
return 0;
}
17
Cum aflăm câtă memorie utilizează
procesele?

Lista proceselor 18
Sortăm procesele după memoria

utilizată (1)

19
Sortăm procesele după memoria

utilizată (2)

20
Memoria virtuală
Executați următoarele comenzi:
$ vmstat 5
$ ps ax –o pid,min_flt,maj_flt,cmd |more
$ ps v

21
De știut...
1. Caracterizaţi cazul în care utilizăm tehnica de
multiprogramare pe partiţii de memorie de dimensiune fixă.
2. Cum se realizează translatarea adreselor logice în adrese
fizice?
3. Cum se realizează swapping-ul ?
4. Descrieţi cum se realizează managementul memoriei
utilizând bitmap.
5. Descrieţi cum se realizează managementul memoriei
utilizând liste.
6. Care considerați că este cel mai bun algoritm de plasare a
programelor în memorie în cazul managementul memoriei
cu liste. Justificați
7. Caracterizaţi memoria virtuală.
8. Ce reprezintă TLB.
9. Care este diferența dintre o adresă fizică și una virtuală?
22
De știut...
În care din figurile următoare se reprezintă un model
care poate fi afectat de către un bug al unui program
utilizator?

23
De știut...
Un sistem are suficient spațiu în memoria sa principală pentru
4 programe. Aceste programe sunt inactive jumătate din timp
așteptând operații de I/O. Cât timp UCP se irosește?
Să considerăm un sistem de transfer al paginilor pe disc în
care memoria prezintă următoarele dimensiuni de găuri în
ordine: 10KB, 4KB, 20KB, 18KB, 7KB, 9KB, 12 KB, și 15
KB. Care gaură este aleasă în cazul unor cereri succesive de
memorie de dimensiunea (a) 12 KB, (b) 10 KB, (c) 9 KB în
cazul aplicării algoritmului first fit? Aceiași întrebare pentru
best fit, worst fit, și next fit.
Folosind imaginea din slide-ul 13 precizați care este adresa
fizică corespunzătoare următoarelor adrese virtuale (a) 20
(b)4100 (c) 8300

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

25
Bibliografie
Prezentare video memoria virtuală
partea 1 https://www.youtube.com/watch?v=qcBIvnQt0Bw
partea 2 https://www.youtube.com/watch?v=eSPFB-xF5iM
partea 3 https://www.youtube.com/watch?v=qlH4-oHnBb8
partea 4 https://www.youtube.com/watch?v=59rEMnKWoS4
partea 5 https://www.youtube.com/watch?v=KNUJhZCQZ9c
partea 6 https://www.youtube.com/watch?v=ZjKS1IbiGDA
partea 7 https://www.youtube.com/watch?v=6neHHkI0Z0o
partea 8 https://www.youtube.com/watch?v=bShqyf-hDfg
partea 9 https://www.youtube.com/watch?v=uDzXXnNy544
partea 10 https://www.youtube.com/watch?v=uyrSn3qbZ8U
partea 11 https://www.youtube.com/watch?v=95QpHJX55bM
partea 12 https://www.youtube.com/watch?v=Z4kSOv49GNc
partea 13 https://www.youtube.com/watch?v=3sX5obQCHNA
partea 14 https://www.youtube.com/watch?v=FRvzCrWcFZA
26

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