- •2. Машинно-зависимые свойства операционных систем
- •2.1 Архитектурные особенности модели микропроцессорной системы
- •Устройства ввода
- •2.2. Структура ос.
- •Слоеные системы (Layered systems)
- •Виртуальные машины
- •Микроядерная архитектура.
- •Смешанные системы
- •2.3 Обработка прерываний
- •2.4 Планирование процессов
- •Контекст и дескриптор процесса
- •Алгоритмы планирования процессов
- •2.5. Обслуживание ввода-вывода
- •2.6 Управление реальной памятью
- •2.7 Управление виртуальной памятью. Понятие виртуальной памяти
Контекст и дескриптор процесса
На протяжении существования процесса его выполнение может быть многократно прервано и продолжено. Для того, чтобы возобновить выполнение процесса, необходимо восстановить состояние его операционной среды. Состояние операционной среды отображается состоянием регистров и программного счетчика, режимом работы процессора, указателями на открытые файлы, информацией о незавершенных операциях ввода-вывода, кодами ошибок выполняемых данным процессом системных вызовов и т.д. Эта информация называется контекстом процесса.
Кроме этого, операционной системе для реализации планирования процессов требуется дополнительная информация: идентификатор процесса, состояние процесса, данные о степени привилегированности процесса, место нахождения кодового сегмента и другая информация. В некоторых ОС (например, в ОС UNIX) информацию такого рода, используемую ОС для планирования процессов, называют дескриптором процесса.
Для того чтобы ОС могла управлять процессами она должна располагать всей необходимой для этого информацией. С этой целью на каждый процесс заводится опр. информационная структура, наз. дескриптором процесса или описатель задач или блок управления задачами. В общем случае структура дескриптора процесса:
1) Индентификатор процесса PI process identification;
2) тип или класс процесса, который определяет для супервизора некоторые правила предоставления ресурсов;
3) приоритет процесса, в соответствии с которым супервизор предоставляет ресурсы;
4) опред. в каком состоянии находится процесс;
5) защищенная область памяти или адрес такой зоны, в которой хранятся текущие значения регистров процессора. Если процесс прерывается, не закончив работы, эта информация называется контекстом задачи;
6) информацию о ресурсах, которыми процесс владеет или имеет право пользоваться (указатели на открытые файлы, информация о незавершенных процессах ввода/вывода);
7) место или его адрес для организации общения с другими процессами;
8) параметры времени запуска.
Описатели задач, как правило, располагаются в оперативной памяти с целью ускорить работу супервизора, который организует задачи в очереди как в списке и отображает изменения состояния процесса перемещением соответствующего описателя из одного списка в другой. Для каждого состояния ОС ведет соотв. список задач, которые находятся в этом состоянии.
Единственным исключением является состояние выполнения для однопроцессорной системы. Для описания состояния ожидания может быть не один список, а столько, сколько разных видов ресурсов может выделить состояние ожидания. Например, состояние ожидания завершения операции ввода/вывода может быть столько, сколько устройств ввода/вывода имеется в системе. В некоторых ОС количество описателей определено жестко и заранее.
Дескриптор процесса по сравнению с контекстом содержит более оперативную информацию, которая должна быть легко доступна подсистеме планирования процессов. Контекст процесса содержит менее актуальную информацию и используется операционной системой только после того, как принято решение о возобновлении прерванного процесса.
Очереди процессов представляют собой дескрипторы отдельных процессов, объединенные в списки. Таким образом, каждый дескриптор, кроме всего прочего, содержит по крайней мере один указатель на другой дескриптор, соседствующий с ним в очереди. Такая организация очередей позволяет легко их переупорядочивать, включать и исключать процессы, переводить процессы из одного состояния в другое.
Программный код только тогда начнет выполняться, когда для него операционной системой будет создан процесс. Создать процесс - это значит:
создать информационные структуры, описывающие данный процесс, то есть его дескриптор и контекст;
включить дескриптор нового процесса в очередь готовых процессов;
загрузить кодовый сегмент процесса в оперативную память или в область свопинга.
