Обработка прерываний. Часть 1.

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

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

Супервизор прерываний. Супервизор прерываний выполняет следующие функции:

  1. первичную обработку прерываний: анализ причин прерываний; выбор программы, которая должна реагировать на прерывание;
  2. диспетчирование задач, связанное с их переключением в активное состояние;
  3. процедуру выхода после завершения выполнения определенных функций супервизора.

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

Действие прерывания состоит в сохранении текущего слова состояния программы (PSW) в определенном для каждого типа прерываний месте основной памяти и выборке «нового» PSW в качестве текущего. Сохраняемое «старое» PSW содержит адрес команды, с которой следует продолжать выполнение прерванной программы. Кроме того, в старое PSW помещается код прерывания, отражающий причину его возникновения. В результате выборки нового PSW управление получает соответствующий типу прерывания обработчик прерываний супервизора, адрес которого помещен в новом PSW.