Содержание адресного пространства определяется списком структур mv_map_entry, причем каждая структура описывает область виртуального адресного пространства, которая находится между начальным и конечным адресом. Область описывает блок памяти, который будет трактоваться единым образом. Например, код программы является областью с доступом только для чтения и с подкачкой по требованию из содержащего его файла на диске. Таким образом, vm_map_entry содержит также режим защиты, который должен быть применен к описываемой ею области. Каждая структура vm_map_entry имеет также указатель на объект, который предоставляет области начальные данные. Объект хранит также модифицированное содержание либо временно, когда память возвращается обратно, либо более постоянно, когда область больше не нужна. Наконец, каждая структура vm_map_entry содержит смещение, описывающее, где в пределах объекта начинается отображение.
Пример, представленный выше, представляет процесс сразу после того, как он начал свое выполнение. Два первых элемента отображения указывают на один и тот же объект; здесь этим объектом является исполняемый файл. Исполняемый файл состоит из двух частей: кода программы, который находится в начале файла, и области инициализированных данных, которые следуют после кода. Таким образом, первая vm_map_entry описывает область только для чтения, которая отображает код программы. Вторая vm_map_entry описывает область с атрибутом копирования при записи, которая отображает инициализированные данные программы, следующие в файле за кодом программы. Поле смещения в элементе отражает это различное начальное расположение. Третья и четвертая структуры vm_map_entry описывают области неинициализированных данных и стека соответственно. Обе эти области представлены анонимными объектами. Анонимный объект предоставляет при первом использовании заполненную нулями страницу и организует сохранение модифицированных страниц в области подкачки, если памяти становится мало. Анонимные объекты более подробно описаны далее в этом разделе.
- 11/10/2010 00:19 - Подкачка процессов
- 10/10/2010 14:23 - Объекты
- 10/10/2010 09:24 - Модель рабочего набора
- 10/10/2010 04:15 - Отображение на объекты
- 09/10/2010 18:53 - Передача отказов страниц
- 06/10/2010 00:51 - Ресурсы процесса
- 05/10/2010 12:10 - Алгоритмы замещения
- 02/10/2010 21:00 - Страничная подкачка
- 01/10/2010 14:16 - Процессы и память
- 01/10/2010 12:51 - Терминология