Manager de memorie

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare

În calcul , managerul de memorie (memory manager în engleză ) este o componentă a sistemului de operare dedicată gestionării memoriei principale disponibile pe computer . Managerul se ocupă de alocarea, delocarea și gestionarea memoriei alocate aplicațiilor și sistemului de operare în sine.

Descriere

Toate sistemele de operare moderne sunt echipate cu memorie virtuală . Managerul de memorie este preocupat să decidă ce blocuri de memorie sunt subutilizate de sistem și, prin urmare, pot fi mutate pe unitatea de disc fără a deprima în mod nejustificat performanța sistemului.

Alte sarcini foarte importante ale acestui modul sunt:

asigura protectie
deoarece procesele utilizatorilor și modulele de sistem pot locui în memorie în același timp, este necesar să se evite că, pentru orice defecțiune, datele sau instrucțiunile unui proces se pot suprapune cu cele ale supervizorului sau ale altui proces de utilizator, creând situații anormale și adesea dezastruoase
asigura transparența
operația de alocare trebuie să fie invizibilă procesului, al cărui progres trebuie să fie independent de locația spațiului de adrese alocat de memorie. Acest lucru permite un proces să fie pus înapoi într-o stare de disponibilitate și ulterior reîncărcat în memorie într-o altă zonă, fără nici un impediment pentru progresul acestuia.
asigura alocarea logică
în general, imaginea unui proces este compusă logic din secțiuni (cod și date) care, chiar dacă sunt plasate fizic în zone de memorie disjuncte, trebuie văzute de proces ca adiacente
permite partajarea codului
într-un sistem multiprogramat, mai mulți utilizatori pot utiliza aceleași programe în același timp, de aceea este necesar un sistem care să permită partajarea codului (aplicațiile software), dar să păstreze datele separate.

Tipuri de alocare

Alocarea unei partiții unice necesită ca stocarea principală să fie împărțită în două partiții principale:

Cu toate acestea, această tehnică nu a fost niciodată luată în considerare, deoarece permite încărcarea unui singur program în memorie, pe lângă sistemul de operare. De la primele sisteme s-a crezut că se introduc partiții și în spațiul utilizatorului. O primă soluție a fost aceea a partițiilor fixe sau statice.

Cu această tehnică, spațiul utilizatorului a fost împărțit într-un număr prestabilit de partiții, de aceeași dimensiune sau de dimensiuni diferite și fiecărui proces i se atribuie, într-un mod exclusiv, o partiție. Această tehnică are, de asemenea, limitări puternice. De fapt, spațiul lăsat liber de un proces nu poate fi niciodată folosit de alții, rămânând neutilizat. În același timp, procesele mai grele decât cea mai mare partiție nu pot fi încărcate și apoi executate.

Ulterior, sa decis modificarea acestei tehnici prin crearea partițiilor dinamice . În această organizație, nu există partiții de dimensiuni predefinite; noi partiții sunt create la cererea proceselor, luându-le dintr-un tabel de partiții de memorie libere. Dacă există două partiții libere adiacente, acestea sunt îmbinate într-o singură partiție. În practică, atunci când ajunge un proces de o anumită dimensiune, acesta este încărcat în memorie într-o partiție liberă, dar spațiul pe care îl va rămâne poate fi folosit de un alt proces.

Pentru a decide partiția în care va fi încărcat un proces, există trei strategii: prima potrivire, cea mai bună potrivire și cea mai proastă potrivire. Prima strategie de potrivire plasează procesul în prima partiție liberă din memoria principală, suficient de mare pentru a o menține. Cu toate acestea, această strategie poate lăsa unele fragmente sau părți ale memoriei neutilizate, destul de numeroase. Cea mai bună strategie de potrivire este ca noul proces să fie plasat în partiție cu dimensiunea cea mai apropiată de dimensiunea procesului. În acest fel, avem tendința de a lăsa fragmente din ce în ce mai mici. Ultima strategie, cea mai proastă potrivire, funcționează mai bine. Se așteaptă ca noul proces să fie alocat celei mai mari partiții de memorie disponibile. Acest lucru este justificat de faptul că în fragmentele rămase, care vor fi mari, pot fi alocate alte procese.

Memorie virtuala

Cu trecerea timpului, însă, procesele care trebuiau efectuate au devenit din ce în ce mai grele, iar amintirile centrale nu mai erau suficiente pentru a le conține. S-a născut memoria virtuală , adică un spațiu de memorie în masă care este folosit ca și cum ar fi o parte a memoriei principale. Poate fi alocat într-o partiție de hard disk dedicată acestui lucru, așa cum se întâmplă cu swap în Linux , sau poate fi o parte a partiției sistemului de operare, așa cum se întâmplă în Windows cu fișierul de paginare . Odată cu apariția memoriei virtuale, au fost concepute alte două tehnici care vă permit să profitați la maximum de această tehnică: paginare și segmentare.

Conform tehnicii de paginare, memoria centrală, inclusiv cea virtuală, este împărțită în blocuri de dimensiuni egale, de obicei destul de mici, în timp ce procesele de intrare sunt împărțite în pagini de aceeași dimensiune ca blocurile. În acest fel, procesul este alocat în mai multe blocuri care, pentru prima dată, pot fi, de asemenea, necontigue. Dacă o pagină necesară procesării este încărcată în memoria virtuală, aceasta este mutată în memoria principală. dacă nu există pagini libere, o pagină încărcată în memoria centrală este preluată și schimbată cu cea de utilizat. Această operațiune se numește swapping .

Informatică Portal IT : accesați intrările Wikipedia care se ocupă cu IT