Состояния процессов


Всего в операционной системе UNIX распознается девять состояний процес­сов, перечисленных в табл. 3.9; соответствующая диаграмма переходов состоя­ний показана на рис. 3.14 (в ее основе — рисунок из [ВАСН86]). Этот рисунок похож на рис. 3.6; нужно только принять во внимание, что спящие состояния в системе UNIX соответствуют блокированным состояниям. Кратко перечислим основные различия между диаграммами.

• Для отражения того факта, что процесс может выполняться как в пользовательском режиме, так и в режиме ядра, в диаграмме имеется два состояния выполняющихся процессов.

• Состояния вытесненных и загруженных в память и готовых к выполнению процессов отличаются друг от друга. По сути эти два состояния почти одинаковы (на что указывает соединяющая их пунктирная линия). Различие же делается, чтобы подчеркнуть, каким именно образом процесс может быть прерван в пользу другого. Если процесс выполняется в режиме ядра (в результате вызова диспетчера, прерывания по таймеру или прерывания по команде ввода-вывода), рано или поздно наступает момент, когда ядро за­вершает свою работу и готово возвратить управление пользовательской программе. В это время ядро может принять решение передать управление процессу с более высоким приоритетом, чем у выполнявшегося до этого. В таком случае текущий процесс переходит в состояние вытесненного, но с точки зрения диспетчеризации эти процессы одинаковы. Процесс, прерван­ный в пользу другого, и находящийся в состоянии готовности к выполне­нию, находятся в одной очереди.

Таблица 3.9. Состояния процессов в UNIX

Выполняющийся пользовательский Выполняющийся в пользовательском режиме

Выполняющийся ядра Выполняющийся в режиме ядра

Готовый к выполнению Готов к выполнению, как только ядро решит

передать ему управление

Спящий, загруженный Не может выполняться, пока не произойдет

некоторое событие; процесс находится в основ­ной памяти (блокированное состояние)

Готовый к выполнению, выгруженный Процесс готов к выполнению, но прежде чем

ядро сможет спланировать его запуск, процесс свопинга должен загрузить этот процесс в ос­новную память

Спящий, выгруженный Процесс ожидает некоторого события; он вы-

гружен из основной памяти (блокированное со­стояние)

Вытесненный В момент переключения процессора из режима

ядра в пользовательский режим ядро решает передать управление другому процессу

Созданный Процесс только что создан и еще не готов к

выполнению

Зомби Самого процесса больше не существует, но записи о нем остались с тем, чтобы ими мог вос­пользоваться родительский процесс

 

Такое вытеснение процесса может произойти только в момент переключе­ния режима выполнения из режима ядра в пользовательский режим. При вы­полнении процесса в режиме ядра он не может быть вытеснен, поэтому операци­онная система UNIX не приспособлена для работы в режиме реального времени. Обсуждение требований к системам, выполняющим обработку запросов в реаль­ном времени, можно найти в главе 10, "Многопроцессорное планирование и пла­нирование реального времени".

В UNIX есть два процесса, которых нет ни в каких других операционных системах. Процесс 0 — это специальный процесс, который создается при загруз­ке системы. В сущности, он предопределен как структура данных, которая за­гружается вместе с системой. Этот процесс является процессом свопинга. Кроме того, процесс 0 порождает процесс 1, который называется инициализирующим процессом (init process). Этот процесс является родительским по отношению ко всем остальным. Когда в систему входит новый интерактивный пользователь, именно процесс 1 создает новый процесс для этого пользователя. Далее пользовательский процесс может создавать ветвящиеся дочерние процессы. Таким об­разом, каждое приложение может состоять из ряда взаимосвязанных процессов.

 

Описание процессов

 

В операционной системе UNIX процессы представлены довольно сложными структурами данных, которые предоставляют операционной системе всю необходимую для управления и диспетчеризации процессов информацию. В табл. 3.10 приведены элементы образа процесса, разделенные на три части: контекст пользовательского уровня, контекст регистров и контекст системного уровня.

Таблица 3.10. Образ процесса в UNIX



Дата добавления: 2016-06-05; просмотров: 1779;


Поиск по сайту:

Воспользовавшись поиском можно найти нужную информацию на сайте.

Поделитесь с друзьями:

Считаете данную информацию полезной, тогда расскажите друзьям в соц. сетях.
Poznayka.org - Познайка.Орг - 2016-2024 год. Материал предоставляется для ознакомительных и учебных целей.
Генерация страницы за: 0.008 сек.