Где хранится размер страницы в операционной системе? - PullRequest
0 голосов
/ 27 января 2019

Я знаю, что размер страницы фиксирован в некоторой операционной системе, например, размер pg равен 4K в i386.Однако как диспетчер памяти узнает размер страницы?Хранит ли он где-нибудь в памяти, чтобы MMU мог читать его при переводе адреса?

Ответы [ 2 ]

0 голосов
/ 27 января 2019

Мне известно, что процессоры определяют размеры страниц тремя способами:

  1. Размер страницы постоянен и никогда не меняется.

  2. Размер страницы такой же, но настраивается.В этом случае размер страницы задается в системном реестре.Как правило, размер страницы должен быть определенным значением, так что это битовая настройка, а не числовое значение.Кажется, это то, что вы спрашиваете.Дайджест-версия для читателей на чипах Intel состоит в том, что установка бита в регистре CR4 переключает страницы размером от 4 КБ до 4 МБ.

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

0 голосов
/ 27 января 2019

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

Внутристраничная часть адреса (часто называемая смещением или смещением) не транслируется и отправляется в кэш без изменений, в то время как верхние биты (виртуальный адрес страницы) транслируются с помощью TLB и изменяют размер страницы (и смещение). ) потребует изменения ширины пути к данным. В зависимости от размера этого смещения и характеристик кэша L1 (размер и ассоциативность) кэш может использовать или не использовать виртуальный индекс, который может оказать прямое влияние на производительность и повлечь за собой изменение структуры. Размер виртуального адреса также определяет способ организации таблиц страниц и доступа к ним после пропуска TLB (обход страницы). MMU и кеш являются крайне важной частью конструкции процессора, которая напрямую влияет на производительность, и их необходимо оптимизировать, что обычно исключает гибкость.

Таким образом, изменение размера страницы требует значительных изменений в архитектуре процессора, а размеры страниц обычно постоянны или имеют ограниченное количество значений. Последний Pentium может иметь обычные 4K или огромные 4G страницы. В более старых версиях (v4 и v5) добавлены подстраницы, позволяющие разделить размер страницы на 4. В Arm v8 также можно иметь страницы размером 64 КБ. Но помимо этого процессор обычно предназначен для фиксированного размера страницы, и операционная система должна адаптироваться к страницам процессора.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...