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

Например, логическое адресное пространство теперь полностью отделено от физического адресного пространства.

Каждый адрес, генерируемый ЦП, делится на две части: номер страницы (p) и смещение страницы (d). Номер страницы используется в качестве указателя в таблице страниц. Таблица страниц содержит базовый адрес каждой страницы в физической памяти. Этот базовый адрес объединяется со смещением страницы, чтобы определить адрес физической памяти, который отправляется в блок памяти. Поскольку основная память намного быстрее вторичной, это экономит нам много времени.

Оборудование для пейджинга с TLB.

для нас будет очень неэффективно вычислять таблицу страниц, так как 1 страница содержит много инструкций (более 100 инструкций). Мы используем TLB

Защита

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

Обычно к каждой записи в таблице страниц добавляется один дополнительный бит: бит valid-invalid. Если для этого бита установлено значение valid, соответствующая страница находится в логическом адресном пространстве процесса и, таким образом, является допустимой (или действительной) страницей. Если для этого бита задано значениеinvalid, страница не находится в логическом адресном пространстве процесса. Недопустимые адреса перехватываются с помощью бита допустимый-недействительный. Операционная система устанавливает этот бит для каждой страницы, чтобы разрешить или запретить доступ к странице.

Общие страницы —

Преимуществом пейджинга является возможность совместного использованияобщего кода. Это соображение особенно важно в среде с разделением времени. Рассмотрим систему, которая поддерживает 40 пользователей, каждый из которых запускает текстовый редактор. Если текстовый редактор состоит из 150 КБ кода и 50 КБ пространства данных, нам потребуется 8000 КБ для поддержки 40 пользователей. Однако, если код является реентерабельным кодом (или чистым кодом), им можно поделиться, как показано на рисунке ниже.

В физической памяти должна храниться только одна копия редактора. Таблица страниц каждого пользователя отображается на одну и ту же физическую копию редактора, но страницы данных отображаются на разные фреймы. Таким образом, для поддержки 40 пользователей нам потребуется только одна копия редактора (150 КБ), плюс 40 копий из 50 КБ пространства данных на пользователя. Общее требуемое пространство теперь составляет 2150 КБ вместо 8000 КБ — значительная экономия.

Другие часто используемые программы также могут использоваться совместно — компиляторы, оконные системы, библиотеки времени выполнения, системы баз данных и т. д. Чтобы быть доступным для совместного использования, код должен быть реентерабельным. Доступность общего кода только для чтения не должна зависеть от правильности кода; операционная система должна применять это свойство.