Различия или сходство между сегментацией по страницам и сегментацией по страницам?

Я изучал комбинированные системы разбиения по страницам / сегментации, и в моей книге было два подхода к этому:

1.paged segmentation
2.segmented paging

Я не мог разглядеть разницу между ними. Я думаю, что при постраничной сегментации сегмент делится на страницы, а при разбивке по страницам страницы делятся на сегменты, хотя я не знаю, прав я или нет. Между тем в Интернете комбинированная разбивка по страницам / сегментация описывается только с использованием одной схемы. Не могу понять, почему в моем учебнике для этого есть две схемы. Любая помощь будет принята с благодарностью.


person 0decimal0    schedule 20.05.2013    source источник
comment
Я не уверен (потому что никогда не слышал о сегментированном разбиении по страницам), но деление страниц на сегменты на самом деле не имеет никакого смысла, поскольку вся идея страниц заключается в том, что они являются наименьшим фрагментом памяти, который может быть выгружен или в страничной системе. Что и говорить, очень мало используется :). Однако я считаю, что ваша интерпретация постраничной сегментации верна.   -  person Dan    schedule 22.05.2013
comment
Вы имеете в виду сегментацию и разбиение по страницам?   -  person CodyBugstein    schedule 07.08.2015


Ответы (3)


Итак, после энергичных поисков в сети различий или сходств между этими двумя терминами я пришел к окончательному ответу. Прежде всего, я бы записал сходства:

  • И то, и другое (сегментированное разбиение по страницам и сегментация по страницам) представляют собой тип комбинированных систем подкачки / сегментации (разбиение по страницам и сегментация можно объединить, разделив каждый сегмент на страницы).
  • В обеих системах сегменты разделены на страницы.

Теперь, чтобы описать различия, мне нужно будет определить и описать каждый термин отдельно:

  • Сегментированное разбиение по страницам - Сегменты делятся на страницы. Для реализации требуется STR (регистр таблицы сегментов) и PMT (таблица карты страниц). В этой схеме каждый виртуальный адрес состоит из номера сегмента , номер страницы в этом сегменте и смещение внутри этой страницы. Номер сегмента индексируется в таблице сегментов, которая дает базовый адрес таблицы страниц для этого сегмента. Страница числовые индексы в таблице страниц, каждая из которых представляет собой страничный фрейм. Добавление PFN (номера страничного фрейма) и смещения приводит к физическому адресу. Следовательно, адресацию можно описать с помощью следующей функции:

va = (s, p, w) где va - виртуальный адрес, | s | определяет количество сегментов (размер ST), | p | определяет количество страниц в сегменте (размер PT), | w | определяет размер страницы.

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

Схема здесь:

Сегментированное разбиение на страницы

  • Постраничная сегментация. Иногда таблица сегментов или таблица страниц могут быть слишком большими для хранения в физической памяти (они могут даже достигать МБ). Таким образом, таблица сегментов также делится на страницы и, следовательно, таблица страниц страниц ST. создано. номер сегмента разбит на номер страницы (s1) и смещение страницы (s2) таблицы страниц ST страниц. Итак, виртуальный адрес можно описать как:

va = (s1, s2, p, w)

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

Описание диаграммы находится здесь: Страничная сегментация

person 0decimal0    schedule 25.06.2013
comment
Хотелось бы узнать источник этой информации, поскольку он несколько отличается от того, что сказано здесь - person Mahesha999; 06.06.2016
comment
эй @ 0decimal0, в сегментированной диаграмме подкачки следует заменить таблицы сегментов таблицей сегментов? - person adarsh; 06.06.2020

Лучшие характеристики пейджинга

Дело в том, что у пейджинга есть следующие плюсы:

  1. Быстрое размещение (по крайней мере, быстрее, чем сегментация)
  2. Без внешней фрагментации (последняя страница в этом методе страдает от внутренней фрагментации)

Лучшие характеристики сегментации

Но есть также отличное поведение, которое видно из сегментации:

  1. Совместное использование
  2. Защита

Данные термины можно объединить и создать следующие термины:

  • Сегментированное разбиение по страницам: виртуальное адресное пространство разделено на сегменты. Физическое адресное пространство разделено на страничные фреймы.
  • Постраничная сегментация. Основная техника сегментации, использующая таблицу сегментов процесса, иногда выходит за рамки! Это означает, что размер становится слишком большим, и в основной памяти не хватает места для хранения таблицы сегментов. Поэтому таблица сегментов и номер сегмента разделены на страницы.

Требования к сегментированному пейджингу

Для достижения сегментированного разбиения по страницам необходимо выполнить несколько шагов:

  1. Каждая запись таблицы сегментов представляет собой базовый адрес таблицы страниц.
  2. STR (регистр таблицы сегментов) и PMT (таблица карты страниц) заполняются желаемыми значениями.
  3. Каждый виртуальный адрес состоит из номера сегмента, номера страницы и смещения на этой странице.
  4. Номер сегмента заносится в таблицу сегментов, которая дает нам базовый адрес таблицы страниц для этого сегмента.
  5. Номер страницы указывается в таблице страниц.
  6. Каждая запись таблицы страниц - это фрейм страницы.
  7. Окончательный результат, который является физическим адресом, находится путем добавления номера фрейма страницы и смещения.

Требования к постраничной сегментации

В этой схеме выполняются следующие шаги:

  1. Каждая запись сегмента делится на несколько сегментов.
  2. Для каждой записи таблицы сегментов, которая представляет собой совокупность страниц, создается таблица страниц.
person hexpheus    schedule 16.06.2017

Сегментация приводит к замедлению перевода и замены страниц

По этим причинам сегментация в x86-64 в значительной степени упала.

Основное различие между ними в том, что:

  • подкачка разбивает память на блоки фиксированного размера
  • сегментация допускает разную ширину для каждого фрагмента

Хотя может показаться более разумным иметь настраиваемую ширину сегментов, по мере увеличения объема памяти для процесса фрагментация неизбежна, например:

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

в конечном итоге станет по мере роста процесса 1:

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

до тех пор, пока раскол не станет неизбежным:

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

С этой точки зрения:

  • единственный способ перевести страницы - выполнить бинарный поиск по всем страницам процесса 1, что ведет к недопустимому журналу (n)
  • своп вне процесса 1 часть 1 может быть огромным, поскольку этот сегмент может быть огромным

Однако со страницами фиксированного размера:

  • каждый 32-битный перевод выполняет только 2 чтения из памяти: просмотр каталога и таблицы страниц
  • размер каждого свопа составляет 4 КиБ

Фрагменты памяти фиксированного размера просто более управляемы, и они преобладают в текущем дизайне ОС.

См. Также: Как работает подкачка x86?

person Ciro Santilli 新疆再教育营六四事件ۍ    schedule 11.06.2017