Почему физически непрерывная область памяти более эффективна, чем виртуальная непрерывная память?

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

Но разве ядру не нужна таблица страниц во всех сценариях? Итак, какие записи таблицы страниц необходимо создать в случае практически непрерывной памяти.

2 ответа

Решение

Для больших блоков физически смежной памяти ядро ​​может использовать огромные страницы, то есть гораздо меньше записей в таблице страниц.

Фактически непрерывный (vmalloc() и friends) означает, что ядро ​​выделяет память на основе несмежных фреймов страниц, к которым обращаются через непрерывные линейные адреса. Недостатком является плохая производительность, так как требуется дополнительный набор таблиц страниц. Возможно, вы захотите пройти через структуру данных vmap_area и vm_struct

Другие вопросы по тегам