Лекции по Вычислительным машинам   

8. Операционные системы

8.5. Основные подсистемы операционных систем

Обобщив вышесказанное, приходим к выводу, что в качестве основных в структуре ОС можно назвать следующие подсистемы: управление процессами, управление памятью, управление вводом–выводом, управление файлами, управление безопасностью.

8.5.1. Управление процессами

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

·выполнение - активное состояние процесса, во время которого процесс обладает всеми необходимыми ресурсами и непосредственно выполняется процессором;

·ожидание - пассивное состояние процесса, процесс заблокирован, он не может выполняться по своим внутренним причинам, он ждет осуществления некоторого события, например, завершения операции ввода–вывода, получения сообщения от другого процесса, освобождения какого–либо необходимого ему ресурса;

·готовность - также пассивное состояние процесса, но в этом случае процесс заблокирован в связи с внешними по отношению к нему обстоятельствами: процесс имеет все требуемые для него ресурсы, он готов выполняться, однако процессор занят выполнением другого процесса.

В ходе жизненного цикла каждый процесс переходит из одного состояния в другое в соответствии с алгоритмом планирования процессов, реализуемым в данной операционной системе. Типичный граф состояний процесса показан на рисунке 8.1.

Рисунок 8.1 — Граф состояний процесса в многозадачной среде

В состоянии Выполнение в однопроцессорной системе может находиться только один процесс, а в каждом из состояний Ожидание и Готовность — несколько процессов, эти процессы образуют очереди соответственно ожидающих и готовых процессов. Жизненный цикл процесса начинается с состояния Готовность, когда процесс готов к выполнению и ждет своей очереди. При активизации процесс переходит в состояние Выполнение и находится в нем до тех пор, пока либо он сам освободит процессор, перейдя в состояние Ожидание какого–нибудь события, либо будет насильно «вытеснен» из процессора, например, вследствие исчерпания отведенного данному процессу кванта процессорного времени. В последнем случае процесс возвращается в состояние Готовность. В это же состояние процесс переходит из состояния Ожидание, после того как ожидаемое событие прои-зойдет.

На протяжении существования процесса его выполнение может быть многократно прервано и продолжено. Для того чтобы возобновить выполнение процесса, необходимо восстановить состояние его операционной среды. Состояние операционной среды отображается состоянием регистров и программного счетчика, режимом работы процессора, указателями на открытые файлы, информацией о незавершенных операциях ввода–вывода, кодами ошибок, выполняемых данным процессом системных вызовов и т.д. Эта информация называется контекстом процесса.     Кроме этого, операционной системе для реализации планирования процессов требуется дополнительная информация: идентификатор процесса, состояние процесса, данные о степени привилегированности процесса, другая информация. В некоторых ОС информацию такого рода, используемую ОС для планирования процессов, называют дескриптором процесса.     Дескриптор процесса по сравнению с контекстом содержит более оперативную информацию, которая должна быть легко доступна подсистеме планирования процессов. Контекст процесса содержит менее актуальную информацию и используется операционной системой только после того, как принято решение о возобновлении прерванного процесса.

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



*****
Новосибирск © 2009-2017 Банк лекций siblec.ru
Лекции для преподавателей и студентов. Формальные, технические, естественные, общественные, гуманитарные, и другие науки.