Обработка особых ситуаций и прерывания

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

Для обработки таких ситуаций в классической архитектуре был предложен специальный механизм, который получил название прерываний. Для иллюстрации разделения прерываний по типам и механизма их обработки рассмотрим обработку особых ситуаций, принятую в семействе ЭВМ IBM 360/370.

Обработка особых ситуаций и прерывания

При разработке этого семейства ЭВМ были выделены следующие типы прерываний:

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

Механизм обработки прерываний включал в себя загрузку пар PSW для каждого типа прерываний при загрузке операционной системы. Новое PSW прерывания содержало адрес обработчика прерываний данного типа внутри операционной системы.

При возникновении прерывания аппаратно производилась смена PSW, что и приводило к запуску обработчика прерываний. Старое PSW было необходимо для возврата из обработчика прерываний в прерванную программу.

0

Яндекс.Метрика