Zalecane, 2024

Wybór Redakcji

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

Ilekroć proces jest ładowany lub usuwany z bloku pamięci fizycznej, tworzy małą dziurę w przestrzeni pamięci, która jest nazywana fragmentem. Z powodu fragmentacji system nie może przydzielić przylegającej przestrzeni pamięci do procesu, mimo że ma żądaną ilość pamięci, ale w sposób nieciągły. Fragmentację dzieli się dalej na dwie kategorie: Fragmentacja wewnętrzna i zewnętrzna.

Zarówno wewnętrzna, jak i zewnętrzna klasyfikacja wpływa na szybkość dostępu do danych w systemie. Mają podstawową różnicę między nimi, tj. Wewnętrzna fragmentacja występuje, gdy bloki o stałej wielkości są przydzielane do procesu bez uwzględniania rozmiaru procesu, a fragmentacja zewnętrzna występuje, gdy procesy są dynamicznie przydzielane do pamięci. Przejdźmy dalej i omówmy różnice, przyczyny, rozwiązania dotyczące fragmentacji wewnętrznej i zewnętrznej za pomocą poniższego wykresu porównawczego.

Wykres porównania

Podstawa do porównaniaFragmentacja wewnętrznaFragmentacja zewnętrzna
PodstawowyWystępuje, gdy bloki o stałej wielkości są przydzielane do procesów.Występuje, gdy przestrzeń pamięci o zmiennym rozmiarze jest przydzielana dynamicznie do procesów.
WystępowanieGdy pamięć przypisana do procesu jest nieco większa niż pamięć wymagana przez proces, tworzy to wolną przestrzeń w przydzielonym bloku, powodując wewnętrzną fragmentację.Po usunięciu procesu z pamięci tworzy on wolną przestrzeń w pamięci, powodując fragmentację zewnętrzną.
RozwiązaniePamięć musi być podzielona na bloki o zmiennych rozmiarach i przypisać do procesu najlepszy blok dopasowania.Zagęszczanie, stronicowanie i segmentacja.

Definicja wewnętrznej fragmentacji

Wewnętrzna fragmentacja występuje, gdy pamięć jest podzielona na bloki o ustalonej wielkości . Ilekroć żądanie procesu dla pamięci, blok o stałej wielkości jest przydzielany do procesu. W przypadku, gdy pamięć przypisana do procesu jest nieco większa niż wymagana pamięć, różnica między pamięcią przypisaną a żądaną jest wewnętrzną fragmentacją .

Ta pozostała przestrzeń wewnątrz bloku o stałej wielkości nie może być przypisana do żadnego procesu, ponieważ nie byłaby wystarczająca do spełnienia żądania pamięci przez proces. Rozumiemy wewnętrzną fragmentację na przykładzie. Przestrzeń pamięci jest podzielona na bloki o stałej wielkości 18 464 bajty. Powiedzmy, że proces procesowy dla 18 460 bajtów i podzielonego bloku o stałej wielkości 18 464 bajtów jest przydzielany do procesu. Wynik to 4 bajty 18464 bajty pozostały puste, co jest wewnętrzną fragmentacją.

Narzut utrzymywania śladu otworu wewnętrznego utworzonego w wyniku wewnętrznego rozdrobnienia jest znacznie większy niż liczba wewnętrznych otworów. Problem wewnętrznej fragmentacji można rozwiązać, dzieląc pamięć na blok o zmiennej wielkości i przypisując blok o największej wielkości do procesu żądającego pamięci. Mimo to nie wyeliminuje całkowicie problemu wewnętrznej fragmentacji, ale zmniejszy ją do pewnego stopnia.

Definicja zewnętrznej fragmentacji

Fragmentacja zewnętrzna występuje wtedy, gdy w pamięci znajduje się wystarczająca ilość miejsca, aby spełnić żądanie pamięciowe procesu. Ale żądanie pamięci procesu nie może zostać spełnione, ponieważ dostępna pamięć jest w sposób nieciągły. Albo zastosujesz strategię alokacji pamięci pierwszego dopasowania, albo najlepszego dopasowania, która spowoduje zewnętrzną fragmentację.

Kiedy proces jest ładowany i usuwany z pamięci, wolna przestrzeń tworzy dziurę w przestrzeni pamięci i jest wiele takich dziur w przestrzeni pamięci, nazywa się to fragmentacją zewnętrzną. Chociaż pierwsze dopasowanie i dopasowanie najlepiej wpływa na ilość fragmentacji zewnętrznej, nie można go całkowicie wyeliminować. Zagęszczanie może być rozwiązaniem dla fragmentacji zewnętrznej.

Algorytm zagęszczania tasuje całą zawartość pamięci na jedną stronę i uwalnia jeden duży blok pamięci. Ale algorytm zagęszczania jest drogi. Istnieje alternatywne rozwiązanie problemu fragmentacji zewnętrznej, które pozwoli procesowi na uzyskanie pamięci fizycznej w sposób nieciągły. Techniki do osiągnięcia tego rozwiązania to przywoływanie i segmentacja.

Kluczowe różnice między fragmentacją wewnętrzną i zewnętrzną

  1. Podstawową przyczyną występowania wewnętrznej i zewnętrznej fragmentacji jest fragmentacja wewnętrzna, gdy pamięć jest podzielona na bloki o stałej wielkości, podczas gdy fragmentacja zewnętrzna występuje, gdy pamięć jest podzielona na bloki o zmiennej wielkości .
  2. Kiedy blok pamięci przydzielony do procesu wyjdzie nieco większy niż żądana pamięć, wówczas wolna przestrzeń pozostawiona w przydzielonym bloku pamięci powoduje wewnętrzną fragmentację. Z drugiej strony, kiedy proces jest usuwany z pamięci, tworzy wolną przestrzeń, powodując dziurę w pamięci, którą nazywa się zewnętrzną fragmentacją.
  3. Problem wewnętrznej fragmentacji można rozwiązać, dzieląc pamięć na bloki o zmiennej wielkości i przypisując blok najlepiej pasujący do procesu żądania. Jednak rozwiązaniem dla fragmentacji zewnętrznej jest zagęszczanie, ale jest ono kosztowne w implementacji, więc procesy muszą umożliwiać uzyskanie pamięci fizycznej w sposób nieciągły, aby to osiągnąć wprowadzono technikę stronicowania i segmentacji.

Wniosek:

Problem wewnętrznej fragmentacji można zmniejszyć, ale nie można go całkowicie wyeliminować. Obsługa stronicowania i segmentacji pomaga w wykorzystaniu przestrzeni uwolnionej z powodu zewnętrznej fragmentacji, umożliwiając procesowi zajęcie pamięci w sposób nieciągły.

Top