В этом уроке узнаем про диспетчер памяти Windows. Это важный модуль в системе, которые решает множество задач связанных с работой виртуальной памяти.
Диспетчер памяти
Диспетчер памяти — это часть исполняющей среды Windows, то есть он находится в ядре системы. Если в вкратце, то диспетчер памяти по запросу выделяет процессам виртуальную память. А также связывает виртуальные страницы с физическими.
Как вы уже должны понимать процесс не работает с физической памятью напрямую, он может работать только с виртуальной.
Процесс может работать либо со своей памятью, либо (при наличии необходимых разрешений) с памятью другого процесса. Например, если процесс создает дочерний процесс, то по умолчанию ему предоставляется право работать с виртуальной памятью дочернего процесса. Это означает, что родитель может производить операции чтения и записи в памяти дочерних процессов.
Функции Диспетчера памяти
Помимо выделения памяти процессам у диспетчера памяти есть и другие задачи:
- Отображение виртуальной памяти в физическую. То есть каждая страница виртуальной памяти должна ссылаться на физическую страницу (на жестком диске или в оперативной памяти).
- Запись виртуальных страниц на диск при нехватке памяти, а также возврат этих страниц при необходимости (swap). Таким образом за работу файла подкачки отвечает тоже диспетчер памяти.
- Выделение и освобождение виртуальной памяти. То есть, если процессу нужно записать какую-то информацию в память, то диспетчер памяти может выделить для процесса дополнительную память. А если процесс завершает свою работу, то диспетчер памяти должен память процесса освободить.
- Совместное использование памяти между процессами. Если два или более процесса работают с одним блоком памяти, то нужно разруливать блокировки, права доступов и тому подобное.
- Отображение файлов в память. Прочитанный файл с диска следующий раз читается из оперативной памяти. Для этого часть оперативной памяти выделяется под cache и туда помещают прочитанные файлы.
- Получение информации о диапазоне виртуальных страниц.
- Изменение защиты виртуальных страниц.
- Блокировка виртуальных страниц.