Unutarnja naspram vanjske fragmentacije
Razlika između unutarnje i vanjske fragmentacije tema je koja zanima mnoge koji žele unaprijediti svoje informatičko znanje. Prije nego što saznamo ovu razliku, moramo vidjeti što je fragmentacija. Fragmentacija je pojava koja se javlja u računalnoj memoriji kao što je memorija s izravnim pristupom (RAM) ili tvrdim diskovima, što uzrokuje rasipanje i neučinkovito korištenje slobodnog prostora. Iako je učinkovito korištenje dostupnog prostora ometeno, to također uzrokuje probleme s performansama. Do unutarnje fragmentacije dolazi kada se dodjela memorije temelji na particijama fiksne veličine gdje se nakon što se aplikaciji male veličine dodijeli utoru, preostali slobodni prostor tog utora gubi. Vanjska fragmentacija se događa kada se memorija dinamički dodjeljuje gdje se nakon učitavanja i pražnjenja nekoliko utora tu i tamo slobodni prostor distribuira umjesto da bude kontinuiran.
Što je unutarnja fragmentacija?
Razmotrite gornju sliku gdje se slijedi mehanizam dodjele memorije fiksne veličine. U početku je memorija prazna i alokator je podijelio memoriju na particije fiksne veličine. Kasnije su tri programa pod nazivom A, B, C učitana na prve tri particije dok je četvrta particija još uvijek slobodna. Program A odgovara veličini particije, tako da nema gubitka u toj particiji, ali program B i program C manji su od veličine particije. Dakle, u dijelu 2 i particiji 3 ima preostalog slobodnog prostora. Međutim, ovaj slobodni prostor je neupotrebljiv jer alokator memorije programima dodjeljuje samo pune particije, ali ne i njihove dijelove. Ovo rasipanje slobodnog prostora naziva se unutarnja fragmentacija.
U gornjem primjeru radi se o fiksnim particijama jednake veličine, ali to se može dogoditi čak iu situaciji kada su dostupne particije različitih fiksnih veličina. Obično je memorija ili najteži prostor podijeljen u blokove koji su obično veličine potencije broja 2, kao što su 2, 4, 8, 16 bajtova. Tako će program ili datoteka od 3 bajta biti dodijeljena bloku od 4 bajta, ali će jedan bajt tog bloka postati neupotrebljiv uzrokujući unutarnju fragmentaciju.
Što je vanjska fragmentacija?
Razmotrite gornju sliku gdje se dodjela memorije vrši dinamički. U dinamičkoj dodjeli memorije, alokator dodjeljuje samo točnu potrebnu veličinu za taj program. Prva memorija je potpuno besplatna. Zatim se programi A, B, C, D i E različitih veličina učitavaju jedan za drugim i smještaju u memoriju kontinuirano tim redoslijedom. Kasnije se program A i program C zatvaraju i učitavaju iz memorije. Sada postoje tri područja slobodnog prostora u memoriji, ali nisu susjedna. Sada će se učitati veliki program nazvan Program F, ali nijedan od blokova slobodnog prostora nije dovoljan za Program F. Dodavanje svih slobodnih prostora definitivno je dovoljno za Program F, ali zbog nedostatka susjedstva taj je prostor neupotrebljivo za program F. Ovo se zove vanjska fragmentacija.
Koja je razlika između unutarnje i vanjske fragmentacije?
• Unutarnja fragmentacija događa se kada se koristi tehnika dodjele memorije fiksne veličine. Vanjska fragmentacija se događa kada se koristi tehnika dinamičke dodjele memorije.
• Unutarnja fragmentacija se događa kada se particija fiksne veličine dodijeli programu/datoteci s manjom veličinom od particije što čini ostatak prostora na toj particiji neupotrebljivim. Vanjska fragmentacija je zbog nedostatka dovoljno susjednog prostora nakon učitavanja i pražnjenja programa ili datoteka neko vrijeme jer se tada sav slobodni prostor raspoređuje tu i tamo.
• Vanjska fragmentacija može se rudariti sažimanjem gdje se dodijeljeni blokovi pomiču na jednu stranu, tako da se dobije kontinuirani prostor. Međutim, ova operacija zahtijeva vrijeme, a određena kritična dodijeljena područja, na primjer usluge sustava, ne mogu se sigurno premjestiti. Možemo promatrati ovaj korak sažimanja na tvrdim diskovima kada pokrećemo defragmentator diska u sustavu Windows.
• Vanjska fragmentacija može se spriječiti mehanizmima kao što su segmentacija i straničenje. Ovdje je dan logički kontinuirani virtualni memorijski prostor dok su u stvarnosti datoteke/programi podijeljeni u dijelove i postavljeni tu i tamo.
• Unutarnja fragmentacija može se osakatiti postojanjem particija nekoliko veličina i dodjeljivanjem programa na temelju najboljeg pristajanja. Međutim, još uvijek unutarnja fragmentacija nije u potpunosti eliminirana.
Sažetak:
Unutarnja naspram vanjske fragmentacije
I unutarnja fragmentacija i vanjska fragmentacija su fenomeni u kojima se gubi memorija. Unutarnja fragmentacija javlja se u dodjeli memorije fiksne veličine, dok se vanjska fragmentacija javlja u dinamičkoj dodjeli memorije. Kada je dodijeljena particija zauzeta programom koji je manji od particije, preostali prostor se troši uzalud uzrokujući unutarnju fragmentaciju. Kada se ne može pronaći dovoljno susjednog prostora nakon učitavanja i pražnjenja programa, zbog činjenice da se slobodni prostor raspoređuje tu i tamo, to uzrokuje vanjsku fragmentaciju. Fragmentacija se može dogoditi u bilo kojem memorijskom uređaju kao što je RAM, tvrdi disk i Flash pogoni.