- •Операционные системы
- •Введение
- •Глава 1 понятие и эволюция операционных систем
- •1.1. Определение операционной системы
- •1. 2. История развития операционных систем
- •1.3. Основные характеристики ос
- •1.4. Принципы построения ос
- •Глава 2 архитектура вычислительной системы
- •2.1. Особенности методов построения
- •Глава 3 управление процессами
- •3.1. Операции над процессами
- •3.2. Основная концепция обработки прерываний
- •3.3. Переключение контекста в ec эвм
- •Глава 4 управление асинхронными параллельными процессами
- •If q(s) очередь не пуста?
- •Глава 5 управление основной памятью
- •Глава 6 управление виртуальной памятью
- •6.1. Концепция виртуальной памяти
- •1.Признак обращения 0 - было
- •2.Признак модификации записи 0 - неизменен.
- •6.2. Динамическая страничная организация
- •6.3. Сегментная организация виртуальной памяти
- •6.4. Комбинированная странично-сегментная организация памяти
- •6.5. Двухуровневая страничная организация
- •Глава 7 многозадачность и многонитевость
- •7.1. Понятие многонитевости
- •7.2. Реализация многонитевой обработки в windows 95
- •7.3. Подкачка страниц памяти
- •Глава 8 управление процессорами и заданиями в однопроцессорном вычислительном комплексе
- •Глава 9 управление процессорами и заданиями в мультипроцессорных вычислительных комплексах.
- •9.1. Решение фирмы Сompaq
- •Глава 10 управление периферийными устройствами
- •10.1. Физическая организация периферийных устройств
- •10.2. Организация программного обеспечения ввода-вывода
- •Глава 11 подсистема управления данными
- •11.1. Система управления файлами
- •11.2. Способы доступа и организации файлов
- •11.3. Управление внешней памятью
- •11.4. Способы распределения памяти на диске
- •Глава 12 Современные концепции и технологии проектирования операционных систем
- •12.1. Требования, предъявляемые к ос 90-х годов
- •12.2. Тенденции в структурном построении ос
- •Глава 13 История и общая характеристика семейства операционных систем unix
- •Глава 14 История Windows nt
- •14.1. Версии Windows nt
- •14.2. Структура: nt executive и защищенные подсистемы
- •14.3 Области использования Windows nt
- •Литература:
3.2. Основная концепция обработки прерываний
В различных ЭВМ существует различный набор типов прерываний, которые можно разделить на 6 классов.
-
Программы-прерывания по системной директиве. Инициатор – активный процесс, выполнивший команду SVC (обращение к супервизору), то есть запрос на предоставление ОС какой-либо системной вычислительной услуги.
-
Прерывания ввода-вывода. Инициируются устройством ввода/вывода (УВВ) и сигнализируют ЦП о том, что произошло изменение состояния канала ввода-вывода (КВВ) или УВВ (например: завершение операции, ошибка, переход устройства в состояние готовности).
-
Внешние прерывания. Причинами их является нажатие операторами клавиш на панели ЭВМ или прием сигнала прерывания от другого ЦП в мультипроцессорной системе или сигнала от модема.
-
Прерывание по рестарту. Нажатие оператором на панели управления кнопки рестарта или Reset.
-
Логические прерывания по контролю программы вызываются программными ошибками, обнаруженными при выполнении программы (деление на ноль, попытка выполнить привилегированную команду в пользовательском режиме, неверный код операции, защита памяти и т.д.).
-
Прерывания по контролю машины вызываются аппаратными ошибками.
Планирование процессов включает в себя решение следующих задач:
-
Определение момента времени для смены выполняемого процесса.
-
Выбор процесса на выполнение из очереди готовых процессов.
-
Переключение контекстов "старого" и "нового" процессов.
Первые две задачи решаются программными средствами и будут рассмотрены в следующих разделах, а последняя выполняется, как правило, аппаратно.
3.3. Переключение контекста в ec эвм
В основе процедуры переключения контекста лежит использование Program Status Word (PSW) или Слова Состояния Процесса (CCП) - это аппаратный регистр ЭВМ, который управляет работой активного процесса и содержит следующие данные:
-
текущее состояние ЦП (счет, ожидание);
-
ключ защиты памяти процесса;
-
адрес следующей команды процесса;
-
код прерывания процесса;
-
маску прерываний (код возможных прерываний);
-
признак результата выполненной команды.
Маска прерываний используется для запрещения определенных видов прерываний, когда осуществляется обработка текущего прерывания. Типы прерываний упорядочены по приоритетам. Определенный тип прерываний запрещает свой тип и младшие и разрешает старшие. ЦП реагирует только на разрешенные прерывания, обработка запрещенных прерываний либо задерживается, либо, в некоторых случаях, игнорируется.
В ЭВМ типа ЕС для работы с прерываниями используются 3 типа ССП, размещенных в фиксированных ячейках ОП.
-
Текущее ССП.
-
Шесть новых ССП.
-
Шесть старых ССП.
Новое ССП для данного типа прерываний содержит постоянный адрес, по которому размещается обработчик прерываний данного типа.
Когда происходит разрешенное прерывание, осуществляется автоматическое переключение ССП следующим образом (рис.3.2):
-
Текущее ССП становится старым для прерывания соответствующего типа.
-
Новое ССП становится текущим. Таким образом, управление передается обработчику прерываний, который выполняет обработку.
-
Восстанавливается текущее ССП прерванного процесса.
Рис. 3.2. Переключение контекста.
Аналогичная процедура происходит в MS DOS. С нулевого адреса ОП располагается таблица векторов прерываний.
Область векторов прерываний охватывает адреса от 0 до 3FFh в шестнадцатеричном исчислении. Каждый 4-х байтный участок этой области содержит адрес первой команды подпрограммы обработки прерываний (вектор прерываний), которая должна вызываться при возникновении прерывания конкретного типа (рис.3.3).
Объем памяти векторов прерываний 256*4=1024 байт.
При возникновении прерываний ОС выполняет следующую последовательность операций:
-
Запоминает адрес текущей команды из регистров CS:IP в стеке вместе с регистром флагов (состояний), представленным на рис.3.4.
-
Загружает в CS:IP адрес обработчика прерываний.
-
Обработчик прерываний завершается командой IRET (возврат управления), которая восстанавливает из стека содержимое СS:IP и регистр флагов состояния, структура которого приведена на рисунке 3.4.
Рис. 3.3. Таблица вектора прерываний
Д ля работы с прерываниями используются следующие команды микропроцессора:
Sti - set interrupt (I=1, разрешить прерывание)
Cli - clear interrupt (I=0, запретить прерывание)
Если за командой CLI не следует STI, то машина “зависает”, так как клавиатура не реагирует на нажатие клавиш. Для программирования прерываний используется IMR - регистр маски прерываний.
Микросхема I8259 (устройство управления прерываниями) для I8086 имеет 8 уровней приоритетов (IRQ0 - IRQ7) (для старших моделей МП - 16).
Можно запретить аппаратные прерывания. Запрет (блокировка) может выполняться для ускорения критической части кода целиком.
Для маскирования аппаратного прерывания необходимо использовать порт 24H. В 1’В’ устанавливаются биты, соответствующие номеру прерывания.
Рис. 3.4 Регистр флагов состояний