Różnice lub podobieństwa między segmentowanym stronicowaniem i segmentacją Paged?

Studiowałem połączone systemy przywoławcze / segmentacyjne i w mojej książce były dwa podejścia do tego:

1.paged segmentation
2.segmented paging
Nie mogłem dostrzec różnicy między nimi. Myślę, że w paged segmentacji segment jest podzielony na strony i segmentowane stronicowania strony są podzielone na segmenty, choć Nie wiem, czy mam rację, czy nie. Tymczasem w Internecie połączone stronicowanie / segmentacja jest opisana za pomocą tylko jednego schematu. Nie mogę zrozumieć, dlaczego w moim podręczniku są dwa plany na to. Każda pomoc będzie bardzo mile widziana.
Author: Hashken, 2013-05-20

3 answers

Więc, po energicznym poszukiwaniu w sieci różnicy lub podobieństwa między tymi dwoma pojęciami, znalazłem ostateczną odpowiedź.Przede wszystkim zapisałbym podobieństwa:

  • oba (segmentowane stronicowanie i segmentacja paged) są rodzajem połączonych systemów stronicowania / segmentacji (stronicowanie i segmentacja można łączyć, dzieląc każdy segment na strony).
  • w obu systemach segmenty są podzielone na strony.

Teraz, aby opisać różnice będę musiał zdefiniować i opisać każdy termin osobno:

  • segmentowe stronicowanie- segmenty są podzielone na strony.Implementacja wymaga STR (segment table register) oraz PMT (page map table). w tym schemacie każdy wirtualny adres składa się z numeru segmentu , Numer strony w tym segmencie i offset w obrębie tej strony.Numer segmentu indeksuje się do tabeli segmentów, która daje adres bazowy tabeli stron dla ten segment.Numer strony indeksuje się do tabeli stron,z których każdy wpis jest ramką strony.Dodanie PFN (numeru ramki Strony) oraz offsetu powoduje powstanie adresu fizycznego.Stąd adresowanie może być opisane za pomocą następującej funkcji:

Va = (s,p,w) gdzie, VA jest adresem wirtualnym | / s / określa liczbę segmentów (rozmiar ST), |p| określa ilość stron na segment (rozmiar PT),| w / określa rozmiar strony.

address_map(s, p, w)
{
pa = *(*(STR+s)+p)+w;
return pa;
}

Schemat jest tutaj:

Segmentowe Stronicowanie

  • Paged Segmentation - czasami tabela segmentów lub tabela stron mogą być zbyt duże, aby zachować je w pamięci fizycznej (mogą nawet osiągnąć MBs).Dlatego też tabela segmentów jest również podzielona na strony i w ten sposób powstaje tabela stron St. Numer segmentu {[21] } jest podzielony na Numer strony.(s1) i przesunięcie strony (s2) tabeli stron ST pages.So, adres wirtualny można opisać jako:

Va = (s1,s2,p, w)

address_map
(s1, s2, p, w)
{
pa = *(*(*(STR+s1)+s2)+p)+w;
return pa;
}

Opis diagramu jest tutaj: Segmentacja Paged

 32
Author: 0decimal0,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-06-25 16:36:59

Najlepsze cechy stronicowania

Fakt jest taki, że stronicowanie ma następujące zalety:]}
  1. Szybka alokacja (co najmniej szybsza niż segmentacja)
  2. Brak fragmentacji zewnętrznej (ostatnia strona w tej metodzie cierpi na fragmentację wewnętrzną })

Najlepsze cechy segmentacji

Ale jest też świetne zachowanie widoczne z segmentacji:

  1. dzielenie
  2. ochrona

Podane terminy, można łączyć i utworzyć następujące terminy:

  • segmentowane stronicowanie : wirtualna przestrzeń adresowa jest podzielona na segmenty. Fizyczna przestrzeń adresowa jest podzielona na ramki strony.
  • Paged Segmentation : główna Technika segmentacji która wykorzystuje tabelę segmentów procesu czasami wychodzi z bound! Oznacza to, że rozmiar staje się zbyt duży, a pamięć główna nie ma wystarczająco dużo miejsca, aby utrzymać tabelę segmentów. Dlatego tabela segmentów i numer segmentu jest podzielony na strony.

Wymagania dla stronicowania segmentowego

Istnieje wiele kroków, które należy podjąć, aby osiągnąć segmentowane stronicowanie:

  1. Każdy wpis tabeli segmentów reprezentuje adres bazowy tabeli strony.
  2. STR (Segment Table Register) oraz PMT (Page Map Table) są wypełnione żądanymi wartościami.
  3. każdy wirtualny adres składa się z numeru segmentu , Numer strony i przesunięcie wewnątrz tej strony.
  4. segment liczba indeksów do tabeli segmentu, która daje nam adres bazowy tabeli strony dla tego segmentu.
  5. numer strony indeksuje się do tabeli stron.
  6. Każdy wpis tabeli stron jest ramką strony .
  7. końcowy wynik, który jest fizycznym adresem znajduje się poprzez dodanie numeru ramki strony i offsetu .

Wymagania dotyczące segmentacji Paged

Następujące kroki odbywają się w tym "schemat": {]}

  1. Każdy wpis segmentu jest podzielony na wiele segmentów.
  2. dla każdego wpisu tabeli segmentów, który reprezentuje zbiór stron, tworzona jest tabela stron.
 3
Author: hexpheus,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-06-16 09:24:23

Segmentacja prowadzi do wolniejszego tłumaczenia stron i zamiany

Z tych powodów segmentacja została w dużej mierze porzucona na x86-64.

Główna różnica między nimi jest taka, że:

  • stronicowanie dzieli pamięć na kawałki o stałych rozmiarach
  • segmentacja pozwala na różne szerokości dla każdego kawałka

Chociaż może wydawać się mądrzej, aby mieć konfigurowalne szerokości segmentów, ponieważ zwiększa się rozmiar pamięci dla procesu, fragmentacja jest nieunikniona, np.:

|   | process 1 |       | process 2 |                        |
     -----------         -----------
0                                                            max

W końcu stanie się jak proces 1 rośnie:

|   | process 1        || process 2 |                        |
     ------------------  -------------
0                                                            max

Dopóki podział nie jest nieunikniony:

|   | process 1 part 1 || process 2 |   | process 1 part 2 | |
     ------------------  -----------     ------------------
0                                                            max

W tym momencie:

  • jedynym sposobem tłumaczenia stron jest przeszukiwanie binarne wszystkich stron procesu 1, co wymaga nieakceptowalnego logu (n)
  • zamiana z procesu 1 część 1 może być ogromna, ponieważ ten segment może być ogromny

Ze stałymi rozmiarami stron:

  • każde 32-bitowe tłumaczenie odczytuje tylko 2 Pamięci: katalog i tabela stron walk
  • każdy swap jest akceptowalnym 4KiB

Kawałki pamięci o stałych rozmiarach są po prostu łatwiejsze w zarządzaniu i zdominowały obecny projekt systemu operacyjnego.

Zobacz także: Jak działa paging x86?

 1
Author: Ciro Santilli 新疆改造中心 六四事件 法轮功,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-06-11 15:05:45