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

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

W kontekście systemu plików fragmentacja jest nieefektywnym użyciem przestrzeni pamięci do przechowywania zawartości pojedynczego pliku w różnych lokalizacjach na dysku, a nie w jednej ciągłej sekwencji bitów w jednym miejscu. Fragmentacja jest zjawiskiem naturalnym, które występuje fizycznie na dysku twardym lub czasem na module pamięci, gdy dane nie są wystarczające wystarczające na dysku na dysku.

Dane są czasami zapisywane poza kolejnością, co oznacza, że ​​elementy danych nie są umieszczane obok siebie na dysku z powodu częstego użycia plików. Te fragmenty danych są określane jako fragmenty. W pewnym momencie system operacyjny musiałby uzyskać dostęp do systemu plików, aby znaleźć, gdzie różne fragmenty znajdują się na dysku.

Na przykład, gdy tworzysz nowy dokument, powiedzmy plik słów; Plik wydaje się być w jednym miejscu. Możesz otworzyć plik, edytować go lub usunąć - cokolwiek chcesz. Wydaje się, że wszystkie działania mają miejsce fizycznie na drodze, przynajmniej tak myślisz.

Dysk twardy może zapisywać fragmenty plików w jednym obszarze urządzenia, ale reszta istnieje dosłownie gdzie indziej na urządzeniu pamięci. Mówiąc prosto, fragmentacja odnosi się do zmarnowanej przestrzeni pamięci w systemie plików, umożliwiając opracowanie luki między różnymi częściami pliku.

Fragmentacja w zasadzie występuje w dynamicznym systemie alokacji pamięci, ponieważ zarezerwowała zbyt dużo miejsca dla pliku, co skutkuje otwartymi obszarami wokół niego.

Co to jest fragmentacja wewnętrzna?

W jakiś sposób dotyczy partycjonowania o stałym rozmiarze. System przydziela pamięć do różnych programów i procesów, dzieląc je na małe bloki zgodnie z wymogami programu. Jednak czasem przydzielana jest więcej pamięci niż jest to konieczne, co ostatecznie powoduje, że nadmiar pamięci przechodzi marnotrawstwo lub pozostanie nieużywane.

Na przykład pamięć można przydzielić tylko do programów w blokach podzielnych przez 4, 8 lub 16. Gdy proces żąda 24 bajtów, zwykle dostaje blok 32 bajtów, nadmiar 8 bajtów pozostaje nieużywany. Zatem nieużywana pamięć znajduje się w określonej przydzielonej lokalizacji i jest tak mała, że ​​nie można przydzielić nowego procesu, co powoduje odpady. Odpady te są określane jako fragmentacja wewnętrzna. Prawdopodobnie jedynym sposobem na usunięcie tego rodzaju fragmentacji jest dynamiczna alokacja pamięci.

Co to jest fragmentacja zewnętrzna?

Pamięć główna tworzy otwory między częściami przydzielonej pamięci, które są zbyt małe, aby utrzymać każdy proces. Jest to minus algorytmów alokacji przechowywania, gdy ciągłe bloki nieużywanych przestrzeni nie mogą służyć nowej żądaniu, ponieważ przestrzenie są zbyt małe dla dużych potrzeb w zakresie aplikacji pamięci. Mówiąc najprościej, niekonkurenne bloki tworzą otwory w pamięci, co powoduje niewykorzystane przechowywanie, które są poza przydzielonymi obszarami, co oznacza, że ​​nie można ich używać wraz z pamięcią główną dla większych zadań pamięci. W końcu są izolowane i nie można ich całkowicie wyeliminować z przestrzeni pamięci. Nazywa się to fragmentacją zewnętrzną. Można go usunąć przez zagęszczenie, które tasuje zawartość pamięci, aby umieścić całą wolną pamięć.

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

  1. Podstawy

Wewnętrzna fragmentacja:

Wewnętrzna fragmentacja odnosi się do dodatkowych przestrzeni, które marnują się, gdy więcej pamięci jest przydzielana do procesu niż potrzebne. Zwykle występuje, gdy bloki pamięci o stałej wielkości są przydzielane do programów lub procesów.

Fragmentacja zewnętrzna:

Przeciwnie, fragmentacja zewnętrzna odnosi się do nieużywanych przestrzeni utworzonych między ciągłymi blokami pamięci, które nie są przylegające do siebie.

  1. Występowanie

Wewnętrzna fragmentacja:

Wolna przestrzeń, która tworzy w przydzielonym bloku pamięci, gdy pamięć przydzielona do procesu jest większa niż pamięć wymagana przez proces, jest określana jako fragmentacja wewnętrzna. „Wewnętrzne” odnosi się do nieużywanych bajtów, które znajdują się w większych blokach pamięci.

Fragmentacja zewnętrzna:

Kiedy pamięć główna tworzy otwory, które są zbyt małe, aby zaspokoić każde żądanie, nazywa się ją fragmentacją zewnętrzną.

  1. Powód

Wewnętrzna fragmentacja:

Głównym powodem, dla którego występuje fragmentacja wewnętrzna, jest to, że pamięć jest podzielona na bloki o stałej wielkości .

Fragmentacja zewnętrzna:

Fragmentacja zewnętrzna jest zjawiskiem, które występuje, gdy pamięć jest podzielona na bloki o zmiennej wielkości w oparciu o wielkość różnych procesów.

  1. Rozwiązanie

Wewnętrzna fragmentacja:

Wewnętrzna fragmentacja jest zjawiskiem naturalnym, które można wyeliminować przez dynamiczną alokacja pamięci, która ma dynamiczne przydzielanie części bloków pamięci na procesy na ich żądanie i uwolnić je, gdy nie są one już potrzebne podczas wykonywania programu.

Fragmentacja zewnętrzna:

Z drugiej strony fragmentacja zewnętrzna może zostać wyeliminowana przez zagęszczenie, stronicowanie i segmentację, aby pamięć mogła być przydzielana do procesu w sposób niekonkurencyjny.

Wewnętrzne vs. Fragmentacja zewnętrzna: wykres porównawczy

Podsumowanie fragmentacji wewnętrznej i zewnętrznej

Zarówno fragmentacja wewnętrzna, jak i zewnętrzna są zjawiskami naturalnymi związanymi z nieużywaną przestrzenią pamięci lub marnowaniem pamięci. Wewnętrzna fragmentacja cierpi na nieefektywną alokacja pamięci, która występuje, gdy pamięć przydzielona do procesu jest większa niż żądana, pozostawiając niewykorzystaną przestrzeń w bloku pamięci, co ostatecznie powoduje fragmentację wewnętrzną. Po usunięciu procesu z pamięci fizycznej, wolna przestrzeń zostaje rozpowszechniona tu i tam i nie można znaleźć przyległych bloków pamięci, powodując fragmentację zewnętrzną. Jednak obu zjawisk można uniknąć. Fragmentację wewnętrzną można zmniejszyć poprzez dynamiczne przydzielenie pamięci do procesów, podczas gdy fragmentacja zewnętrzna można najlepiej uniknąć przez zagęszczenie, stronicowanie i segmentację.