Managementul memoriei în sistemul de operare: contiguu, schimb, fragmentare

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 dacă rămâne liberă.

De ce să folosiți gestionarea memoriei?

Iată motivele pentru a utiliza gestionarea memoriei:

  • Vă permite să verificați câtă memorie trebuie alocată proceselor care decid ce procesor ar trebui să primească memorie la ce oră.
  • Urmărește ori de câte ori inventarul este eliberat sau nealocat. Conform acesteia se va actualiza starea.
  • Acesta alocă spațiul rutinelor aplicației.
  • De asemenea, asigură-te că aceste aplicații nu interferează între ele.
  • Ajută la protejarea diferitelor procese unele de altele
  • Plasează programele în memorie, astfel încât memoria să fie utilizată în întregime.

Tehnici de management al memoriei

Iată câteva tehnici importante 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 care este rezervată pentru sistemul de operare, sunt disponibile pentru o 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 diferite partiții de memorie, care sunt în mare parte zone contigue de memorie. Fiecare partiție stochează toate informațiile pentru o anumită sarcină sau job. Această metodă constă în alocarea unei partiții unui job când începe și nealocată când se termină.

Gestionarea memoriei paginate

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 să fie 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 contiguu.

Segmentele au nevoie de suport hardware sub forma unui tabel de segmente. Conține adresa fizică a secțiunii în memorie, dimensiunea și alte date, cum ar fi biții de protecție a accesului și starea.

Ce este Schimbarea?

Schimbarea este o metodă prin care procesul ar trebui schimbat temporar din memoria principală în stocul de rezervă. Acesta va fi ulterior adus înapoi în memorie pentru a continua execuția.

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 din memorie pentru toți utilizatorii. De asemenea, este capabil să ofere acces direct la aceste imagini de memorie.

pompare

Beneficiile schimbului

Iată principalele avantaje/pros ale schimbului:

  • Oferă un grad mai mare de multiprogramare.
  • Permite relocarea dinamică. De exemplu, dacă se folosește legarea adresei la momentul execuției, atunci procesele pot fi schimbate în diferite locații. În caz contrar, în cazul legăturilor de timp de compilare și încărcare, procesele ar trebui mutate în aceeași locație.
  • Ajută la o mai bună utilizare a memoriei.
  • Ridicare minimă de timp CPU la finalizare, astfel încât să poată fi aplicat cu ușurință unei metode de programare bazată 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

  1. Memorie puțină - Operasistem de ting rezidă în acest tip de memorie.
  2. Memorie ridicată– Procesele utilizatorului sunt păstrate în memorie mare.

Alocarea partițiilor

Memoria este împărțită în diferite blocuri sau partiții. Fiecare proces este alocat în funcție de cerință. Alocarea partițiilor este o metodă ideală pentru a evita fragmentarea internă.

Mai jos sunt diferitele scheme de alocare a partițiilor:

  • First Fit: În acest tip de potrivire, partiția este alocată, care este primul bloc suficient de la începutul memoriei principale.
  • Cel mai potrivit: Acesta alocă procesul partiției care este prima cea mai mică partiție dintre partițiile libere.
  • Cea mai proasta potrivire: Acesta alocă procesul către partiție, care este cea mai mare partiție suficientă disponibilă gratuit din memoria principală.
  • Următoarea potrivire: Este în mare parte similar cu primul Fit, dar acest Fit 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 Paging, memoria principală este împărțită în blocuri mici de dimensiuni fixe de memorie fizică, care se numesc cadre. Dimensiunea unui cadru trebuie menținută aceeași cu cea a unei pagini pentru a avea o utilizare maximă a memoriei principale și pentru a evita fragmentarea externă. Paginarea este folosit 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 de memorie liber, care este prea mic pentru a fi utilizat de alte procese.

După ce, uneori, procesele care nu pot să se aloce blocurilor de memorie, deoarece dimensiunile sale mici și blocurile de memorie rămân întotdeauna neutilizate, se numește fragmentare. Acest tip de problemă se întâmplă în timpul unui sistem de alocare dinamică a memoriei când blocurile libere sunt destul de mici, deci nu este capabil să îndeplinească nicio solicitare.

Două tipuri de metode de fragmentare sunt:

  1. Fragmentare externă
  2. Fragmentare internă
  • Fragmentarea externă poate fi redusă prin rearanjarea conținutului memoriei pentru a plasa toată memoria liberă împreună într-un singur bloc.
  • Fragmentarea internă poate fi redusă prin alocarea celei mai mici partiții, care este încă suficient de bună pentru a duce întregul proces.

Ce este Segmentarea?

Metoda de segmentare funcționează aproape similar cu paginarea. Singura diferență dintre cele două este că segmentele sunt de lungime variabilă, în timp ce, în metoda de paginare, paginile sunt întotdeauna de dimensiune fixă.

Un segment de program include funcția principală a programului, structurile de date, funcțiile utilitare etc. Sistemul de operare menține un tabel cu hărți de segmente pentru toate procesele. Include, de asemenea, o listă de blocuri de memorie libere împreună cu dimensiunea, numerele de segmente și locațiile de memorie din memoria principală sau memorie virtuala.

Ce este încărcarea dinamică?

Încărcarea dinamică este o rutină a unui program care nu este încărcată până când programul î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 legătura dinamică?

Conectarea 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 biblioteci la nivel de sistem într-un program care combină bibliotecile în timpul încărcării. În metoda de conectare dinamică, bibliotecile sunt legate în 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 legat și compilat fără a fi nevoie de vreun modul extern sau dependență de program. Într-un program încărcat dinamic, vor fi furnizate referințe și încărcarea se va face în momentul execuției.
La momentul încărcării, întregul program este încărcat în memorie și începe execuția acestuia. Rutinele bibliotecii sunt încărcate în memorie numai atunci când sunt necesare în program.

Diferența dintre legătura statică și dinamică

Iată diferența principală dintre legătura statică și cea dinamică:

Legătura statică Legătura dinamică
Legătura statică este folosită pentru a combina toate celelalte module, care sunt cerute de un program, într-un singur cod executabil. Acest lucru ajută sistemul de operare să prevină orice dependență de rulare. Când se folosește legătura dinamică, nu este nevoie să conecteze modulul sau biblioteca actuală cu programul. În loc de aceasta, utilizați o referință la modulul dinamic furnizat în momentul compilării și conectării.

Rezumat

  • Managementul memoriei este procesul de control și coordonare a memoriei computerului, atribuind 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 ce procesor ar trebui să primească memorie la ce oră.
  • În alocare unică contiguă, toate tipurile de memorie ale computerului, cu excepția unei mici porțiuni care este rezervată pentru sistemul de operare, sunt disponibile pentru o aplicație
  • Metoda de alocare partiționată împarte memoria primară în diferite partiții de memorie, care sunt în mare parte zone contigue de memorie
  • Metoda de gestionare a memoriei paginate î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 contiguu.
  • Schimbarea este o metodă prin care procesul ar trebui schimbat temporar din memoria principală în stocul de rezervă. Acesta va fi ulterior adus înapoi în memorie pentru a continua execuția.
  • Alocarea memoriei este un proces prin care programelor de calculator li se atribuie memorie sau spațiu.
  • Paginare 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 sunt de lungime variabilă, în timp ce, în metoda de paginare, paginile sunt întotdeauna de dimensiune fixă.
  • Încărcarea dinamică este o rutină a unui program care nu este încărcată până când programul îl apelează.
  • Conectarea 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.