Razlika između unutrašnje i eksterne fragmentacije

Sadržaj:

Razlika između unutrašnje i eksterne fragmentacije
Razlika između unutrašnje i eksterne fragmentacije

Video: Razlika između unutrašnje i eksterne fragmentacije

Video: Razlika između unutrašnje i eksterne fragmentacije
Video: CS50 2013 - Week 9 2024, Juli
Anonim

Unutarnja vs eksterna fragmentacija

Razlika između unutrašnje i eksterne fragmentacije tema je od interesa za mnoge koji žele da poboljšaju svoje znanje o računaru. Prije nego saznamo ovu razliku, moramo vidjeti šta je fragmentacija. Fragmentacija je fenomen koji se javlja u memoriji računara kao što je memorija sa slučajnim pristupom (RAM) ili čvrsti diskovi, što uzrokuje trošenje i neefikasnu upotrebu slobodnog prostora. Iako je efikasna upotreba raspoloživog prostora otežana, to takođe uzrokuje probleme u performansama. Interna fragmentacija se događa kada se dodjela memorije zasniva na particijama fiksne veličine gdje se nakon što se aplikacija male veličine dodijeli slotu, preostali slobodni prostor tog slota gubi. Eksterna fragmentacija se dešava kada se memorija dinamički dodeljuje, pri čemu se nakon učitavanja i pražnjenja nekoliko slotova tu i tamo slobodni prostor raspodeljuje umesto da bude uzastopno.

Šta je unutrašnja fragmentacija?

Razlika između unutrašnje i eksterne fragmentacije_Unutarnja fragmentacija
Razlika između unutrašnje i eksterne fragmentacije_Unutarnja fragmentacija
Razlika između unutrašnje i eksterne fragmentacije_Unutarnja fragmentacija
Razlika između unutrašnje i eksterne fragmentacije_Unutarnja fragmentacija

Razmotrite gornju sliku na kojoj se prati mehanizam dodjeljivanja 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 4. particija još slobodna. Program A odgovara veličini particije, tako da na toj particiji nema gubitka, ali Program B i Program C su manji od veličine particije. Dakle, u dijelu 2 i particiji 3 postoji preostali slobodan prostor. Međutim, ovaj slobodni prostor je neupotrebljiv jer alokator memorije samo dodjeljuje pune particije programima, ali ne i njegove dijelove. Ovo rasipanje slobodnog prostora naziva se unutrašnja fragmentacija.

U gornjem primjeru, to su fiksne particije jednake veličine, ali to se može dogoditi čak iu situaciji kada su dostupne particije različitih fiksnih veličina. Obično se memorija ili najteži prostor dijeli na blokove koji su obično veličine 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 internu fragmentaciju.

Šta je vanjska fragmentacija?

Razlika između unutrašnje i eksterne fragmentacije_Spoljna fragmentacija
Razlika između unutrašnje i eksterne fragmentacije_Spoljna fragmentacija
Razlika između unutrašnje i eksterne fragmentacije_Spoljna fragmentacija
Razlika između unutrašnje i eksterne fragmentacije_Spoljna fragmentacija

Razmotrite gornju sliku gdje se alokacija memorije vrši dinamički. Kod dinamičke dodjele memorije, alokator dodjeljuje samo potrebnu veličinu za taj program. Prva memorija je potpuno slobodna. Zatim se programi A, B, C, D i E različitih veličina učitavaju jedan za drugim i tim redoslijedom su uzastopno smješteni u memoriju. Zatim se kasnije, program A i program C zatvaraju i oni se učitavaju iz memorije. Sada postoje tri područja slobodnog prostora u memoriji, ali oni nisu susjedni. Sada će se učitati veliki program pod nazivom Program F, ali nijedan od bloka slobodnog prostora nije dovoljan za Program F. Dodavanje svih slobodnih prostora je definitivno dovoljno za Program F, ali zbog nedostatka susjedstva taj prostor je neupotrebljivo za program F. Ovo se zove eksterna fragmentacija.

Koja je razlika između unutrašnje i eksterne fragmentacije?

• Interna fragmentacija se javlja kada se koristi tehnika dodjeljivanja memorije fiksne veličine. Eksterna fragmentacija se javlja kada se koristi tehnika dinamičke alokacije memorije.

• Interna fragmentacija se dešava kada se particija fiksne veličine dodijeli programu/datoteci s manjom veličinom od particije, što ostatak prostora na toj particiji čini neupotrebljivim. Eksterna fragmentacija je zbog nedostatka dovoljno susjednog prostora nakon učitavanja i izbacivanja programa ili fajlova neko vrijeme jer se tada sav slobodan prostor raspoređuje tu i tamo.

• Eksterna fragmentacija se može minirati zbijanjem gde se dodeljeni blokovi pomeraju na jednu stranu, tako da se dobija susedni prostor. Međutim, za ovu operaciju je potrebno vrijeme, a određena kritična dodijeljena područja, na primjer sistemske usluge, ne mogu se sigurno premjestiti. Možemo posmatrati ovaj korak sažimanja koji se vrši na čvrstim diskovima kada se pokreće defragmentator diska u Windows-u.

• Vanjska fragmentacija se može spriječiti mehanizmima kao što su segmentacija i stranica. Ovdje je dat logički neprekidni virtualni memorijski prostor, dok su u stvarnosti fajlovi/programi podijeljeni na dijelove i postavljeni tu i tamo.

• Unutrašnja fragmentacija se može osakatiti postavljanjem particija nekoliko veličina i dodjeljivanjem programa koji se najbolje uklapa. Međutim, još uvijek unutrašnja fragmentacija nije u potpunosti eliminirana.

Sažetak:

Unutarnja vs eksterna fragmentacija

I unutrašnja fragmentacija i eksterna fragmentacija su fenomeni u kojima se pamćenje gubi. Interna fragmentacija se događa pri dodjeli memorije fiksne veličine, dok se vanjska fragmentacija događa u dinamičkoj dodjeli memorije. Kada je dodijeljena particija zauzeta programom koji je manji od particije, preostali prostor se troši uzalud uzrokujući internu fragmentaciju. Kada se nakon učitavanja i izbacivanja programa ne može pronaći dovoljno susjednog prostora, zbog činjenice da je slobodan prostor raspoređen tu i tamo, to uzrokuje vanjsku fragmentaciju. Fragmentacija se može dogoditi u bilo kojem memorijskom uređaju kao što su RAM, hard disk i fleš diskovi.

Preporučuje se: