Rozdiel medzi vnútornou a vonkajšou fragmentáciou je témou záujmu mnohých, ktorí radi vylepšujú svoje počítačové znalosti. Predtým, ako budeme poznať tento rozdiel, musíme zistiť, čo je fragmentácia. Fragmentácia je jav, ktorý sa vyskytuje v pamäti počítača, napríklad v pamäti RAM alebo na pevných diskoch, ktorá spôsobuje plytvanie a neefektívne využívanie voľného miesta. Aj keď sa obmedzuje efektívne využitie dostupného priestoru, spôsobuje to aj problémy s výkonom. Interná fragmentácia nastane, keď je pridelenie pamäte založené na oddieloch s pevnou veľkosťou, kde po priradení aplikácie malej veľkosti ku slotu je zbytočné voľné miesto v tomto slote zbytočné. Externá fragmentácia nastáva, keď je pamäť dynamicky alokovaná, kde po načítaní a vyložení niekoľkých slotov tu a tam sa skôr distribuuje voľný priestor, ako je súvislý..
Zvážte vyššie uvedený obrázok, kde sa dodržiava mechanizmus prideľovania pamäte s pevnou veľkosťou. Spočiatku je pamäť prázdna a alokátor rozdelil pamäť na oddiely s pevnou veľkosťou. Neskôr boli do prvých troch oddielov načítané tri programy s názvom A, B, C, zatiaľ čo štvrtý oddiel je stále voľný. Program A zodpovedá veľkosti oddielu, takže v tomto oddiele nie je plytvanie, ale program B a program C sú menšie ako veľkosť oddielu. Čiastočne teda v časti 2 a oddiele 3 zostáva voľný priestor. Toto voľné miesto je však nepoužiteľné, pretože alokátor pamäte priraďuje programom iba úplné oddiely, ale žiadne jeho časti. Toto plytvanie voľného priestoru sa nazýva vnútorná fragmentácia.
Vo vyššie uvedenom príklade ide o pevné oddiely rovnakej veľkosti, ale to sa môže dokonca stať v situácii, keď sú dostupné oddiely rôznych pevných veľkostí. Zvyčajne je pamäť alebo najťažšie miesto rozdelené do blokov, ktoré majú zvyčajne veľkosť 2, napríklad 4, 8, 16 bajtov. Takže program alebo súbor s 3 bajtmi bude priradený k 4 bajtovému bloku, ale jeden bajt tohto bloku sa stane nepoužiteľným a spôsobí internú fragmentáciu..
Zvážte vyššie uvedený obrázok, kde sa dynamické prideľovanie pamäte vykonáva. Pri dynamickom prideľovaní pamäte prideľovač prideľuje iba presnú potrebnú veľkosť pre daný program. Prvá pamäť je úplne zadarmo. Potom sa programy A, B, C, D a E rôznych veľkostí načítajú jeden po druhom a umiestnia sa do pamäte súvisle v tomto poradí. Neskôr sa program A a program C uzavrú a sú vyložené z pamäte. Teraz sú v pamäti tri voľné miesta, ale nesusedia. Teraz sa načíta veľký program s názvom Program F, ale ani jeden z blokov voľného priestoru nestačí pre Program F. Pridanie všetkých voľných priestorov je určite dostačujúce pre Program F, ale kvôli nedostatku susedstva je tento priestor nepoužiteľné pre program F. Toto sa nazýva externá fragmentácia.
• Interná fragmentácia nastane, keď sa použije technika prideľovania pamäte s pevnou veľkosťou. Externá fragmentácia nastane, keď sa použije technika dynamickej alokácie pamäte.
• Interná fragmentácia nastane, keď je oddielu s pevnou veľkosťou priradený program / súbor s menšou veľkosťou ako oddiel, takže zvyšok miesta v tejto oblasti je nepoužiteľný. Externá fragmentácia je spôsobená nedostatkom dostatočného priľahlého priestoru po načítaní a vyložení programov alebo súborov na nejaký čas, pretože potom sa tu a tam distribuuje všetok voľný priestor..
• Vonkajšiu fragmentáciu možno ťažiť zhutňovaním, keď sa priradené bloky presunú na jednu stranu, aby sa získal súvislý priestor. Táto operácia však vyžaduje určitý čas a niektoré kritické priradené oblasti, napríklad systémové služby, nemožno bezpečne presunúť. Pri spustení defragmentácie disku v systéme Windows môžeme tento krok zhutnenia vykonaný na pevných diskoch pozorovať.
• Externej fragmentácii možno zabrániť mechanizmami, ako je segmentácia a stránkovanie. Tu je daný logický súvislý priestor virtuálnej pamäte, zatiaľ čo v skutočnosti sú súbory / programy rozdelené do častí a umiestnené sem a tam.
• Vnútornú fragmentáciu je možné zmrzačiť rozdelením niekoľkých veľkostí a priradením programu na základe toho, čo je najlepšie. Stále však nie je úplne odstránená vnútorná fragmentácia.
Zhrnutie:
Interná fragmentácia aj externá fragmentácia sú javy, pri ktorých sa stráca pamäť. K vnútornej fragmentácii dochádza pri alokácii pamäte s pevnou veľkosťou, zatiaľ čo k externej fragmentácii dochádza pri dynamickom alokácii pamäte. Ak je alokovaný oddiel obsadený programom, ktorý je menší ako oddiel, zostávajúci priestor sa zbytočne stráca a spôsobuje vnútornú fragmentáciu. Ak po načítaní a vyložení programov nie je možné nájsť dostatok priľahlého priestoru, z dôvodu skutočnosti, že sa tu a tam voľné miesto distribuuje, spôsobuje to vonkajšiu fragmentáciu. Fragmentácia sa môže vyskytnúť na akomkoľvek pamäťovom zariadení, ako sú RAM, pevné disky a jednotky Flash.