Ce este gestionarea memoriei?
Managementul memoriei este procesul de control și coordonare a memoriei computerului, atribuirea unor porțiuni cunoscute sub numele de blocuri diferitelor programe care rulează pentru a optimiza performanța generală a sistemului.
Este cea mai importantă funcție a unui sistem de operare care gestionează memoria primară. Ajută procesele să se deplaseze înapoi și înainte între memoria principală și discul de execuție. Ajută sistemul de operare să țină evidența fiecărei locații de memorie, indiferent dacă este alocată unui proces sau rămâne liberă.
În acest tutorial despre sistemul de operare veți afla:
- Ce este gestionarea memoriei?
- De ce să utilizați gestionarea memoriei?
- Tehnici de gestionare a memoriei
- Ce este Swapping?
- Ce este alocarea memoriei?
- Ce este paginarea?
- Ce este metoda de fragmentare?
- Ce este Segmentarea?
- Ce este încărcarea dinamică?
- Ce este conectarea dinamică?
- Diferența dintre încărcarea statică și dinamică
- Diferența dintre conectarea statică și dinamică
De ce să utilizați gestionarea memoriei?
Iată, sunt motive pentru utilizarea gestionării memoriei:
- Vă permite să verificați câtă memorie trebuie alocată proceselor care decid care procesor ar trebui să obțină memorie la ce oră.
- Urmărește ori de câte ori inventarul este eliberat sau nealocat. Potrivit acestuia, va actualiza starea.
- Alocă spațiul rutinelor aplicației.
- De asemenea, vă asigurați că aceste aplicații nu interferează unele cu altele.
- Ajută la protejarea diferitelor procese unele de altele
- Acesta plasează programele în memorie, astfel încât memoria să fie utilizată pe deplin.
Tehnici de gestionare a memoriei
Iată câteva dintre cele mai importante tehnici de gestionare a memoriei:
Alocare unică contiguă
Este cea mai ușoară tehnică de gestionare a memoriei. În această metodă, toate tipurile de memorie ale computerului, cu excepția unei mici porțiuni rezervate pentru sistemul de operare, sunt disponibile pentru o singură aplicație. De exemplu, sistemul de operare MS-DOS alocă memoria în acest fel. Un sistem încorporat rulează și pe o singură aplicație.
Alocare partiționată
Împarte memoria primară în diverse partiții de memorie, care sunt în mare parte zone adiacente ale memoriei. Fiecare partiție stochează toate informațiile pentru o anumită sarcină sau activitate. Această metodă constă în alocarea unei partiții unei lucrări când pornește și se alocă când se termină.
Gestionarea paginii de memorie
Această metodă împarte memoria principală a computerului în unități de dimensiuni fixe cunoscute sub numele de cadre de pagină. Această unitate de gestionare a memoriei hardware mapează paginile în cadre care ar trebui alocate pe bază de pagină.
Managementul memoriei segmentate
Memoria segmentată este singura metodă de gestionare a memoriei care nu oferă programului utilizatorului un spațiu de adrese liniar și contigu.
Segmentele au nevoie de suport hardware sub forma unui tabel de segmente. Conține adresa fizică a secțiunii în memorie, dimensiune și alte date, cum ar fi biții de protecție a accesului și starea.
Ce este Swapping?
Swapping este o metodă în care procesul ar trebui schimbat temporar din memoria principală în magazinul de suport. Acesta va fi readus ulterior în memorie pentru continuarea executării.
Magazinul de rezervă este un hard disk sau un alt dispozitiv de stocare secundar care ar trebui să fie suficient de mare pentru a găzdui copii ale tuturor imaginilor de memorie pentru toți utilizatorii. De asemenea, este capabil să ofere acces direct la aceste imagini de memorie.
Avantajele schimbului
Iată care sunt avantajele / avantajele majore ale schimbului:
- Oferă un grad mai mare de multiprogramare.
- Permite relocarea dinamică. De exemplu, dacă se utilizează legarea adreselor la momentul execuției, atunci procesele pot fi schimbate în locații diferite. Altfel, în cazul legărilor de compilare și timp de încărcare, procesele ar trebui mutate în aceeași locație.
- Ajută la o mai bună utilizare a memoriei.
- Pierderea minimă a timpului procesorului la finalizare, astfel încât să poată fi aplicată cu ușurință unei metode de planificare bazate pe priorități pentru a-și îmbunătăți performanța.
Ce este alocarea memoriei?
Alocarea memoriei este un proces prin care programelor de calculator li se atribuie memorie sau spațiu.
Aici, memoria principală este împărțită în două tipuri de partiții
- Memorie redusă - Sistemul de operare se află în acest tip de memorie.
- Memorie ridicată - Procesele utilizatorilor sunt păstrate în memorie mare.
Alocarea partiției
Memoria este împărțită în diferite blocuri sau partiții. Fiecare proces este alocat în funcție de cerință. Alocarea partiției este o metodă ideală pentru a evita fragmentarea internă.
Mai jos sunt diferite scheme de alocare a partițiilor:
- Prima potrivire: În acest tip de potrivire, este alocată partiția, care este primul bloc suficient de la începutul memoriei principale.
- Cea mai bună potrivire: alocă procesul partiției care este prima cea mai mică partiție dintre partițiile libere.
- Worst Fit: Alocă procesul partiției, care este cea mai mare partiție suficientă disponibilă liber din memoria principală.
- Următoarea ajustare: este în mare parte similară cu prima ajustare, dar această ajustare caută prima partiție suficientă din ultimul punct de alocare.
Ce este paginarea?
Paginarea este un mecanism de stocare care permite sistemului de operare să recupereze procesele din stocarea secundară în memoria principală sub formă de pagini. În metoda paginării, memoria principală este împărțită în blocuri mici de dimensiuni fixe ale memoriei fizice, care se numește cadre. Dimensiunea unui cadru trebuie păstrată la fel ca cea a unei pagini pentru a avea o utilizare maximă a memoriei principale și pentru a evita fragmentarea externă. Paginarea este utilizată pentru un acces mai rapid la date și este un concept logic.
Ce este fragmentarea?
Procesele sunt stocate și eliminate din memorie, ceea ce creează spațiu liber de memorie, care este prea mic pentru a fi utilizat de alte procese.
Uneori, procesele care nu pot fi alocate blocurilor de memorie, deoarece dimensiunile sale mici și blocurile de memorie rămân mereu neutilizate se numește fragmentare. Acest tip de problemă se întâmplă în timpul unui sistem de alocare a memoriei dinamice atunci când blocurile libere sunt destul de mici, deci nu poate îndeplini nicio cerere.
Două tipuri de metode de fragmentare sunt:
- Fragmentarea externă
- Fragmentarea internă
- Fragmentarea externă poate fi redusă prin rearanjarea conținutului memoriei pentru a plasa toată memoria liberă într-un singur bloc.
- Fragmentarea internă poate fi redusă prin atribuirea celei mai mici partiții, care este încă suficient de bună pentru a transporta întregul proces.
Ce este Segmentarea?
Metoda de segmentare funcționează aproape similar cu paginarea. Singura diferență dintre cele două este că segmentele au o lungime variabilă, în timp ce, în metoda de paginare, paginile au întotdeauna dimensiuni fixe.
Un segment de program include funcția principală a programului, structurile de date, funcțiile de utilitate etc. Sistemul de operare menține o tabelă de hărți a segmentelor pentru toate procesele. De asemenea, include o listă de blocuri de memorie gratuite împreună cu dimensiunea, numerele de segmente și locațiile sale de memorie din memoria principală sau memoria virtuală.
Ce este încărcarea dinamică?
Încărcarea dinamică este o rutină a unui program care nu este încărcat până când programul nu îl apelează. Toate rutinele ar trebui să fie conținute pe disc într-un format de încărcare relocabil. Programul principal va fi încărcat în memorie și va fi executat. Încărcarea dinamică oferă, de asemenea, o utilizare mai bună a spațiului de memorie.
Ce este conectarea dinamică?
Legarea este o metodă care ajută sistemul de operare să colecteze și să îmbine diverse module de cod și date într-un singur fișier executabil. Fișierul poate fi încărcat în memorie și executat. Sistemul de operare poate lega bibliotecile la nivel de sistem într-un program care combină bibliotecile la timpul de încărcare. În metoda de conectare dinamică, bibliotecile sunt conectate la momentul execuției, astfel încât dimensiunea codului programului poate rămâne mică.
Diferența dintre încărcarea statică și dinamică
Încărcare statică | Încărcare dinamică |
Încărcarea statică este utilizată atunci când doriți să încărcați programul în mod static. Apoi, în momentul compilării, întregul program va fi conectat și compilat fără a fi nevoie de niciun modul extern sau dependență de program. | Într-un program încărcat dinamic, vor fi furnizate referințe, iar încărcarea se va face în momentul execuției. |
La timpul de încărcare, întregul program este încărcat în memorie și începe executarea acestuia. | Rutinele bibliotecii sunt încărcate în memorie numai atunci când sunt necesare în program. |
Diferența dintre conectarea statică și dinamică
Aici sunt principalele diferențe între legătura statică vs. legătura dinamică:
Conectare statică | Conectare dinamică |
Legarea statică este utilizată pentru a combina toate celelalte module, care sunt necesare de către un program într-un singur cod executabil. Acest lucru ajută sistemul de operare să prevină orice dependență în timpul rulării. | Când este utilizată legarea dinamică, nu este nevoie să conecteze modulul sau biblioteca cu programul. În loc de aceasta, utilizați o referință la modulul dinamic furnizat în momentul compilării și conectării. |
Rezumat:
- Gestionarea memoriei este procesul de control și coordonare a memoriei computerului, atribuirea unor porțiuni numite blocuri diferitelor programe care rulează pentru a optimiza performanța generală a sistemului.
- Vă permite să verificați câtă memorie trebuie alocată proceselor care decid care procesor ar trebui să obțină memorie la ce oră.
- În alocarea contiguă unică, toate tipurile de memorie ale computerului, cu excepția unei porțiuni mici care este rezervată pentru sistemul de operare, este disponibilă pentru o singură aplicație
- Metoda de alocare partiționată împarte memoria primară în diverse partiții de memorie, care sunt în mare parte zone de memorie adiacente
- Metoda Paged Memory Management împarte memoria principală a computerului în unități de dimensiuni fixe cunoscute sub numele de cadre de pagină
- Memoria segmentată este singura metodă de gestionare a memoriei care nu oferă programului utilizatorului un spațiu de adrese liniar și contigu.
- Swapping este o metodă în care procesul ar trebui schimbat temporar din memoria principală în magazinul de suport. Acesta va fi readus ulterior în memorie pentru continuarea executării.
- Alocarea memoriei este un proces prin care programelor de calculator li se atribuie memorie sau spațiu.
- Paginarea este un mecanism de stocare care permite sistemului de operare să recupereze procesele din stocarea secundară în memoria principală sub formă de pagini.
- Fragmentarea se referă la starea unui disc în care fișierele sunt împărțite în bucăți împrăștiate în jurul discului.
- Metoda de segmentare funcționează aproape similar cu paginarea. Singura diferență dintre cele două este că segmentele au o lungime variabilă, în timp ce, în metoda de paginare, paginile au întotdeauna dimensiuni fixe.
- Încărcarea dinamică este o rutină a unui program care nu este încărcat până când programul nu îl apelează.
- Legarea este o metodă care ajută sistemul de operare să colecteze și să îmbine diverse module de cod și date într-un singur fișier executabil.