Interní versus externí fragmentace
Rozdíl mezi interní a externí fragmentací je tématem zájmu mnoha lidí, kteří si rádi zdokonalují své počítačové znalosti. Než poznáme tento rozdíl, musíme vidět, co je fragmentace. Fragmentace je jev, který se vyskytuje v paměti počítače, jako je 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 omezováno efektivní využití dostupného prostoru, způsobuje to také problémy s výkonem. K vnitřní fragmentaci dochází, když je alokace paměti založena na oddílech s pevnou velikostí, kde po přiřazení aplikace malé velikosti k slotu je zbývající volné místo v tomto slotu zbytečné. K externí fragmentaci dochází, když je paměť dynamicky alokována, kde se po načtení a vyjmutí několika slotů sem a tam volné místo rozděluje, nikoli aby bylo souvislé.
Co je vnitřní fragmentace?
Vezměte si výše uvedený obrázek, kde je použit mechanismus přidělování paměti s pevnou velikostí. Zpočátku je paměť prázdná a alokátor rozdělil paměť do oddílů s pevnou velikostí. Později byly do prvních tří oddílů nahrány tři programy pojmenované 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 nedochází k plýtvání, ale program B a program C jsou menší než velikost oddílu. Takže v oddílu 2 a oddílu 3 zbývá volné místo. Toto volné místo je však nepoužitelné, protože alokátor paměti přiřazuje pouze celé oddíly programům, ale ne jejich části. Toto plýtvání volným místem se nazývá vnitřní fragmentace.
Ve výše uvedeném příkladu se jedná o stejně velké pevné oddíly, ale to se může stát i v situaci, kdy jsou k dispozici oddíly různých pevných velikostí. Obvykle je paměť nebo nejtěžší prostor rozdělen do bloků, které mají obvykle velikost 2, například 2, 4, 8, 16 bajtů. Takže program nebo soubor o 3 bajtech bude přiřazen 4 bajtovému bloku, ale jeden bajt tohoto bloku se stane nepoužitelným a způsobí vnitřní fragmentaci.
Co je externí fragmentace?
Zvažte obrázek výše, kde se alokace paměti provádí dynamicky. Při dynamickém přidělování paměti alokátor přiděluje pouze přesně potřebnou velikost pro daný program. První paměť je zcela zdarma. Poté se jeden po druhém načtou programy A, B, C, D a E různých velikostí a v tomto pořadí jsou umístěny souvisle do paměti. Později se program A a program C zavřou a uvolní se z paměti. Nyní jsou v paměti tři oblasti volného místa, ale nesousedí. Nyní bude načten velký program nazvaný Program F, ale ani jeden z bloků volného místa nestačí pro Program F. Přidání všech volných míst je rozhodně dostačující pro Program F, ale kvůli nedostatku sousedství je tento prostor nepoužitelný pro program F. Tomu se říká externí fragmentace.
Jaký je rozdíl mezi vnitřní a vnější fragmentací?
• K vnitřní fragmentaci dochází při použití techniky přidělení paměti s pevnou velikostí. K externí fragmentaci dochází při použití techniky dynamické alokace paměti.
• K vnitřní fragmentaci dochází, když je programu/souboru přiřazen pevný diskový oddíl s menší velikostí než diskový oddíl, čímž je zbytek prostoru v tomto oddílu nepoužitelný. Externí fragmentace je způsobena nedostatkem dostatečného přilehlého prostoru po načtení a vyjmutí programů nebo souborů po určitou dobu, protože pak je veškerý volný prostor distribuován sem a tam.
• Externí fragmentaci lze těžit zhutněním, kdy 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í můžeme pozorovat na pevných discích při spuštění defragmentace disku ve Windows.
• Externí fragmentaci lze zabránit mechanismy, jako je segmentace a stránkování. Zde je dán logický souvislý virtuální paměťový prostor, zatímco ve skutečnosti jsou soubory/programy rozděleny na části a umístěny sem a tam.
• Vnitřní fragmentaci lze zmrzačit tím, že budete mít oddíly o několika velikostech a přiřadíte program podle toho, co nejlépe vyhovuje. Stále však vnitřní fragmentace není zcela odstraněna.
Shrnutí:
Interní versus externí fragmentace
Jak vnitřní, tak vnější fragmentace jsou jevy, při kterých se plýtvá pamětí. 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 přidělený diskový oddíl obsazen programem, který je menší než diskový oddíl, dojde k plýtvání zbývajícím místem, což způsobí vnitřní fragmentaci. Když po načtení a vyjmutí programů nelze najít dostatek sousedního místa, protože volné místo je rozmístěno sem a tam, dochází k vnější fragmentaci. Fragmentace může nastat v jakémkoli paměťovém zařízení, jako je RAM, pevný disk a flash disky.