Friday, May 18th

Last update12:13:00 PM GMT

Вы находитесь на: FreeBSD Управление памятью Виртуальное адресное пространство процесса FreeBSD

Виртуальное адресное пространство процесса FreeBSD

Содержание адресного пространства определяется списком структур mv_map_entry, причем каждая структура описывает область виртуального адресного пространства, которая находится между начальным и конечным адресом. Область описывает блок памяти, который будет трактоваться единым образом. Например, код программы является областью с доступом только для чтения и с подкачкой по требованию из содержащего его файла на диске. Таким образом, vm_map_entry содержит также режим защиты, который должен быть применен к описываемой ею области. Каждая структура vm_map_entry имеет также указатель на объект, который предоставляет области начальные данные. Объект хранит также модифицированное содержание либо временно, когда память возвращается обратно, либо более постоянно, когда область больше не нужна. Наконец, каждая структура vm_map_entry содержит смещение, описывающее, где в пределах объекта начинается отображение.

Пример, представленный выше, представляет процесс сразу после того, как он начал свое выполнение. Два первых элемента отображения указывают на один и тот же объект; здесь этим объектом является исполняемый файл. Исполняемый файл состоит из двух частей: кода программы, который находится в начале файла, и области инициализированных данных, которые следуют после кода. Таким образом, первая vm_map_entry описывает область только для чтения, которая отображает код программы. Вторая vm_map_entry описывает область с атрибутом копирования при записи, которая отображает инициализированные данные программы, следующие в файле за кодом программы. Поле смещения в элементе отражает это различное начальное расположение. Третья и четвертая структуры vm_map_entry описывают области неинициализированных данных и стека соответственно. Обе эти области представлены анонимными объектами. Анонимный объект предоставляет при первом использовании заполненную нулями страницу и организует сохранение модифицированных страниц в области подкачки, если памяти становится мало. Анонимные объекты более подробно описаны далее в этом разделе.


Похожие:
Еще по теме:
Советуем прочитать:

Сейчас 55 гостей онлайн

Реклама на сайте: