-1

В Linux существуют такие функции, как pgd_offset, pmd_offset и pte_offset, которые используются для индексации в pgd, pmd и pte. Кто называет эти функции? Использует ли MMU эти функции для перемещения таблиц страниц?Таблица страниц Linux

Я понимаю, что ядро ​​linux создает таблицу страниц для каждого процесса и передает базовый адрес таблицы страниц в базовый регистр таблицы страниц, чтобы MMU мог получить к нему доступ. Как MMU читает таблицу страниц после этого? Кто использует эти функции pgd_offset и т. Д., Если MMU - это тот, кто читает таблицы страниц?

+0

Посмотрите [здесь] (http://lxr.free-electrons.com/ident?i=pgd_offset). – Downvoter

ответ

0

Как MMU считывает таблицу страниц после этого?

MMU использует аппаратный ускоренный метод для чтения памяти. Фактический поиск зависит от архитектуры: как и процесс разбора инструкций.

Кто использует эти функции pgd_offset и т. Д., Если MMU является тем, кто читает таблицы страниц?

Иногда код ядра хочет найти struct page по виртуальному адресу. Он должен использовать эти функции для этого (AFAIK, API для поиска адреса MMU отсутствует, поэтому он должен быть реализован и в ядре).