Zalecane, 2019

Wybór Redakcji

Różnica między stronicowaniem a segmentacją w systemie operacyjnym

Zarządzanie pamięcią w systemie operacyjnym jest niezbędną funkcjonalnością, która umożliwia przydzielenie pamięci do procesów w celu wykonania i zwalnianie pamięci, gdy proces nie jest już potrzebny. W tym artykule omówimy dwa schematy zarządzania pamięcią i segmentację. Podstawowa różnica między stronicowaniem a segmentacją polega na tym, że "strona" jest blokiem o stałej wielkości, podczas gdy "segment" jest blokiem o zmiennej wielkości.

Omówimy nieco więcej różnic między stronicowaniem a segmentacją za pomocą tabeli porównania przedstawionej poniżej.

Wykres porównania

Podstawa do porównaniaStronicowanieSegmentacja
PodstawowyStrona ma stały rozmiar bloku.Segment ma zmienną wielkość.
PodziałPaging może prowadzić do wewnętrznej fragmentacji.Segmentacja może prowadzić do fragmentacji zewnętrznej.
AdresAdres podany przez użytkownika jest podzielony przez procesor na numer strony i przesunięcie.Użytkownik określa każdy adres za pomocą dwóch wielkości, numeru segmentu i przesunięcia (limit segmentu).
RozmiarSprzęt decyduje o wielkości strony.Rozmiar segmentu jest określony przez użytkownika.
StółStronicowanie obejmuje tabelę stron zawierającą adres bazowy każdej strony.Segmentacja obejmuje tabelę segmentów, która zawiera numer segmentu i przesunięcie (długość segmentu).

Definicja stronicowania

Paging to schemat zarządzania pamięcią . Paging pozwala na przechowywanie procesu w pamięci w sposób nieciągły . Przechowywanie procesu w sposób nieciągły rozwiązuje problem fragmentacji zewnętrznej .

W celu zaimplementowania stronicowania fizyczne i logiczne obszary pamięci są podzielone na te same bloki o stałej wielkości. Te bloki o stałej wielkości pamięci fizycznej nazywane są klatkami, a bloki o stałej wielkości pamięci logicznej nazywane są stronami .

Kiedy proces musi zostać wykonany, strony procesu z logicznej przestrzeni pamięci są ładowane do ramek fizycznej przestrzeni adresowej pamięci. Teraz adres generowany przez procesor w celu uzyskania dostępu do ramki jest podzielony na dwie części, tj. Numer strony i przesunięcie strony .

Tabela stron używa numeru strony jako indeksu; każdy proces ma oddzielną tabelę stron, która odwzorowuje adres logiczny na adres fizyczny. Tabela stron zawiera adres bazowy strony przechowywanej w ramce fizycznego obszaru pamięci. Adres bazowy zdefiniowany przez tabelę stron jest łączony z odsunięciem strony w celu zdefiniowania numeru ramki w pamięci fizycznej, w której przechowywana jest strona.

Definicja segmentacji

Podobnie jak w przypadku stronicowania, segmentacja to także schemat zarządzania pamięcią . Obsługuje widok użytkownika pamięci. Proces jest podzielony na segmenty o zmiennej wielkości i ładowany do logicznej przestrzeni adresowej pamięci.

Logiczna przestrzeń adresowa to zbiór segmentów o zmiennej wielkości. Każdy segment ma swoją nazwę i długość . W celu wykonania, segmenty z logicznej przestrzeni pamięci są ładowane do fizycznej pamięci.

Adres podany przez użytkownika zawiera dwie wielkości, nazwę segmentu i przesunięcie . Segmenty są numerowane i przekazywane przez numer segmentu zamiast nazwy segmentu. Ten numer segmentu jest używany jako indeks w tabeli segmentów, a wartość przesunięcia decyduje o długości lub limicie segmentu. Numer segmentu i przesunięcie razem łącznie generują adres segmentu w fizycznej pamięci.

Kluczowe różnice między stronicowaniem a segmentacją

  1. Podstawowa różnica między stronicowaniem a segmentacją polega na tym, że strona ma zawsze stały rozmiar bloku, podczas gdy segment ma zmienny rozmiar .
  2. Paging może prowadzić do wewnętrznej fragmentacji, ponieważ strona ma stały rozmiar bloku, ale może się zdarzyć, że proces nie uzyska całego rozmiaru bloku, który wygeneruje wewnętrzny fragment w pamięci. Segmentacja może prowadzić do fragmentacji zewnętrznej, ponieważ pamięć jest wypełniona blokami o zmiennej wielkości.
  3. W stronicowaniu użytkownik podaje tylko jedną liczbę całkowitą jako adres podzielony przez sprzęt na numer strony i przesunięcie . Z drugiej strony, w segmentacji użytkownik określa adres w dwóch wielkościach, tj. Numer segmentu i przesunięcie .
  4. Rozmiar strony jest określony lub określony przez sprzęt . Z drugiej strony rozmiar segmentu jest określony przez użytkownika .
  5. Podczas stronicowania tabela stron mapuje adres logiczny na adres fizyczny i zawiera adres bazowy każdej strony przechowywanej w ramkach fizycznego obszaru pamięci. Jednak w segmentacji tabela segmentów odwzorowuje adres logiczny na adres fizyczny i zawiera numer segmentu i przesunięcie (limit segmentu).

Wniosek:

Stronicowanie i segmentacja są schematami zarządzania pamięcią . Paging umożliwia podział pamięci na blok o stałej wielkości, natomiast segmentacja dzieli przestrzeń pamięci na segmenty o rozmiarze bloku zmiennego . Gdy wywoływanie prowadzi do wewnętrznej fragmentacji, segmentacja prowadzi do fragmentacji zewnętrznej .

Top