Różnica między fragmentacją wewnętrzną i zewnętrzną

Fragmentacja wewnętrzna a zewnętrzna
 

Różnica między fragmentacją wewnętrzną i zewnętrzną jest przedmiotem zainteresowania wielu, którzy lubią doskonalić 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ęć RAM lub dyski twarde, które powoduje marnotrawstwo i nieefektywne wykorzystanie wolnego miejsca. Chociaż wydajne wykorzystanie dostępnej przestrzeni jest utrudnione, powoduje to również problemy z wydajnością. Fragmentacja wewnętrzna występuje, gdy alokacja pamięci oparta jest na partycjach o stałym rozmiarze, w których po przypisaniu do gniazda aplikacji o małym rozmiarze marnuje się pozostałe wolne miejsce w tym gnieździe. Fragmentacja zewnętrzna występuje, gdy pamięć jest dynamicznie przydzielana, gdzie po załadowaniu i rozładowaniu kilku gniazd tutaj i tam, wolna przestrzeń jest rozdzielana, a nie ciągła.

Co to jest fragmentacja wewnętrzna?

Rozważ powyższy rysunek, w którym przestrzegany jest mechanizm przydzielania pamięci o stałej wielkości. Początkowo pamięć jest pusta, a alokator podzielił pamięć na partycje o stałym rozmiarze. Następnie trzy programy o nazwach A, B, C zostały załadowane do pierwszych trzech partycji, podczas gdy czwarta partycja jest nadal wolna. Program A odpowiada rozmiarowi partycji, więc nie ma marnotrawstwa na tej partycji, ale Program B i Program C są mniejsze niż rozmiar partycji. Tak więc w części 2 i partycji 3 pozostało wolne miejsce. Jednak ta wolna przestrzeń jest bezużyteczna, ponieważ alokator pamięci przypisuje tylko pełne partycje do programów, ale nie ma jej części. To marnotrawstwo wolnej przestrzeni nazywa się fragmentacją wewnętrzną.

W powyższym przykładzie partycje stałe są równej 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 najtrudniejsze miejsce jest podzielone na bloki, które są zwykle wielkości potęg 2, takich jak 2, 4, 8, 16 bajtów. Tak więc program lub plik 3 bajtów zostanie przypisany do 4-bajtowego bloku, ale jeden bajt tego bloku stanie się bezużyteczny, powodując fragmentację wewnętrzną.

Co to jest fragmentacja zewnętrzna?

Rozważ powyższy rysunek, w 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 darmowa. Następnie programy A, B, C, D i E o różnych rozmiarach są ładowane jeden po drugim i są kolejno umieszczane w pamięci w tej kolejności. Następnie program A i program C zamyka się i są one usuwane z pamięci. Teraz w pamięci są trzy wolne miejsca, ale nie sąsiadują one ze sobą. Teraz zostanie załadowany duży program o nazwie Program F, ale żaden blok wolnego miejsca nie jest wystarczający dla Programu F. Dodanie wszystkich wolnych miejsc jest zdecydowanie wystarczające dla Programu F, ale z powodu braku przyległości to miejsce jest nie nadaje się do programu F. Nazywa się to fragmentacją zewnętrzną.

Jaka jest różnica między fragmentacją wewnętrzną i zewnętrzną?

• Fragmentacja wewnętrzna występuje, gdy stosowana jest technika alokacji pamięci o stałym rozmiarze. Fragmentacja zewnętrzna występuje, gdy stosowana jest technika dynamicznej alokacji pamięci.

• Wewnętrzna fragmentacja występuje, gdy partycja o stałym rozmiarze jest przypisana do programu / pliku o mniejszym rozmiarze niż partycja, co sprawia, że ​​reszta miejsca na tej partycji jest bezużyteczna. Fragmentacja zewnętrzna wynika z braku wystarczającej ilości sąsiedniego miejsca po ładowaniu i rozładowywaniu programów lub plików przez pewien czas, ponieważ wtedy całe wolne miejsce jest dystrybuowane tu i tam.

• Fragmentację zewnętrzną można wydobywać przez zagęszczanie, w którym przypisane bloki są przenoszone na jedną stronę, dzięki czemu uzyskuje się ciągłą przestrzeń. Ta operacja wymaga jednak czasu i nie można bezpiecznie przenosić niektórych krytycznych obszarów, na przykład usług systemowych. Ten krok zagęszczania można zaobserwować na dyskach twardych podczas uruchamiania defragmentatora dysków w systemie Windows.

• Fragmentacji zewnętrznej można zapobiec dzięki takim mechanizmom, jak segmentacja i stronicowanie. Tutaj podana jest logiczna ciągła przestrzeń pamięci wirtualnej, podczas gdy w rzeczywistości pliki / programy są dzielone na części i umieszczane tu i tam.

• Fragmentację wewnętrzną można okaleczyć, stosując partycje o kilku rozmiarach i przypisując program w oparciu o najlepsze dopasowanie. Jednak wciąż wewnętrzna fragmentacja nie jest w pełni wyeliminowana.

Streszczenie:

Fragmentacja wewnętrzna a zewnętrzna

Fragmentacja wewnętrzna i zewnętrzna to zjawiska, w których marnuje się pamięć. Fragmentacja wewnętrzna występuje w alokacji pamięci o stałym rozmiarze, natomiast fragmentacja zewnętrzna występuje w alokacji pamięci dynamicznej. Gdy przydzielona partycja jest zajęta przez program mniejszy niż partycja, pozostała przestrzeń zostaje zmarnowana, powodując fragmentację wewnętrzną. Gdy po załadowaniu i rozładowaniu programów nie można znaleźć wystarczającej ilości sąsiedniej przestrzeni, ze względu na fakt, że wolne miejsce jest dystrybuowane tu i tam, powoduje to fragmentację zewnętrzną. Fragmentacja może wystąpić w dowolnym urządzeniu pamięci, takim jak RAM, dysk twardy i dyski flash.