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

W kontekście systemu plików fragmentacja jest nieefektywnym wykorzystaniem miejsca 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 to naturalne zjawisko, które występuje fizycznie na dysku twardym lub czasami w module pamięci, gdy dane nie są wystarczająco dokładnie zapisane na dysku.

Dane są czasami zapisywane w innej kolejności, co oznacza, że ​​fragmenty danych nie są umieszczane obok siebie na dysku z powodu częstego korzystania z plików. Te fragmenty danych są nazywane fragmentami. W pewnym momencie system operacyjny będzie musiał uzyskać dostęp do systemu plików, aby znaleźć lokalizację różnych fragmentów na dysku.

Na przykład, kiedy tworzysz nowy dokument, powiedzmy plik słowny; plik wydaje się być w jednym miejscu. Możesz otworzyć plik, edytować go lub usunąć - cokolwiek chcesz. Wydaje się, że wszystkie czynności odbywają się fizycznie na dysku, 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 masowej. Mówiąc prościej, fragmentacja odnosi się do zmarnowanej przestrzeni dyskowej w systemie plików, umożliwiając tworzenie odstępów między różnymi częściami pliku.

Fragmentacja występuje w zasadzie w systemie dynamicznej alokacji pamięci, ponieważ zarezerwowała ona zbyt dużo miejsca na plik, co powoduje powstanie otwartych obszarów wokół niego.

Co to jest fragmentacja wewnętrzna?

W jakiś sposób odnosi się to do partycjonowania o stałym rozmiarze. System przydziela pamięć różnym programom i procesom, dzieląc je na małe bloki zgodnie z wymaganiami programu. Jednak czasami przydzielana jest większa ilość pamięci, niż jest to potrzebne procesowi, co ostatecznie powoduje marnowanie lub nadmierne marnowanie pamięci.

Na przykład pamięć można przydzielić tylko programom w blokach podzielnych przez 4, 8 lub 16. Gdy proces żąda 24 bajtów, zwykle otrzymuje blok 32 bajtów, a 8 dodatkowych bajtów pozostaje niewykorzystane. W ten sposób nieużywana pamięć znajduje się w określonej przydzielonej lokalizacji i jest tak mała, że ​​nie można jej przypisać nowego procesu, co powoduje marnotrawstwo. Odpady te określa się jako fragmentację wewnętrzną. Prawdopodobnie jedynym sposobem na usunięcie tego typu fragmentacji jest dynamiczne przydzielanie pamięci.

Co to jest fragmentacja zewnętrzna?

Główna pamięć tworzy dziury między częściami przydzielonej pamięci, które są zbyt małe, aby pomieścić jakikolwiek proces. Wadą algorytmów alokacji pamięci jest to, że ciągłe bloki nieużywanych przestrzeni nie mogą obsłużyć nowego żądania, ponieważ przestrzenie są zbyt małe, aby sprostać wymaganiom dużej pamięci. Mówiąc prosto, niesąsiadujące bloki tworzą dziury w pamięci, powodując niewykorzystaną pamięć, która znajduje się poza przydzielonymi regionami, co oznacza, że ​​nie można jej używać wraz z pamięcią główną do większych zadań pamięciowych. 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 kompaktowanie, które przetasowuje zawartość pamięci, aby umieścić całą wolną pamięć razem.

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

  1. Podstawy

Fragmentacja wewnętrzna:

Fragmentacja wewnętrzna odnosi się do dodatkowych przestrzeni, które marnują się, gdy procesowi przydzielane jest więcej pamięci niż jest to konieczne. Zwykle występuje, gdy bloki pamięci o stałym rozmiarze są przydzielane do programów lub procesów.

Fragmentacja zewnętrzna:

Przeciwnie, fragmentacja zewnętrzna odnosi się do nieużywanych przestrzeni, które powstają między sąsiadującymi blokami pamięci, które nie sąsiadują ze sobą.

  1. Występowanie

Fragmentacja wewnętrzna:

Wolne miejsce, które tworzy się w bloku przydzielonej pamięci, gdy pamięć przydzielona do procesu jest większa niż pamięć wymagana przez proces, nazywana jest fragmentacją wewnętrzną. „Wewnętrzny” odnosi się do nieużywanych bajtów znajdujących się w większych blokach pamięci.

Fragmentacja zewnętrzna:

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

  1. Powód

Fragmentacja wewnętrzna:

Głównym powodem fragmentacji wewnętrznej jest podział pamięci na bloki o stałej wielkości .

Fragmentacja zewnętrzna:

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

  1. Rozwiązanie

Fragmentacja wewnętrzna:

Fragmentacja wewnętrzna jest zjawiskiem naturalnym, które można wyeliminować przez dynamiczny przydział pamięci, który polega na dynamicznym przydzielaniu części bloków pamięci do procesów na ich żądanie i uwalnianiu ich, gdy nie są już potrzebne podczas wykonywania programu.

Fragmentacja zewnętrzna:

Natomiast fragmentację zewnętrzną można wyeliminować przez kompaktowanie, stronicowanie i segmentację, aby pamięć mogła być alokowana do procesu w sposób niesąsiadujący.

Fragmentacja wewnętrzna a zewnętrzna: tabela porównawcza

Podsumowanie fragmentacji wewnętrznej i zewnętrznej

Fragmentacja wewnętrzna i zewnętrzna to naturalne zjawiska związane z niewykorzystaną przestrzenią pamięci lub marnowaniem pamięci. Fragmentacja wewnętrzna cierpi z powodu nieefektywnego przydziału pamięci, który występuje, gdy pamięć przydzielona do procesu jest większa niż wymagana, pozostawiając niewykorzystaną przestrzeń w bloku pamięci, co ostatecznie powoduje fragmentację wewnętrzną. Po usunięciu procesu z pamięci fizycznej, wolne miejsce zostaje tu i tam rozdzielone i nie można znaleźć sąsiednich bloków pamięci, powodując fragmentację zewnętrzną. Oba zjawiska można jednak uniknąć. Fragmentację wewnętrzną można zmniejszyć poprzez dynamiczne przydzielanie pamięci procesom, natomiast fragmentacji zewnętrznej najlepiej można uniknąć przez zagęszczanie, stronicowanie i segmentację.