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

Обработка прерываний выполняется в состоянии «Супервизор» и может быть прервана только в результате возникновения прерывания от схем контроля машины. Заканчивается обработка прерываний либо возвратом управления в точку прерывания, адрес которой указан в старом PSW, либо постановкой системы в состояние ожидания, либо передачей управления программе «Диспетчер». Последняя получает управление в тех случаях, когда результатом обработки прерывания является вывод некоторой задачи из состояния ожидания (в связи с завершением какого-либо события) или постановка текущей задачи в состоянии ожидания. Программа «Диспетчер» анализирует состояние задач в системе после завершения обработки прерывания и переводит в активное состояние задачу с наивысшим приоритетом, если таковая имеется, или переводит центральный процессор в состояние ожидания до возникновения очередного прерывания.

Общая схема обработки прерываний показана на рис. 3.11. Она представляет собой наиболее распространенную двухступенчатую схему обработки прерывании, применяемую в вычислительных системах общего назначения. В таких системах число типов прерываний измеряется единицами (в ЕС ЭВМ — пяти или шести типов в зависимости от типа модели). Небольшое число типов прерываний обеспечивает достаточно простую и дешевую аппаратную схему реализации прерываний. Уточнение причины возникновения прерывания осуществляется с помощью кода, помещаемого в старое PSW в момент прерывания. Первая ступень обработки прерывания заключается в выборе и выполнении программы обработки прерывания (первичная обработка прерывания). Количество таких программ определяется количеством типов прерываний. Вторая ступень обработки прерывания заключается в выборе с помощью кода прерывания и выполнении программы обработки прерывания, которая является его целью.

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

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