Fragmentare internă vs externă
Diferența dintre fragmentarea internă și cea externă este un subiect de interes pentru mulți 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 este fragmentarea. Fragmentarea este un fenomen care apare în memoria computerului, cum ar fi Random Access Memory (RAM) sau hard disk-uri, care provoacă irosirea și utilizarea ineficientă a spațiului liber. În timp ce utilizarea eficientă a spațiului disponibil este împiedicată, acest lucru provoacă și probleme de performanță. Fragmentarea internă are loc atunci când alocarea memoriei se bazează pe partiții de dimensiuni fixe, unde după ce o aplicație de dimensiuni mici este alocată unui slot, spațiul liber rămas din acel slot este irosit. Fragmentarea externă are loc atunci când memoria este alocată dinamic în cazul în care după încărcarea și descărcarea mai multor sloturi aici și colo, spațiul liber este distribuit, mai degrabă decât contigu.
Ce este fragmentarea internă?
Luați în considerare figura de mai sus, unde se urmărește un mecanism de alocare a memoriei de dimensiuni fixe. Inițial, memoria este goală și alocatorul a împărțit memoria în partiții de dimensiuni fixe. Apoi, mai târziu, trei programe numite A, B, C au fost încărcate în primele trei partiții, în timp ce cea de-a 4-a partiție este încă gratuită. Programul A se potrivește cu dimensiunea partiției, deci nu există risipă în acea partiție, dar Programul B și Programul C sunt mai mici decât dimensiunea partiției. Deci, în partea 2 și partiția 3 există spațiu liber rămas. Cu toate acestea, acest spațiu liber este inutilizabil deoarece alocatorul de memorie atribuie doar partiții complete programelor, dar nu are părți ale acestuia. Această irosire de spațiu liber se numește fragmentare internă.
În exemplul de mai sus, este 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 au de obicei mărimea 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 din blocul respectiv va deveni inutilizabil provocând fragmentarea internă.
Ce este fragmentarea externă?
Luați în considerare figura de mai sus, unde alocarea memoriei se face dinamic. În alocarea dinamică a memoriei, alocatorul alocă doar dimensiunea exactă necesară pentru acel program. Prima memorie este complet gratuită. Apoi, programele A, B, C, D și E de diferite dimensiuni sunt încărcate unul după altul și sunt plasate în memorie contiguu în această ordine. Apoi, mai târziu, Programul A și Programul C se închid și sunt descărcate din memorie. Acum există trei spații libere în memorie, dar nu sunt adiacente. Acum va fi încărcat un program mare numit Program F, dar niciunul dintre blocurile de spațiu 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 adiacență, acest spațiu este inutilizabil pentru programul F. Aceasta se numește Fragmentare externă.
Care este diferența dintre fragmentarea internă și cea externă?
• Fragmentarea internă apare atunci când se utilizează o tehnică de alocare a memoriei cu dimensiune fixă. Fragmentarea externă apare atunci când se utilizează o tehnică de alocare dinamică a memoriei.
• Fragmentarea internă apare atunci când o partiție de dimensiune fixă este atribuită unui program / fișier cu dimensiuni mai mici decât partiția, ceea ce face ca restul spațiului din acea partiție să fie inutilizabil. Fragmentarea externă se datorează lipsei de spațiu adiacent suficient după încărcarea și descărcarea programelor sau fișierelor pentru o perioadă de timp, deoarece tot spațiul liber este distribuit aici și acolo.
• Fragmentarea externă poate fi exploatată prin compactare în cazul în care blocurile atribuite sunt mutate într-o parte, astfel încât să se câștige spațiu contiguu. Cu toate acestea, această operație necesită timp și, de asemenea, anumite zone critice atribuite, de exemplu, serviciile de sistem nu pot fi mutate în siguranță. Putem observa acest pas de compactare realizat pe hard disk-uri atunci când rulăm defragmentatorul discului în Windows.
• Fragmentarea externă poate fi prevenită prin mecanisme precum segmentarea și paginarea. Aici este oferit un spațiu de memorie virtual contigu logic, în timp ce fișierele / programele sunt împărțite în părți și plasate aici și acolo.
• Fragmentarea internă poate fi mutilată având partiții de mai multe dimensiuni și atribuind un program bazat pe cea mai bună potrivire. Cu toate acestea, fragmentarea internă încă nu este complet eliminată.
Rezumat:
Fragmentare internă vs externă
Atât fragmentarea internă, cât și fragmentarea externă sunt fenomene în care memoria este irosită. Fragmentarea internă are loc în alocarea memoriei cu dimensiune fixă, în timp ce fragmentarea externă are loc în alocarea dinamică a memoriei. Când o partiție alocată este ocupată de un program mai mic decât partiția, spațiul rămas se pierde provocând fragmentarea internă. Când nu se găsește suficient spațiu adiacent după încărcarea și descărcarea programelor, datorită faptului că spațiul liber este distribuit ici și colo, acest lucru provoacă o fragmentare externă. Fragmentarea poate apărea în orice dispozitiv de memorie, cum ar fi RAM, hard disk și unități flash.