Размер страницы

Размер страницы является тем параметром, который должен быть выбран операционной системой. Даже если аппаратура была разработана, к примеру, под страницы в 4096 байт, операционная система может запросто рассматривать пары страниц 0 и 1, 2 и 3, 4 и 5 и т.
д. как страницы размером 8 Кбайт, всегда выделяя им два последовательных страничных блока размером 8192 байт.

Определение наилучшего размера страницы требует сохранения баланса между несколькими конкурирующими факторами. Таким образом, абсолютно оптимального решения не существует. Для начала возьмем два фактора, являющихся аргументами в пользу небольшого размера страницы. Произвольно взятые текст, данные или сегмент стека не заполнят целое число страниц. В среднем половина последней страницы останется незаполненной. Оставшееся пространство на этой странице тратится впустую. Эти потери называются внутренней фрагментацией. Если в памяти п сегментов, а размер страницы составляет р байт, то на внутреннюю фрагментацию будет потрачено впустую пр/2 байт. Эти соображения являются аргументом в пользу небольшого размера страницы.

Другой аргумент в пользу небольшого размера страницы возникает при рассмотрении программы, состоящей из восьми последовательных этапов, каждый размером 4 Кбайт. При размере страницы 32 Кбайт программе всегда должно быть выделено 32 Кбайт. При странице размером 16 Кбайт ей потребуется только 16 Кбайт. А при размере страницы 4 Кбайт или меньше ей в любой момент времени потребуется только 4 Кбайт.

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

В то же время при небольших по объему страницах подразумевается, что программы будут нуждаться в большом количестве страниц, а это приведет к большому размеру таблицы страниц. Программе размером 32 Кбайт требуется только 4 страницы по 8 Кбайт, но 64 страницы по 512 байт. Как правило, на диск и с диска переносится сразу вся страница, при этом основная часть времени тратится на задержки, связанные с поиском нужного сектора и раскруткой диска, поэтому перенос небольшой страницы занимает практически столько же времени, что и перенос большой страницы. Для загрузки 64 страниц по 512 байт может потребоваться 64 • 10 мс, а для загрузки четырех страниц по 8 Кбайт — всего 4 • 12 мс.

Кроме того, страницы небольшого размера расходуют много ценного пространства в TLB. Предположим, что ваша программа использует 1 Мбайт памяти с рабочим набором размером 64 Кбайт. При страницах размером 4 Кбайт программа будет занимать как минимум 16 записей в TLB.

При страницах размером 2 Мбайт было бы достаточно одной записи в TLB (теоретически вам может потребоваться разделить данные и инструкции). Из-за дефицита TLB-записей и их значимого влияния на производительность приходится везде, где только можно, расплачиваться использованием больших страниц. Чтобы сбалансировать все эти компромиссы, операционные системы иногда используют разные размеры страниц для разных частей системы. Например, большие страницы для ядра и меньшие по размеру страницы для пользовательских процессов.

На некоторых машинах таблица страниц должна быть загружена (операционной системой) в аппаратные регистры при каждом переключении центрального процессора с одного процесса на другой. Для этих машин наличие небольших страниц означает увеличение времени, необходимого для загрузки регистров страниц при уменьшении размера страницы. Более того, при уменьшении размера страницы увеличивается пространство, занимаемое таблицей страниц.

Последнее утверждение может быть проанализировано с математической точки зрения. Пусть средний размер процесса будет составлять s байт, а размер страницы — p байт. Кроме этого предположим, что на каждую страничную запись требуется e байт. Тогда приблизительное количество страниц, необходимое каждому процессу, будет равно s/p, что займет se/p байт пространства таблицы страниц. Из-за внутренней фрагментации неиспользуемое пространство памяти в последней странице процесса будет равно p/2. Таким образом, общие издержки на таблицу страниц и внутреннюю фрагментацию будут получены за счет суммирования этих двух величин:

Издержки = se/p + p/2.

Первое слагаемое (размер таблицы страниц) будет иметь большее значение при небольшом размере страницы. Второе слагаемое (внутренняя фрагментация) будет иметь большее значение при большом размере страницы. Оптимальный вариант находится где-то посередине. Если взять первую производную по переменной p и приравнять ее к нулю, то мы получим уравнение

-se/p2 + 1/2 = 0.

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

р = л/2хё.

Для 5 = 1 Мбайт и е = 8 байт на каждую запись в таблице страниц оптимальный размер страницы будет 4 Кбайт. Имеющиеся в продаже компьютеры используют размер страницы от 512 байт до 64 Кбайт. Раньше чаще всего использовался размер 1 Кбайт, но сейчас чаще всего встречается размер страницы 4 Кбайт.

3.5.4.

<< | >>
Источник: Э. ТАНЕНБАУМ Х. БОС. СОВРЕМЕННЫЕ ОПЕРАЦИОННЫЕ СИСТЕМ Ы 4-е ИЗДАНИЕ. 2015

Еще по теме Размер страницы:

  1. Статья 1208. Увеличение размера возмещения вреда в связи с повышением стоимости жизни и увеличением размера минимальной заработной платы
  2. Первая страница
  3. 7.1.1. Размер группы
  4. 7.1.1. Размер группы
  5. Статья 737. Форма и размер ренты
  6. Размер наследственной доли.
  7. 2. Размер гражданско-правовой ответственности
  8. 1.2.4.2. Определение размера ущерба и порядок его возмещения
  9. Статья 1267. Размер доли в наследстве наследников по закону
  10. 5. Таблица минимальных размеров оплаты труда и кратности (в рублях)
  11. 6. Таблица минимальных и максимальных размеров и сроков наказаний по Уголовному кодексу РФ 1996 г.
  12. Статья 873. Размер оплаты по договору бытового подряда
  13. Статья 239-2. Незаконное завладение землями водного фонда в особо крупных размерах
  14. Статья 1204. Уменьшение размера возмещения вреда по требованию лица, которое нанесло ущерб
  15. Статья 1203. Увеличение размера возмещения вреда по требованию пострадавшего в случае изменения состояния его трудоспособности
  16. 9.7.5. Шаг пятый: установите фотофокус
  17. Статья 551. Предмет неустойки
  18. 9.7.6. Шаг шестой:собственно фоточтение
  19. Статья 120. Учредительный договор полного общества