В. Столлингс - Операционные системы (1114679), страница 28
Текст из файла (страница 28)
Обычно в набор входят регистры, доступные пользователю, управляющие регистры и состояния, а также указатели вершин стеков. Все они описаны в гл аве 1 компьютерных систем". (."лсдует заметить, что в процессорах любого вида имеется регистр или нарегистров, известных под названием "слово состояния программы" (рго8гапт (иэ тчогг( — РБЖ), в которых содержится информация о состоянии и кодах л эий. Хорошим примером слова состояния процессора является регистр Г~,~.:, (показан на рис.
3.9 и описан в табл. 3.6)„имеющийся в процессорах ,(1игп, Этот регистр используют все операционные системы, работающие на , пьютерах Реп$1ипт. 3 15 1 ч Ч А У Н ' 1Ч 10 О О 1 т Б 1 А Р С О Р ГСМГ Т Р~ ГГГГГГ Г .Г' Г Оà — флаг направления 1à — флаг разрешения прерываний Тà — флаг лпвуики Яà — флаг знака кà — Флаг нуля Аà — флаг вспомогательного переноса Рà — флаг четности Сà — флаг переноса рО флм идентификации цр — флаг вживания виртувльногп прерывания Иà — флаг виртуельногп прерывания АС вЂ” флаг проверки выравнивания уМ вЂ” флаг режима виртуального вО86 Йà — флм всзебневления МТ вЂ” Флагвлеженней задачи ЮР1.
— уровень привилегий ввода-вывода Оà — флга переполнения Рис, 3.9, Регистр ЕРШОВ ироцеееора Реппит П Таблица 3.6. Биты регистра ЕР?.АЯ8 процессора Репй(игп Управляющие биты Флаг проверки выравнивания (А)1впптеп "ь сйес)г — АС) Флаг устанавливается прн адресации одн нвркего кли двойного слова, не выровненного на границу слова илн двойного слова Флаг идентификации (ЫепЫ1сат 1оп 11ае — П') Еелк процессор в состоянии устанавливать к сбрасывать этот флаг, то данный П и процессор поддерживает команду СРТПВ. Ри выполнении данной команды выдается к нм я информация об изготовителе серии Ф моделя процессора Флаг во озобаовления (Вевигпе 11ая — НР) Дает нять возможность программисту отме- отладочные исключения„так что коман в дв после отладочного исключения ®ожет быт др быть перезапущена без генерации ';, 3' угпго исключения Ревень и привилегий ввода-вывода Рг(ч11ейе 1ече1 — 10Р1,) пРеделяет 0 ет уровень привилегий вводаэода в 4 выполняющегося процесса.
Биты режима рабогпв4 Флаг вложенной задачи (1ч(евтет1 ьав1г 11ая — Тч'Т) Указывает на то, что текущее задание вложено в другое задание прн работе в защищенном режиме Флаг режима виртуалъного 8086 (ч'1гтиа1 8086 тот(е — ч'М) Позволяет программисту включать и выключать режим виртуального 8086 Флаг ожидания виртуального прерывания (У(гкиа1 1Меггир1 Репг((пя — ч'1Р) Используется в режиме виртуального 8086.
чтобы указать, что одно нли несколько прерываний ожидают обслуживания Флаг виртуального прерывания (71г(иа1 1п1еггирФ 11ая — тг1Р) В режиме виртуального 8086 используется вместо флага 1Р Коды условий Флаг коррекции, илн вспомогателъного переноса (Аих(11агу саггу Пан — АР) Часть 2* П 8 Описанив процесеов и управление ими Окончание Если данный флаг установлен, то нечаст, что произошел перенос или.': единицы из одного полубайта в при выполнении операций с 8-6 арифметическими или логическимвс' ситами с использованием регистра д~„.
улравлвсощий блок процесса Флаг переноса (Саггу Пан — СР) Используется для индикации п единицы в старший разряд или. единицы из этого разряда при а тических операциях. Его соде также изменяется при некотор~=„ рациях циклического сдвига Флаг переполнения (Отсег(1оту Пая— ° ° Ф Указывает на переполнение резун ' " при сложении или вычитании Флаг четности (Раг)(у Пан — РР) $ $ $ $ $ $ $Совместноислользуемоес $ алресное пространство $ $ $ $ $ $ $ $ Совместно используемое $ ' ,адресное пространство $ $ $ $ $ $ з $ $ $ $ $ ! Совместно используемое» $ адресное пространство $ $ $ $ $ $ $ $ $ 4 Четность результата арифм или логической операции.
1 указ '' что результат четный, а 0 — чт '. зультат нечетный с сроцесс 1 Процессе палл!тки Флаг знака (Яяп 11ая — ВР) Указывает знак результата ариф ческой или логической операции Флаг нуля (Еего Пан — ЕР) Указывает, равен ли нули! арифметической или логической о управлясощий блок процесса Рис. 3.11. Структуры списков процессов Часть 2.
П ' При установленном флаге (низкий уровень привилегий) при каждом доступе к устройствам ввода-вывода генерируется исключение саг направления (П(геок)оп П ))Р) Эадаст порядок изменения (увеличение или уменьшение) содержимого 16-битовых полурегистров 81 и 1!1 (для работы в 16- битовом режиме) или 32-битовых регистров Е81 и Е1И (для работы в 32-битовом режиме), использующихся в командах обработки строк саг разрешения прерываний теггцрк епаЫе Пай — П') Если этот флаг установлен, процессор реагирует на внешние прерывания саг ловушки (Тгар Пан — ТГ) Если флаг установлен, то после выполне- ния каждой команды генерируется пре- рывание.
Этот режим используется для отладки На рис. 3.10 предложена возможная структура образов процессов ауьной памяти. Каждый образ процесса состоит из управляющего блока , стека пользователя, закрытого адресного пространства процесса и в х адресных пространств, которые данный процесс использует совместно: ми процессами. На рисунке каждый образ процесса изображен в виде прерывных адресов, но в реальной реализации это может быть не так;: ание образа процесса в памяти зависит от схемы управления памятью и ба организации управляющих структур в операционной системе. Как видно из табл.
3.5, управляющий блок процесса может содержатЬ'- структурную информацию, в которую входят указатели, позволякпцие ть между собой различные управляющие блоки процессов. Таким исанные в предыдущем разделе очереди могут быть реализованы в в нных списков, элементами которых являются управляющие блоки п !пример, схема очередности, показанная на рис. З.б,а, может быть в соответствии со схемой, изображенной на рис. 3.11. Рис.
3.10. Пользовательские процессы в виртуалывой ::агава 3. Описание процессов и управление ими роль управляющего блока процесса Управляющий блок процесса — это самая важная структура данных имеющихся в операционной системе. В управляющий блок каждого входит вся необходимая операционной системе информация о нем. Инфо в этих блоках считывается и/или модифицируется почти каждым модулй" Рационной системы, включая те, которые связаны с планированием, рас нием ресурсов, обработкой прерываний, а также осуществлением кон ' анализа. Можно сказать, что состояние операционной системы задается со постыл Управляющих блоков процессов.
Рассмотрим в связи с этим один из аспектов архитектур операционных В состав операционной системы входит ряд программ, которым нужен доступ;, кам управления процессами. Предоставить прямой доступ совсем не трудно дому процессу присваивается свой уникальный идентификатор, который мо использован в качестве индекса в таблице указателей на управляющие бл цессов. Трудность состоит не в том, чтобы предоставить доступ, а в том, ч печить защиту, и в связи с этим возникают две проблемы. ° Ошибка в какой-нибудь подпрограмме (например, в обработчике ний) может привести к повреждению управляющего блока процесса' зультате чего система потеряет возможность управлять данным про е Изменение структуры или семантики управляющего блока процесс повлиять на ряд модулей операционной системы.
В качестве возможного способа решения этих проблем можно по чтобы выполнение всех действий с управляющими блоками осуществлял рационной системой только через программу-обработчик, единственной которой будет защита управляющего блока процесса и которая в един порядке отвечает за чтение информации из этих блоков и запись инфо них. Целесообразность использования такой программы определяется сколько она повлияет на производительность системы, а также степенью ности остального программного обеспечения системы.
Модели выполнения Перед тем как обсудить метод, который операционная система исп . для УпРавления процессами, нужно разобраться, в чем состоит различие Режимами работы процессора при выполнении кода операционной сис при выполнении кодов пользовательских программ. Большинство проц поддерживают по крайней мере два режима работы.
Определенные ком полняются только в более привилегированном режиме. К ним относятся ции считывания или внесения изменений в управляющие регистры (н операции со словом состояния программы), команды ввода-вывода, а т манды, связанные с управлением памятью. Кроме того, доступ к некото ластям памяти может быть получен только в более привилегированном Режим с меньшими привилегиями часто называют пользователъсиаМ- режимом, потому что обычно в этом режиме выполняются пользова огрзммы. Режим с более высокими привилегиями называется системным резр' :~( е фя ямом (зуз1епт гноме), режимом управления (соп1го! пюс)е) или режимом ядра (! е.пе! (е)- В ° еднем назва ии упоминается ядро 'е - часть операционой системы, которая выполняет важнейшие ее функции.
В табл. 3.7 перечислено вы ы те из функций операционной системы„которые обычно возлагаются на ядро. , Таблица 3.7. Типичные функции ядра операционной системы Управление процессами ° Создание и занершение процессов ° Пленпрование и диспетчеризация процессов Переключение процессов ° Оннхронизеция н поддержка обмена информацией между процессами ° Организация Управляюп~нх блоков процессов Управление памятью ° Выделение адресного пространства процессам ° Олоппнг а Управление страницами и сегментами Управление вводом-выводом а Управление буферами ° Выделение процессам каналов и устройств ввода-вывода Функции пацдержкп ° Обработка прерываний ° Учет использования ресурсов Тену~ций контроль системы Нетрудно понять, зачем нужны два вышеуказанных режима. Необходимо защитить операционную систему и ее основные таблицы, такие, как управляю- и!не блоки процессов, от воздействия пользовательских программ.