Fragmentacja wewnętrzna a zewnętrzna
Różnica między fragmentacją wewnętrzną i zewnętrzną jest przedmiotem zainteresowania wielu osób, które lubią poszerzać swoją wiedzę komputerową. Zanim poznamy tę różnicę, musimy zobaczyć, czym jest fragmentacja. Fragmentacja to zjawisko występujące w pamięci komputera, takiej jak pamięć o dostępie swobodnym (RAM) lub dyski twarde, które powoduje marnotrawstwo i nieefektywne wykorzystanie wolnego miejsca. Chociaż efektywne wykorzystanie dostępnej przestrzeni jest utrudnione, powoduje to również problemy z wydajnością. Wewnętrzna fragmentacja występuje, gdy alokacja pamięci jest oparta na partycjach o stałym rozmiarze, gdzie po przypisaniu aplikacji o małym rozmiarze do gniazda marnowane jest pozostałe wolne miejsce w tym gnieździe. Fragmentacja zewnętrzna występuje, gdy pamięć jest alokowana dynamicznie, gdzie po załadowaniu i wyładowaniu kilku gniazd tu i tam wolna przestrzeń jest raczej dystrybuowana niż ciągła.
Co to jest fragmentacja wewnętrzna?
Rozważ powyższy rysunek, na którym zastosowano mechanizm alokacji pamięci o stałym rozmiarze. Początkowo pamięć jest pusta, a alokator podzielił ją na partycje o stałym rozmiarze. Następnie trzy programy o nazwach A, B, C zostały załadowane na pierwsze trzy partycje, podczas gdy czwarta partycja jest nadal wolna. Program A jest zgodny z rozmiarem partycji, więc nie ma strat na tej partycji, ale Program B i Program C są mniejsze niż rozmiar partycji. Tak więc w części ition 2 i partycji 3 pozostaje wolne miejsce. Jednak ta wolna przestrzeń jest bezużyteczna, ponieważ alokator pamięci przypisuje programom tylko pełne partycje, ale nie przypisuje ich żadnej części. To marnotrawstwo wolnej przestrzeni nazywa się fragmentacją wewnętrzną.
W powyższym przykładzie są to partycje o stałej wielkości, ale może się to zdarzyć nawet w sytuacji, gdy dostępne są partycje o różnych stałych rozmiarach. Zwykle pamięć lub najtrudniejsza przestrzeń jest podzielona na bloki, które zwykle mają rozmiar potęg 2, takich jak 2, 4, 8, 16 bajtów. Zatem program lub plik 3-bajtowy zostanie przypisany do 4-bajtowego bloku, ale jeden bajt tego bloku stanie się bezużyteczny, powodując wewnętrzną fragmentację.
Co to jest fragmentacja zewnętrzna?
Rozważ powyższy rysunek, na którym alokacja pamięci odbywa się dynamicznie. W dynamicznej alokacji pamięci, alokator przydziela tylko dokładnie potrzebny rozmiar dla tego programu. Pierwsza pamięć jest całkowicie bezpłatna. Następnie Programy A, B, C, D i E o różnych rozmiarach są ładowane jeden po drugim i umieszczane w pamięci w sposób ciągły w tej kolejności. Następnie program A i program C zamykają się i są wyładowywane z pamięci. Teraz w pamięci są trzy wolne obszary, ale nie sąsiadują one ze sobą. Teraz zostanie załadowany duży program o nazwie Program F, ale żaden z bloków wolnego miejsca nie jest wystarczający dla Programu F. Dodanie wszystkich wolnych miejsc jest zdecydowanie wystarczające dla Programu F, ale z powodu braku sąsiedztwa ta przestrzeń jest bezużyteczne dla Programu F. Nazywa się to fragmentacją zewnętrzną.
Jaka jest różnica między fragmentacją wewnętrzną a zewnętrzną?
• Fragmentacja wewnętrzna występuje, gdy używana jest technika alokacji pamięci o stałym rozmiarze. Fragmentacja zewnętrzna występuje, gdy używana jest technika dynamicznej alokacji pamięci.
• Fragmentacja wewnętrzna występuje, gdy partycja o stałym rozmiarze jest przypisana do programu / pliku o rozmiarze mniejszym niż partycja, przez co reszta miejsca na tej partycji nie nadaje się do użytku. Fragmentacja zewnętrzna jest spowodowana brakiem wystarczającej ilości sąsiedniego miejsca po ładowaniu i usuwaniu programów lub plików przez pewien czas, ponieważ wtedy całe wolne miejsce jest rozprowadzane tu i tam.
• Fragmentację zewnętrzną można wydobywać przez zagęszczanie, w którym przypisane bloki są przesuwane na jedną stronę, tak aby uzyskać przylegającą przestrzeń. Jednak ta operacja wymaga czasu, a także niektórych krytycznych przydzielonych obszarów, na przykład usług systemowych, nie można bezpiecznie przenieść. Możemy obserwować ten krok kompaktowania wykonywany na dyskach twardych podczas uruchamiania defragmentatora dysków w systemie Windows.
• Fragmentacji zewnętrznej można zapobiec dzięki mechanizmom takim jak segmentacja i stronicowanie. Tutaj podana jest logiczna ciągła wirtualna przestrzeń pamięci, podczas gdy w rzeczywistości pliki / programy są dzielone na części i umieszczane tu i tam.
• Wewnętrzną fragmentację można okaleczyć, mając partycje o kilku rozmiarach i przypisując program w oparciu o najlepsze dopasowanie. Jednak nadal wewnętrzna fragmentacja nie jest w pełni wyeliminowana.
Streszczenie:
Fragmentacja wewnętrzna a zewnętrzna
Zarówno fragmentacja wewnętrzna, jak i zewnętrzna to zjawiska, w których marnuje się pamięć. Fragmentacja wewnętrzna występuje w przypadku alokacji pamięci o stałym rozmiarze, podczas gdy fragmentacja zewnętrzna występuje w przypadku dynamicznej alokacji pamięci. Gdy przydzielona partycja jest zajęta przez program mniejszy niż partycja, pozostałe miejsce jest marnowane, powodując wewnętrzną fragmentację. Gdy po załadowaniu i wyładowaniu programów nie można znaleźć wystarczającej ilości sąsiedniego miejsca, ze względu na to, że wolne miejsce jest rozprowadzane tu i tam, powoduje to zewnętrzną fragmentację. Fragmentacja może wystąpić w dowolnym urządzeniu pamięci, takim jak pamięć RAM, dysk twardy i dyski flash.