
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ównania | Fragmentacja wewnętrzna | Fragmentacja zewnętrzna |
---|---|---|
Podstawowy | Wystę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ępowanie | Gdy 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ązanie | Pamięć 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ą
- 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 .
- 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ą.
- 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.