Пейджинг или сегментация для виртуальной памяти, что лучше? - PullRequest
4 голосов
/ 02 июня 2011

Большинство ОС используют подкачку для виртуальной памяти. Почему это? Почему бы не использовать сегментацию? Это только из-за аппаратной проблемы? В некоторых случаях одно лучше другого? По сути, если бы вам пришлось выбирать одно из другого, какое из них вы бы хотели использовать и почему?

Давайте предположим, что это x86 ради аргумента.

Ответы [ 3 ]

3 голосов
/ 30 марта 2016

Взято из: концепций операционных систем Гальвина

одна из проблем ..

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

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

Пейджинг решает его следующим образом:

Основной метод реализации подкачки включает разбиение физической памяти на фиксированный размерблоки, называемые кадрами, и разбиение логической памяти на блоки одного размера, называемые страницами. Резервное хранилище делится на блоки фиксированного размера, которые имеют тот же размер, что и кадры памяти или кластеры из нескольких кадров.

Поскольку страницы-фреймы - хранилище резервных копий разделено на один и тот же размер, это не приводит к внешней фрагментации.Но может иметь внутреннюю фрагментацию.Поэтому размер страницы должен быть выбран правильно

Концепции операционных систем

2 голосов
/ 03 июня 2011

Обратите внимание, что Операционные системы с одним адресным пространством иногда используют сегментацию для изоляции процессов.

2 голосов
/ 02 июня 2011

ОС, такие как Windows и Linux, используют комбинацию segmentation и paging.Виртуальная память процесса сначала делится на сегменты, а затем каждый сегмент состоит из множества страниц.Сначала ОС переходит в определенный сегмент, а затем в этом сегменте находит конкретную страницу для доступа к адресу

...