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