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