Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
113
Добавлен:
20.05.2015
Размер:
111.1 Кб
Скачать

Лекция 4. Обработка прерываний

1. Общий принцип обработки прерываний в операционной системе.

2. Работа системы прерываний в реальном режиме работы процессора.

3. Работа системы прерываний в защищенном режиме работы процессора.

1. Общий принцип обработки прерываний в операционной системе

Одной из наиболее важных функций ОС является управление ресурсами компьютера, на котором она работает. Многие ресурсы имеют непосредственное отношение к аппаратным устройствам, таким как ЦП, оперативная память, каналы ввода-вывода. Таким образом, многие функции ОС тесно связаны с архитектурой компьютера. Реализация управления этими функциями осуществляется с помощью механизма прерываний – IRQ(InterruptRequest- запрос на прерывание).

Прерывание – это сигнал, заставляющий ЭВМ менять обычный порядок исполнения потока команд. Возникновение подобных сигналов обусловлено такими событиями, как завершение операций ввода-вывода, истечение заранее заданного интервала времени или попытка деления на нуль.

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

Предположим, что в момент наступления от некоторого источника сигнала прерывания программа Р находится в решении.

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

В рассмотренной последовательности событий возникновение и обработка прерывания могут быть совершенно не связаны с программой Р. Например, оно может быть вызвано завершением операции ввода-вывода, выданной другой программой. В общем случае невозможно предсказать когда и по какой причине программа Р будет прервана. За сохранение текущего состояния машины во время прерывания программы Р, а так же за ее восстановлением, когда Р будет продолжена, следят аппаратные и программные средства. Благодаря этому в случае прерывания, ничто за исключением времени, не влияет на ее выполнение.

Существуют следующие виды прерываний:

  • SVC – прерывание возникает при выполнении ЦП команды вывода супервизора. Эта команда используется программами для вызова функции ОС.

  • Программное прерывание возникает при появлении некоторой ситуации, такой как деление на ноль, или при попытке выполнить неправильную машинную команду и, возможно, в процессе работы программы.

  • Прерывание по таймеру вызывается интервальным таймером ЦП. Этот таймер содержит регистр, которому может быть присвоено определенное начальное значение посредством привилегированной команды STI. Значение этого регистра автоматически уменьшается на один после использования каждой единицы времени ЦП. Когда это значение становиться равным нулю, происходит прерывание по таймеру. Подобный интервальный таймер используется ОС для определения времени, в течение которого программа пользователя может оставаться под управлением машины.

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

Кроме рассмотренных стандартных ситуаций возникновение прерываний случается также, что прерывание вызывается так называемыми несуществующими устройствами. Например, при подключении периферийного устройства к процессору требуется, чтобы определенные сигналы и регистры устройства были «состыкованы» с шиной ввода-вывода системы. Если эта стыковка осуществлена не верно, то могут возникнуть ложные прерывания, относящиеся к несуществующему устройству. Если ложное прерывание надлежащим образом не обработано, то управление процессором может совершить произвольный скачек по памяти, рассчитать какие-нибудь случайные последовательности данных и, в конечном счете, привести к аварийной остановке всей системы.

Многократные прерывания имеют механизм вложения. При этом учитывается приоритетность прерываний. Например: I – SVC – прерывание; II – программные; III – таймеру; IV – вводу-выводу.

По прерыванию по вводу-выводу состояние программы выполняющейся в этот момент ЦП, сохраняется, а управление передается обработчику прерываний по вводу-выводу. Во время его работы происходит новое прерывание уже по таймеру, в результате чего управление передается обработчику прерываний по таймеру. По завершению обработки этого прерывания при помощи команды SPL 2 из рабочей области прерывания по таймеру устанавливается состояние ЦП. В результате управления снова передается обработчику по прерыванию по вводу-выводу. После завершения обработки прерывания при помощи уже другой SPL 1 восстанавливается состояние ЦП, которое было в момент первого прерывания. Теперь все прерывания открыты, потому что в слове состояния, используемом программой Р, все биты установлены в единицу.

Соседние файлы в папке Лекции_ОС