7

У меня вопрос «где хранятся таблицы страниц: в физической памяти (ОЗУ) или в виде некоторой структуры данных в пространстве пользователя».

PS: что я понял до сих пор: структура памяти процесса имеет несколько сегментов (код / данные / куча / стек и т.д.). Поскольку в настоящее время сегментация не используется, используется разбиение на страницы, и в каждом сегменте будет много страниц фиксированного размера. Каждый сегмент также будет иметь соответствующее виртуальное адресное пространство (VAD). Они будут указывать на таблицы первичных страниц, которые будут указывать на таблицы вторичных страниц и, наконец, pte, которые будут указывать на фреймы страниц на диске (?? Я надеюсь, что это было правильно). Итак, если VAD находятся в пользовательском пространстве, тогда таблицы страниц также находятся в пользовательском пространстве или они хранятся в оперативной памяти?

2 ответа2

4

Цитата из вики - страница таблицы

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

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

3

Таблицы страниц обрабатываются ядром через внутренние структуры данных ядра. Но архитектура определяет большую часть формата этих таблиц. Userland не имеет к ним доступа.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .