Rozdíl mezi vnitřní a vnější fragmentací je tématem zájmu mnoha lidí, kteří rádi zdokonalují své počítačové znalosti. Než budeme vědět tento rozdíl, musíme se podívat, co je fragmentace. Fragmentace je jev, ke kterému dochází v počítačové paměti, jako je například paměť RAM (Random Access Memory) nebo pevné disky, což způsobuje plýtvání a neefektivní využití volného místa. I když je omezeno efektivní využití dostupného prostoru, způsobuje to také problémy s výkonem. K vnitřní fragmentaci dochází, když je přidělení paměti založeno na oddílech s pevnou velikostí, kde po přiřazení aplikace malé velikosti ke slotu je zbytečné volné místo tohoto slotu zbytečné. Externí fragmentace nastává, když je paměť dynamicky přidělována, kde po načtení a vyložení několika slotů sem a tam je distribuován volný prostor spíše než sousedící.
Zvažte výše uvedený obrázek, kde je dodržován mechanismus přidělování paměti s pevnou velikostí. Zpočátku je paměť prázdná a alokátor ji rozdělil na oddíly s pevnou velikostí. Později byly do prvních tří oddílů načteny tři programy s názvem A, B, C, zatímco čtvrtý oddíl je stále volný. Program A odpovídá velikosti oddílu, takže v tomto oddílu není plýtvání, ale program B a program C jsou menší než velikost oddílu. V části ition 2 a partition 3 tedy zůstává volné místo. Toto volné místo je však nepoužitelné, protože alokátor paměti přiřadí programy pouze celé oddíly, ale žádné části. Toto plýtvání volným prostorem se nazývá vnitřní fragmentace.
Ve výše uvedeném příkladu se jedná o pevné oddíly stejné velikosti, ale to se může stát i v situaci, kdy jsou dostupné oddíly různých pevných velikostí. Obvykle je paměť nebo nejtěžší prostor rozdělen do bloků, které mají obvykle velikost sil 2, například 2, 4, 8, 16 bajtů. Program nebo soubor 3 bajtů bude tedy přiřazen 4 bajtovému bloku, ale jeden bajt tohoto bloku se stane nepoužitelným a způsobí vnitřní fragmentaci.
Vezměte v úvahu výše uvedený obrázek, kde je přidělování paměti prováděno dynamicky. Při přidělování dynamické paměti přidělovač přidělí pouze přesnou potřebnou velikost pro daný program. První paměť je zcela zdarma. Potom se programy A, B, C, D a E různých velikostí načtou jeden po druhém a umístí se do paměti souvisle v tomto pořadí. Poté se program A a program C zavřou a jsou uvolněny z paměti. Nyní jsou v paměti tři volné oblasti, ale nesousedí. Nyní se načte velký program nazvaný Program F, ale ani jeden z bloků volného prostoru nestačí pro Program F. Přidání všech volných prostorů je určitě dost pro Program F, ale kvůli nedostatku sousedství je tento prostor nepoužitelné pro program F. Tomu se říká externí fragmentace.
• Interní fragmentace nastane, když je použita technika přidělování paměti s pevnou velikostí. Externí fragmentace nastane, když je použita technika dynamického přidělování paměti.
• K vnitřní fragmentaci dochází, když je oddílu / pevné velikosti přiřazen program / soubor s menší velikostí než oddíl, takže zbytek místa v této oblasti je nepoužitelný. Externí fragmentace je způsobena nedostatkem dostatečného sousedního prostoru po načtení a vyložení programů nebo souborů na nějakou dobu, protože pak je zde a tam distribuováno veškeré volné místo.
• Externí fragmentaci lze vytěžit zhutněním, kde se přiřazené bloky přesunou na jednu stranu, čímž se získá souvislý prostor. Tato operace však vyžaduje čas a také určité kritické přiřazené oblasti, například systémové služby, nelze bezpečně přesunout. Tento krok zhutnění provedený na pevných discích můžeme pozorovat při spuštění defragmentace disku v systému Windows.
• Externí fragmentaci lze zabránit mechanismy, jako je segmentace a stránkování. Zde je uveden logický souvislý virtuální paměťový prostor, zatímco ve skutečnosti jsou soubory / programy rozděleny do částí a umísťovány sem a tam.
• Vnitřní fragmentace může být zmrzačena tím, že má oddíly několika velikostí a přiřazuje program založený na tom nejlepším. Interní fragmentace však není zcela eliminována.
Souhrn:
Interní fragmentace i externí fragmentace jsou jevy, kde dochází ke ztrátě paměti. K vnitřní fragmentaci dochází při přidělování paměti s pevnou velikostí, zatímco k externí fragmentaci dochází při dynamickém přidělování paměti. Když je alokovaný oddíl obsazen programem, který je menší než oddíl, zbývá zbytečný prostor, což způsobuje vnitřní fragmentaci. Pokud po načtení a vyložení programů nelze najít dostatek přilehlého prostoru, vzhledem k tomu, že zde a tam je distribuováno volné místo, způsobuje to externí fragmentaci. Fragmentace může nastat v jakémkoli paměťovém zařízení, jako jsou RAM, pevný disk a jednotky Flash.