Интерфейс управления памятью --mmap

1. Что такое ммап?

mmap, метод сопоставления файлов с памятью, то есть путем сопоставления файловых дисков, периферийных устройств или других объектов с пространством виртуальной памяти, процесс может работать путем доступа к адресу виртуальной памяти соответствующей отображаемой области (здесь память управляется посредством указателей ) ) файловый диск, периферийное устройство или другой объект. mmap может осуществлять чтение и запись, а система может автоматически перерабатывать грязные страницы без использования системных вызовов, таких как чтение/запись.

Небольшая мысль: это похоже на механизм сопоставления виртуальных адресов физических адресов. Чтобы использовать ресурсы физической памяти, процессу необходимо косвенно использовать ресурсы физического адреса, используя сопоставление виртуальных адресов; mmap предоставляет метод. Если процесс хочет использовать такие ресурсы, как файловые диски или периферийные устройства, ему необходимо получить косвенный доступ к файловому диску или периферийным ресурсам путем сопоставления с виртуальными адресами (затем виртуальные адреса сопоставляются с физическими адресами, что аналогично предыдущему).

2. Применение ммап

прототип функции

void *mmap(void *addr, size_t length, int prot, int flags,int fd, off_t offset);

3. Принцип ммап

Выполнение всего картографирования разделено на три этапа:

3.1 Начать сопоставление: вызвать библиотечную функцию mmap, найти непрерывное виртуальное адресное пространство и выделить структуру vm_area_struct

3.2 Нижний вызов: вызов нижней функции mmap, чтобы реализовать связь между физическим адресом файла, устройства или объекта и виртуальным адресом процесса.

3.3 Фактическая операция: Процесс инициирует доступ к этой памяти для копирования содержимого файла в физическую память.

Supongo que te gusta

Origin blog.csdn.net/tanxiezang5399/article/details/122612276
Recomendado
Clasificación