Zalecane, 2019

Wybór Redakcji

Różnica między przydziałami pamięci przyległej i nieciągłej

Pamięć to duża liczba bajtów, gdzie każdy bajt ma swój własny adres. Przydzielanie pamięci można podzielić na dwie metody: przydział alokacji pamięci i nieciągłe przydzielanie pamięci. Główną różnicą między przydziałem pamięci Stałe i Nieciągłe jest to, że przyległa alokacja pamięci przypisuje kolejne bloki pamięci do procesu żądającego dla pamięci, podczas gdy nieciągła alokacja pamięci przypisuje oddzielne bloki pamięci w różnych położeniach w przestrzeni pamięci w sposób nie po kolei do proces żądający pamięci. Omówimy nieco więcej różnic między alokacją przyległą i nieciągłą przy pomocy tabeli porównawczej pokazanej poniżej.

Wykres porównania

Podstawa porównaniaCiągłe przydzielanie pamięciNieciągłe przydzielanie pamięci
PodstawowyPrzydziela kolejne bloki pamięci do procesu.Przydziela oddzielne bloki pamięci do procesu.
Koszty ogólnePrzyległa alokacja pamięci nie ma wpływu na translację adresów podczas wykonywania procesu.Nieciągłe przydzielanie pamięci wiąże się z koniecznością tłumaczenia adresu podczas wykonywania procesu.
Wskaźnik wykonaniaProces wykonuje fatser w przydziale alokacji pamięciProces wykonuje się stosunkowo wolniej w przypadku nieciągłego przydzielania pamięci.
RozwiązanieMiejsce w pamięci musi być podzielone na partycję o stałej wielkości, a każda partycja jest przydzielana tylko do jednego procesu.Podziel proces na kilka bloków i umieść je w różnych częściach pamięci, zależnie od dostępności dostępnej pamięci.
StółTabela jest utrzymywana przez system operacyjny, który utrzymuje listę dostępnych i zajmowanych partycji w obszarze pamięciTabela musi być utrzymywana dla każdego procesu, który przenosi adresy bazowe każdego bloku, który został pozyskany przez proces w pamięci.

Definicja przydziału przydziału pamięci

System operacyjny i procesy użytkownika muszą być umieszczone w pamięci głównej. Stąd pamięć główna jest podzielona na dwie partycje: na jednej partycji znajduje się system operacyjny, a na innych procesy użytkownika. W zwykłych warunkach kilka procesów użytkownika musi znajdować się w pamięci w tym samym czasie, dlatego ważne jest rozważenie przydziału pamięci do procesów.

Przydział alokacji pamięci jest jedną z metod przydzielania pamięci. Przy alokacji przyległej pamięci, gdy proces żąda pamięci, pojedyncza ciągła sekcja bloków pamięci jest przypisywana do procesu zgodnie z jego wymaganiami.

Przylegającą alokację pamięci można uzyskać przez podzielenie pamięci na partycję o stałej wielkości i przydzielenie każdej partycji tylko do jednego procesu. Ale spowoduje to stopień multiprogramowania, związany z liczbą stałych partycji wykonanych w pamięci. Ciągły przydział pamięci prowadzi również do wewnętrznej fragmentacji . Podobnie, jeśli blok pamięci o stałym rozmiarze przydzielony do procesu jest nieco większy niż jego wymaganie, wówczas pozostała przestrzeń pamięci w bloku nazywana jest fragmentacją wewnętrzną. Gdy proces znajdujący się w partycji kończy działanie, partycja staje się dostępna dla innego procesu.

W schemacie zmiennych partycji system operacyjny utrzymuje tabelę, która wskazuje, która partycja pamięci jest wolna i która zajmuje te procesy. Przyległa alokacja pamięci przyspiesza wykonywanie procesu przez zmniejszenie narzutów translacji adresów.

Definicja Nieciągłej alokacji pamięci

Nieciągłe przydzielanie pamięci umożliwia procesowi uzyskanie kilku bloków pamięci w różnych lokalizacjach w pamięci zgodnie z jego wymaganiami. Nieciągłe przydzielanie pamięci zmniejsza również straty pamięci spowodowane wewnętrzną i zewnętrzną fragmentacją. Ponieważ wykorzystuje otwory pamięci, utworzone podczas fragmentacji wewnętrznej i zewnętrznej.

Stronicowanie i segmentacja to dwa sposoby, dzięki którym fizyczna przestrzeń adresowa procesu nie jest ciągła. Przy nieciągłym przydzielaniu pamięci proces jest podzielony na bloki (strony lub segmenty), które są umieszczane w różnych obszarach pamięci zgodnie z dostępnością pamięci.

Nieciągłe przydzielanie pamięci ma zaletę zmniejszania strat pamięci, ale zwiększa również koszty związane z translacją adresu. Ponieważ części procesu są umieszczane w innej lokalizacji w pamięci, spowalnia to wykonywanie pamięci, ponieważ czas jest zużywany podczas tłumaczenia adresu.

W tym przypadku system operacyjny musi utrzymywać tabelę dla każdego procesu, który zawiera adres bazowy każdego bloku, który jest pozyskiwany przez proces w przestrzeni pamięci.

Kluczowe różnice między przynależnymi i nieciągłymi alokacjami pamięci

  1. Podstawowa różnica między alokacją pamięci ciągłej i nieciągłej jest taka, że ​​przyległa alokacja przydziela jeden ciągły blok pamięci do procesu, podczas gdy niejednorodna alokacja dzieli proces na kilka bloków i umieszcza je w innej przestrzeni adresowej pamięci, tj. W sposób nieciągły. .
  2. Przy alokacji przyległej pamięci proces jest przechowywany w ciągłej przestrzeni pamięci; więc nie ma narzutu tłumaczenia adresu podczas wykonywania. Ale w nieciągłym przydzielaniu pamięci występuje obciążenie związane z translacją adresu podczas wykonywania procesu, ponieważ bloki procesu są rozmieszczone w przestrzeni pamięci.
  3. Proces zapisany w pamięci ciągłej działa szybciej w porównaniu z procesem przechowywanym w nieciągłej pamięci.
  4. Rozwiązaniem dla przydziału alokacji pamięci jest podzielenie obszaru pamięci na partycję o stałej wielkości i przydzielenie partycji tylko do jednego procesu. Z drugiej strony, przy nieciągłym przydzielaniu pamięci proces jest podzielony na kilka bloków, a każdy blok jest umieszczany w różnych miejscach pamięci, zależnie od dostępności pamięci.
  5. Przy alokacji przyległej pamięci system operacyjny musi utrzymywać tabelę, która wskazuje, która partycja jest dostępna dla procesu i która jest zajęta przez proces. Przy nieciągłym przydzielaniu pamięci, tabela jest utrzymywana dla każdego procesu, który wskazuje adres bazowy każdego bloku procesu umieszczonego w przestrzeni pamięci.

Wniosek:

Przyległa alokacja pamięci nie powoduje żadnych kosztów ogólnych i przyspiesza szybkość realizacji procesu, ale zwiększa marnotrawstwo pamięci . Z kolei nieciągłe przydzielanie pamięci tworzy narzut tłumaczenia adresu, zmniejsza szybkość wykonywania procesu, ale zwiększa wykorzystanie pamięci . Są więc plusy i minusy obu metod alokacji.

Top