Sunday, Feb 05th

Last update12:13:00 PM GMT

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

Введение в управление процессами

Процесс представляет собой выполняющуюся программу. У процесса должны быть системные ресурсы, такие, как память и лежащий в основе процессор. Ядро поддерживает иллюзию одновременного выполнения множества процессов, распределяя системные ресурсы среди набора процессов, которые готовы к выполнению. На многопроцессорной машине несколько процессов могут действительно выполняться параллельно. В данной главе описывается структура процесса, метод, который система использует для переключения между процессами, и политика планирования, которую она использует для содействия совместному использованию процессора. В ней также представлены создание и завершение процесса и подробности возможностей сигналов и отладки процессов.

Два месяца спустя после начала разработки первой реализации операционной системы UNIX было два процесса: по одному для каждого терминала PDP-7. В возрасте 10 месяцев, по-прежнему на PDP-7, в UNIX было множество процессов, операция fork и что-то наподобие системного вызова wait. Процесс выполнял новую программу, считывая ее поверх себя. Первая система PDP-11 (первое издание UNIX) увидела внедрение exec. Все эти системы допускали в одно и то же время лишь один процесс в памяти. Когда была получена PDP-11 с управлением памятью (KS-11), система была изменена, для того чтобы несколько процессов одновременно могли оставаться в памяти с целью уменьшения подкачки. Но это изменение не применялось к многозадачному программированию, поскольку дисковый ввод/вывод был синхронным. Такое положение дел просуществовало до 1972 г. и первой системы PDP-11/45. В конечном счете было введено настоящее многозадачное программирование, когда система была переписана на С. Дисковый ввод/вывод для одного процесса мог при этом продолжаться во время работы другого процесса. Базовая структура управления процессами в UNIX с того времени не изменилась [Ritchie, 1988].

Процесс работает либо в режиме пользователя, либо в режиме ядра. В режиме пользователя процесс выполняет код приложения, когда машина находится в непривилегированном режиме защиты. При запросе процессом служб операционной системы через системный вызов он переключается посредством защитного механизма в привилегированный режим защиты машины, а затем действует в режиме ядра.

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

Ресурсы уровня ядра включают ресурсы, необходимые для нижележащего оборудования, такие, как регистры, счетчик команд и указатель стека, а также все то, что необходимо ядру FreeBSD для предоставления некоторому процессу системных служб. Это состояние ядра включает параметры текущего системного вызова, идентичность пользователя текущего процесса, сведения для планирования и т. д. Состояние ядра для каждого процесса подразделено на несколько отдельных структур данных, главные из которых: структура процесса и структура пользователя.

Структура процесса содержит сведения, которые должны постоянно находиться в основной памяти вместе со ссылками на другие резидентные структуры, тогда как структура пользователя содержит информацию, которая должна быть резидентной лишь при выполнении процесса (хотя структуры пользователя других процессов также могут быть резидентными). Структуры пользователя динамически выделяются посредством средств управления памятью. Исторически в структуре пользователя хранилось более половины состояния процесса. В FreeBSD структура пользователя используется лишь для пары структур, на которые ссылается структура процесса. Структуры процесса динамически выделяются как часть создания процесса и освобождаются как часть завершения процесса.


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

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

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

Лучшие производители! купить морозильные витрины, огромный ассортимент.