2015-12-20 2 views
0

Я прочитал книгу Мел Горман о виртуальной памяти Linux. Я читал, что Linux поддерживает 3 уровня таблиц страниц: PGD, PMD и PTE. Если я не ошибаюсь в более новой версии ядра, есть четыре уровня таблиц страниц: PUD, но это не имеет значения. У меня есть разумный вопрос. Почему Linux-разработчик выбирает 3 (или 4) уровня таблиц страниц вместо одного? Использование только одной таблицы глобальной страницы (я имею в виду глобальную таблицу страниц для каждого процесса) уменьшит количество ссылок на память.linux paging, используя множество каталогов таблицы страниц

Извините за мой английский, пожалуйста.

+0

Возможно, вам лучше спросить список рассылки Linux или какой-либо механизм связи, который они используют; многие из нас на SO вряд ли будут знать обоснования для каждой детали дизайна Linux. –

+0

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

+0

Спасибо, Kaylum. – Artem

ответ

0

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

Смежные вопросы