Diferența dintre fragmentarea internă și cea externă | Fragmentarea internă vs. externă

Anonim

Fragmentarea internă / externă

Diferența dintre fragmentarea internă și cea externă este un subiect de interes pentru mulți dintre cei cărora le place să-și îmbunătățească cunoștințele despre computer. Înainte de a cunoaște această diferență, trebuie să vedem ce fragmentare este. Fragmentarea este un fenomen care apare în memoria calculatorului, cum ar fi memoria cu acces aleatoriu (RAM) sau hard disk-urile, ceea ce cauzează pierderi și utilizarea ineficientă a spațiului liber. În timp ce utilizarea eficientă a spațiului disponibil este împiedicată, acest lucru cauzează probleme de performanță, de asemenea. Fragmentarea internă apare atunci când alocarea memoriei se bazează pe partiții cu dimensiune fixă ​​unde după ce o aplicație de dimensiuni mici este alocată unui slot, spațiul liber rămas al acelui slot este irosit. Fragmentarea exterioară apare atunci când memoria este alocată dinamic în cazul în care, după încărcarea și descărcarea mai multor sloturi aici și acolo, spațiul liber este distribuit mai degrabă decât să fie învecinat.

Ce este fragmentarea internă?

Luați în considerare figura de mai sus în cazul în care este urmat un mecanism de alocare a memoriei cu dimensiune fixă. Inițial, memoria este goală și alocatorul a împărțit memoria în partiții cu dimensiune fixă. Ulterior, trei programe numite A, B, C au fost încărcate în primele trei partiții, în timp ce partiția a 4-a este încă liberă. Programul A se potrivește cu mărimea partiției, deci nu există pierderi în acea partiție, dar Programul B și Programul C sunt mai mici decât dimensiunea partiției. Deci, în parte 2 și 3 nu există spațiu liber. Cu toate acestea, acest spațiu liber este inutilizabil, deoarece alocătorul de memorie atribuie doar partiții pline programelor, dar nu și părți din acesta. Această pierdere a spațiului liber se numește fragmentare internă.

În exemplul de mai sus, este vorba de partiții fixe de dimensiuni egale, dar acest lucru se poate întâmpla chiar și într-o situație în care sunt disponibile partiții de diferite dimensiuni fixe. De obicei, memoria sau cel mai greu spațiu este împărțit în blocuri care de obicei sunt dimensiunile puterilor de 2, cum ar fi 2, 4, 8, 16 octeți. Deci, un program sau un fișier de 3 octeți va fi atribuit unui bloc de 4 octeți, dar un octet al acelui bloc va deveni inutilizabil, cauzând fragmentarea internă.

Ce este fragmentarea externă?

Luați în considerare figura de mai sus în cazul în care alocarea memoriei se face dinamic. În alocarea dinamică a memoriei, alocatorul alocă doar dimensiunea exactă necesară pentru respectivul program.Prima memorie este complet liberă. Apoi programele A, B, C, D și E de diferite dimensiuni sunt încărcate una după alta și sunt plasate în memorie contiguu în ordinea respectivă. Apoi, Programul A și Programul C se închid și sunt descărcate din memorie. Acum, în memorie există trei zone de spațiu liber, dar ele nu sunt adiacente. Acum se va încărca un program amplu numit Programul F, dar nici unul din spațiul liber nu este suficient pentru Programul F. Adăugarea tuturor spațiilor libere este cu siguranță suficientă pentru Programul F, dar din cauza lipsei de adiacentă că spațiul este inutil pentru programul F. Aceasta se numește Fragmentare externă.

Care este diferența dintre fragmentarea internă și cea externă?

• Fragmentarea internă apare când se utilizează o tehnică de alocare a memoriei de dimensiune fixă. Fragmentarea exterioară apare atunci când se utilizează o tehnică dinamică de alocare a memoriei.

• Fragmentarea internă apare atunci când o partiție de dimensiune fixă ​​este atribuită unui program / fișier cu o dimensiune mai mică decât partiția, făcând restul spațiului din partiția respectivă inutilizabil. Fragmentarea externă se datorează lipsei de spațiu adiacent după încărcarea și descărcarea de programe sau fișiere de ceva timp, deoarece atunci tot spațiul liber este distribuit aici și acolo.

• Fragmentarea externă poate fi realizată prin compactare, în cazul în care blocurile atribuite sunt mutate într-o parte, astfel încât spațiul contiguu este câștigat. Cu toate acestea, această operațiune necesită timp și, de asemenea, anumite zone critice alocate, de exemplu serviciile de sistem nu pot fi mutate în siguranță. Putem observa acest pas de compactare făcut pe hard-disc-uri atunci când rulați defragmentarea discului în Windows.

• Fragmentarea externă poate fi prevenită prin mecanisme precum segmentarea și paginarea. Aici este dat un spațiu logic virtual de memorie contiguă, în timp ce în realitate fișierele / programele sunt împărțite în părți și plasate aici și acolo.

• Fragmentarea internă poate fi distrusă prin faptul că au partiții de mai multe dimensiuni și care atribuie un program bazat pe cea mai bună potrivire. Cu toate acestea, fragmentarea internă nu este complet eliminată.

Rezumat:

Fragmentare internă vs. externă

Atât fragmentarea internă, cât și fragmentarea externă sunt fenomene în care memoria este pierdută. Fragmentarea internă are loc în alocarea memoriei de dimensiune fixă, în timp ce fragmentarea externă are loc în alocarea dinamică a memoriei. Atunci când o partiție alocată este ocupată de un program care este mai mic decât partiția, spațiul rămas este risipit cauzând fragmentarea internă. Când spațiul adiacent nu poate fi găsit după încărcarea și descărcarea programelor, datorită faptului că spațiul liber este distribuit aici și acolo, acest lucru cauzează fragmentarea externă. Fragmentarea poate apărea în orice dispozitiv de memorie, cum ar fi unitățile de memorie RAM, hard disk și Flash.