Unutarnja vs vanjska fragmentacija
Razlika između unutarnje i vanjske fragmentacije tema je koja zanima mnoge koji vole poboljšati svoje znanje rada na računalu. Prije nego što spoznamo tu razliku, moramo vidjeti što je fragmentacija. Fragmentacija je pojava koja se javlja u računalnoj memoriji, poput memorije slučajnog pristupa (RAM) ili tvrdog diska, što uzrokuje rasipanje i neučinkovito korištenje slobodnog prostora. Iako je učinkovito korištenje raspoloživog prostora otežano, to također uzrokuje probleme s performansama. Unutarnja fragmentacija se događa kada se dodjela memorije temelji na particijama fiksne veličine, gdje se nakon utora male veličine aplikacija dodijeli preostali slobodni prostor tog utora. Vanjska se fragmentacija događa kada se memorija dinamički dodjeljuje, gdje se nakon utovara i istovara nekoliko mjesta tu i tamo raspoređuje slobodni prostor, a ne da bi bio susjedan.
Što je unutarnja fragmentacija?
Razmotrite gornju sliku na kojoj se slijedi mehanizam za dodjelu memorije fiksne veličine. U početku je memorija prazna, a alokator je podijelio memoriju na particije fiksne veličine. Zatim su kasnije tri programa pod nazivom A, B, C učitana na prve tri particije, dok je 4. particija još uvijek besplatna. Program A odgovara veličini particije, pa na toj particiji nema rasipanja, ali Program B i Program C manji su od veličine particije. Dakle, u dijelu 2 i particiji 3 preostalo je slobodnog prostora. Međutim, ovaj slobodni prostor neupotrebljiv je jer alokator memorije programima dodjeljuje samo pune particije, ali ne i njihove dijelove. Ovo rasipanje slobodnog prostora naziva se unutarnja fragmentacija.
U gornjem primjeru to su jednake fiksne particije, ali to se čak može dogoditi u situaciji kada su dostupne particije različitih fiksnih veličina. Obično je memorija ili najteži prostor podijeljen na blokove koji su obično veličine potencijala 2, poput 2, 4, 8, 16 bajtova. Dakle, program ili datoteka od 3 bajta dodijelit će se bloku od 4 bajta, ali jedan bajt tog bloka postat će 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čno potrebnu veličinu za taj program. Prvo sjećanje je potpuno besplatno. Tada se programi A, B, C, D i E različitih veličina učitavaju jedan za drugim i oni se tim redoslijedom smještaju u memoriju. Zatim se kasnije programi A i C zatvaraju i oni se istovaraju iz memorije. Sada u memoriji postoje tri slobodna prostora, ali oni nisu susjedni. Sada će se učitati veliki program pod nazivom Program F, ali niti jedan blok slobodnog prostora nije dovoljan za program F. Dodatak svih slobodnih prostora definitivno je dovoljan za program F, ali zbog nedostatka susjedstva taj prostor neupotrebljiv za program F. To se naziva 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 se fragmentacija događa kada se koristi tehnika dinamičke dodjele memorije.
• Interna fragmentacija se događa kada je particija fiksne veličine dodijeljena programu / datoteci manje veličine od particije što čini ostatak prostora na toj particiji neupotrebljivim. Vanjska fragmentacija posljedica je nedostatka dovoljno susjednog prostora nakon učitavanja i istovara programa ili datoteka neko vrijeme jer se tada sav slobodni prostor tu i tamo raspodijeli.
• Vanjska fragmentacija može se iskopati zbijanjem gdje se dodijeljeni blokovi pomaknu na jednu stranu, tako da se dobije susjedni prostor. Međutim, ova operacija zahtijeva vrijeme, a također se određena kritična dodijeljena područja, na primjer sistemske usluge, ne mogu sigurno premjestiti. Ovaj korak sabijanja možemo primijetiti na tvrdom disku prilikom pokretanja defragmentatora diska u sustavu Windows.
• Vanjsku fragmentaciju može se spriječiti mehanizmima poput segmentacije i straničenja. Ovdje je dat logični susjedni prostor virtualne memorije, dok su u stvarnosti datoteke / programi podijeljeni na dijelove i smješteni tu i tamo.
• Unutarnja fragmentacija može se osakatiti postojanjem particija nekoliko veličina i dodjeljivanjem programa na temelju najboljeg prilagođavanja. Međutim, još uvijek unutarnja fragmentacija nije u potpunosti eliminirana.
Sažetak:
Unutarnja vs vanjska fragmentacija
I unutarnja i vanjska fragmentacija pojave su gdje se pamćenje troši. Unutarnja fragmentacija događa se u dodjeli memorije fiksne veličine, dok se vanjska fragmentacija događa u dinamičkoj dodjeli memorije. Kada dodijeljenu particiju zauzima program koji je manji od particije, preostali prostor se gubi uzrokujući unutarnju fragmentaciju. Kada se nakon učitavanja i istovara programa ne može naći dovoljno susjednog prostora, zbog činjenice da se slobodni prostor tu i tamo distribuira, to uzrokuje vanjsku fragmentaciju. Fragmentacija se može pojaviti na bilo kojem memorijskom uređaju, poput RAM-a, tvrdog diska i flash pogona.