Вопросы по теме 'mmu'

понимание вывода pmap
Я пытался увидеть карту памяти процесса в Linux x86-64 с помощью команды pmap -x . Я запутался, глядя на вывод pmap. В частности, для записей для сопоставления динамических библиотек. Для них есть несколько записей (на самом деле 4 для всех,...
33979 просмотров
schedule 22.08.2022

Как переводятся виртуальные адреса?
Я понимаю, что (для Intel) процесс преобразования виртуального адреса: 1. Входящий виртуальный адрес делится на номер таблицы страниц, номер страницы и смещение. 2. Базовый регистр дескриптора процесса (PDBR) в ЦП сообщает, где начинается...
527 просмотров
schedule 08.01.2023

В операционной системе, как MMU ищет номер виртуальной страницы в качестве ключа в таблице страниц
1)Скажем, одноуровневая таблица страниц 3)Происходит промах TLB 3)Требуемая таблица страниц находится в основной памяти Вопрос : Всегда ли MMU извлекает таблицу страниц, необходимую для ряда регистров внутри него, чтобы можно было выполнить...
1543 просмотров
schedule 16.05.2022

mprotect : как реализована защита памяти
Я уже знаю, что системный вызов mprotect() имеет 4 режима защиты в BSD, но моя проблема в том, как эта защита реализована (аппаратная или программная реализация)? скажем, если мы устанавливаем защиту определенных страниц на PROT_NONE, действительно...
955 просмотров
schedule 12.04.2022

Как ARM Linux эмулирует грязные, доступные и файловые биты PTE?
Согласно pgtable-2-level.h , ARM Linux имеет две версии PTE; Linux PTE и H/W PTE. Linux PTE хранятся по смещению ниже 1024 байт. При обработке ошибки страницы в handle_pte_fault различных функциях, таких как pte_file , pte_mkdirty ,...
2235 просмотров
schedule 23.04.2022

Как MMU/ядро узнает, что PTE действителен?
Предполагая двухуровневую таблицу страниц, скажем, программе выделяется 2 страницы (8 КБ) GPD PD1 PD2 PD3 +-----+ +------+ +------+ +------+ + 1 + + 22 + +------+ +------+ + 0 + + 62 + +------+ +------+ + 0 + + 0 +...
815 просмотров
schedule 31.05.2024

Виртуальные адресации MMU, где они хранятся
Я знаю, что есть два типа памяти, виртуальная и физическая, и сопоставление MMU между ними, но ЧТО я не могу понять, так это ГДЕ хранятся эти виртуальные адреса, если они «виртуальные». Допустим, у меня есть 1 процесс, и ему нужно что-то прочитать...
358 просмотров

MMU отключен против MMU с включенным пейджингом один на один
Я пытаюсь понять разницу между этими двумя режимами работы (в основном в процессорах для рук): ММУ отключен. MMU включен, но используется пейджинг один к одному, т. е. виртуальный адрес совпадает с физическим адресом. Насколько я понимаю,...
497 просмотров
schedule 25.04.2022

__pa возвращает физический адрес вне допустимого диапазона
Работая с ядром arm adsp-sc572 (ядро 4.0), я понял, что __pa работает неправильно. Выделение большого буфера (например, 500 КБ) для DMA с использованием kmalloc дает мне виртуальный адрес. При использовании __pa() -> иногда возвращается адрес...
359 просмотров
schedule 05.08.2022

MMU: размеры таблицы длинных дескрипторов страниц в AARCH64
Хотелось бы понять, память на каждом уровне покрывается таблицами страниц в AARCH64 с гранулярностью 4k. С 47-битным VA можно было бы иметь уровень от 0 до уровня 3. На уровне 0 может быть одна таблица, которая описывает 512 таблиц страниц...
139 просмотров
schedule 16.08.2022

Разница между подтипами исключений сброса данных ARMv8 Не в таблице перевода и ошибкой таблицы перевода на уровне?
Я получил виртуальную память, работающую на ARMv8, после создания таблиц страниц. Как ни странно, большинство моих переводов работают (идентификация отображается), за исключением Flash, который находится по нулевому физическому адресу. Я использую...
504 просмотров
schedule 11.03.2023

Различные размеры страниц для процессов
В рамках преобразования виртуальных адресов в физические для каждого процесса сохраняется таблица сопоставлений виртуальных и физических адресов. Если процесс запланирован следующим, содержимое таблицы страниц загружается в MMU. 1) Где хранится...
293 просмотров
schedule 22.08.2022

Является ли атрибут «pgd» физическим или виртуальным адресом в mm_struct в ядре Linux?
В архитектуре Arm32 (модель плоской памяти) атрибут pgd в mm_struct является виртуальным адресом. Однако, если я правильно понял, в архитектуре Arm64 (модель разреженной памяти) атрибут «pgd» в mm_struct является физическим адресом. Почему...
44 просмотров
schedule 06.04.2023