Diferența dintre fragmentarea internă și cea externă

principala diferență între fragmentarea internă și externă este asta, în fragmentarea internă, blocul de memorie atribuit unui proces este mare, astfel încât porțiunile rămase nu pot fi folosite pentru un alt proces. Dar, în fragmentarea externă, spațiul total de memorie este suficient pentru a locui într-un proces. Cu toate acestea, nu este contiguă, astfel încât spațiul este neutilizat.

Fragmentarea este procesul care împarte un spațiu liber de memorie în secțiuni mai mici. Se poate întâmpla din cauza dificultății de alocare a blocurilor de memorie unui proces, deoarece acestea sunt mai mici decât dimensiunile necesare. Această problemă poate cauza pierderi de memorie, deoarece blocurile de memorie rămân neutilizate. Există două tipuri de fragmentare numite fragmentare internă și externă.

Domenii cheie acoperite

1. Ce este Fragmentarea
       - Definiție, funcționalitate
2. Ce este fragmentarea internă
      - Definiție, funcționalitate
3. Ce este Fragmentarea externă
     - Definiție, funcționalitate
4. Diferența dintre fragmentarea internă și cea externă
     - Compararea diferențelor cheie

Termeni cheie

Fragmentare internă, fragmentare externă, fragmentare, sistem de operare

Ce este Fragmentarea

Când un proces este încărcat și scos din memorie, spațiul liber este împărțit în bucăți mici. Aceste blocuri de memorie sunt de dimensiuni mici și nu este posibil să le alocați pentru același proces sau alt proces. Prin urmare, aceste blocuri de memorie rămân neutilizate. Această problemă se numește fragmentare.

De exemplu, presupuneți că există un proces (p1) în memoria principală. Este nevoie de spațiu de 4 MB. Apoi, acesta este scos din memoria principală și stocat în memoria secundară. Acest spațiu de memorie inițial care a aparținut lui p1 este acum un spațiu liber. Acest spațiu este împărțit în secțiuni mai mici, cum ar fi 2MB și 2MB. Dacă procesul p1 trebuie alocat memoriei principale, acesta nu poate folosi acel spațiu anterior deoarece acesta este deja împărțit. Deci, acel spațiu de memorie rămâne nefolosit.

Ce este fragmentarea internă

În fragmentarea internă, blocul de memorie atribuit unui proces este mai mare decât cel cerut. Prin urmare, unele porțiuni din memorie sunt lăsate neutilizate. Acest spațiu nu poate fi folosit pentru alt proces. Să presupunem că există un proces p1 care este de 3MB. În memoria principală sunt alocate 4 MB pentru acel proces. Nu este posibil să utilizați restul de 1 MB pentru alt proces. Acest 1MB este irosit. Această pierdere se numește fragmentare internă.

Figura 1: Fragmentarea internă

Ce este Fragmentarea externă

Dacă spațiul total de memorie este suficient pentru a locui un proces, dar nu este continuu, atunci nu este încă posibil să se utilizeze acel spațiu pentru un proces. Acest tip de fragmentare se numește fragmentare externă. Să presupunem că procesul este de 4MB. Există spații de 2MB, 1MB și 1MB în memorie. Memoria totală este suficientă pentru a localiza procesul. Dar acele spații nu sunt învecinate, deoarece sunt în diferite locații. Prin urmare, spațiul rămâne nefolosit. Aceasta este fragmentarea externă.

Memoria de compactare sau de shuffle este o soluție la fragmentarea externă. Va pune toată memoria liberă împreună într-un bloc mare.

Figura 2: Compactare

Conform diagramei de mai sus, există un spațiu liber după p1 și p2. Există un spațiu după p3, p4 și p5. Prin urmare, toate procesele sunt compacte pe o parte. Acum există un spațiu liber continuu. Este posibil să alocăm acel spațiu liber unui alt proces. Toate spațiile gratuite sunt disponibile într-o singură locație.

Diferența dintre fragmentarea internă și cea externă

Definiție

Fragmentarea internă este o formă de fragmentare care apare atunci când există secțiuni de memorie rămase din cauza alocării blocurilor mari de memorie pentru un proces decât este necesar. Fragmentarea externă este o formă de fragmentare care apare atunci când există suficientă memorie disponibilă pentru alocare pentru proces, dar memoria disponibilă nu este învecinată.

Funcționalitate

În fragmentarea internă, blocul de memorie atribuit unui proces este mare. Prin urmare, partea rămasă este lăsată neutilizată, deoarece nu poate fi atribuită altui proces. În fragmentarea externă, spațiul de memorie este suficient pentru a locui într-un proces, dar nu este învecinat. Prin urmare, acest spațiu nu poate fi utilizat pentru alocare.

Soluţie

Soluția pentru fragmentarea internă este de a atribui partiții care sunt suficient de mari pentru procese. Compactarea sau amestecarea conținutului în memorie reprezintă soluția pentru depășirea fragmentării externe.

Concluzie

În fragmentarea internă, blocul de memorie atribuit unui proces este mare, astfel încât porțiunile rămase nu pot fi folosite pentru un alt proces. În fragmentarea externă, spațiul total de memorie este suficient pentru a locui într-un proces, dar nu este învecinat, astfel încât spațiul neutilizat. Aceasta este diferența principală dintre Fragmentarea internă și cea externă.

Referinţă:

1. "Managementul memoriei sistemului de operare." Www.tutorialspoint.com, Tutorials Point, 8 ianuarie 2018, Disponibil aici.