Как мы уже видели, процессу требуются элемент процесса (process entry) и стек ядра. Следующим важным ресурсом, который должен быть выделен, является его виртуальная память. Первоначальные требования к виртуальной памяти определены в заголовке исполняемого файла процесса. Эти требования включают пространство, необходимое для кода программы, инициализированных данных и стека времени выполнения. Во время начального запуска программы ядро построит структуры данных, необходимые для описания этих четырех областей. Большинству программ требуется выделение дополнительной памяти. Ядро обычно предоставляет эту дополнительную память, расширяя область неинициализированных данных.
Большинство программ FreeBSD используют разделяемые библиотеки. В заголовке исполняемого файла будут описаны необходимые библиотеки (обычно библиотеки C, возможно, и другие). Ядро не отвечает за нахождение и отображение этих библиотек во время начального выполнения программы. Нахождение, отображение и создание динамических ссылок на эти библиотеки выполняется кодом запуска уровня пользователя, присоединенным к началу исполняемого файла. Этот код запуска обычно действует до передачи управления главной точке входа программы.
- 10/10/2010 14:23 - Объекты
- 10/10/2010 09:24 - Модель рабочего набора
- 10/10/2010 04:15 - Отображение на объекты
- 09/10/2010 18:53 - Передача отказов страниц
- 08/10/2010 06:49 - Виртуальное адресное пространство процесса FreeBSD
- 05/10/2010 12:10 - Алгоритмы замещения
- 02/10/2010 21:00 - Страничная подкачка
- 01/10/2010 14:16 - Процессы и память
- 01/10/2010 12:51 - Терминология