Роль управляющего блока процесса
Управляющий блок процесса — это самая важная структура данных из всех имеющихся в операционной системе. В управляющий блок каждого процесса входит вся необходимая операционной системе информация о нем. Информация в этих блоках считывается и/или модифицируется почти каждым модулем операционной системы, включая те, которые связаны с планированием, распределением ресурсов, обработкой прерываний, а также осуществлением контроля и анализа. Можно сказать, что состояние операционной системы задается совокупностью управляющих блоков процессов.
Рассмотрим в связи с этим один из аспектов архитектур операционных систем. В состав операционной системы входит ряд программ, которым нужен доступ к блокам управления процессами. Предоставить прямой доступ совсем не трудно — каждому процессу присваивается свой уникальный идентификатор, который может быть использован в качестве индекса в таблице указателей на управляющие блоки процессов. Трудность состоит не в том, чтобы предоставить доступ, а в том, чтобы обеспечить защиту, и в связи с этим возникают две проблемы.
• Ошибка в какой-нибудь подпрограмме (например, в обработчике прерываний) может привести к повреждению управляющего блока процесса, в результате чего система потеряет возможность управлять данным процессом.
• Изменение структуры или семантики управляющего блока процесса может повлиять на ряд модулей операционной системы.
В качестве возможного способа решения этих проблем можно потребовать, чтобы выполнение всех действий с управляющими блоками осуществлялось операционной системой только через программу-обработчик, единственной задачей которой будет защита управляющего блока процесса и которая в единоличном порядке отвечает за чтение информации из этих блоков и запись информации в них. Целесообразность использования такой программы определяется тем, насколько она повлияет на производительность системы, а также степенью надежности остального программного обеспечения системы.
УПРАВЛЕНИЕ ПРОЦЕССАМИ
Модели выполнения
Перед тем как обсудить метод, который операционная система использует для управления процессами, нужно разобраться, в чем состоит различие между режимами работы процессора при выполнении кода операционной системы и при выполнении кодов пользовательских программ. Большинство процессоров поддерживают по крайней мере два режима работы. Определенные команды выполняются только в более привилегированном режиме. К ним относятся операции считывания или внесения изменений в управляющие регистры (например, операции со словом состояния программы), команды ввода-вывода, а также команды, связанные с управлением памятью. Кроме того, доступ к некоторым областям памяти может быть получен только в более привилегированном режиме.
Режим с меньшими привилегиями часто называют пользовательским (user) режимом, потому что обычно в этом режиме выполняются пользовательские
программы. Режим с более высокими привилегиями называется системным режимом (system mode), режимом управления (control mode) или режимом ядра (kernel mode). В последнем названии упоминается ядро, т.е. та часть операционной системы, которая выполняет важнейшие ее функции. В табл. 3.7 перечислены те из функций операционной системы, которые обычно возлагаются на ядро.
Таблица 3.7. Типичные функции ядра операционной системы
Дата добавления: 2016-06-05; просмотров: 2355;