Характеристики системы прерываний
Для оценки эффективности систем прерываний могут быть использованы следующие характеристики:
Общее число запросов прерывания (входов в систему прерываний).
Время реакции – время между появлением запроса прерывания и моментом прерывания текущей программы.
Приведем упрощенную диаграмму процесса (см. рис. 9.1).
Для одного и того же запроса задержки в исполнении прерывающей программы зависят от того, сколько программ со старшим приоритетом ждут обслуживания, поэтому время реакции определяют для запроса с наивысшим приоритетом. Время реакции зависит от того, в какой момент допустимо прерывание. Как правило, в современных ЭВМ прерывание допускается после окончания текущей команды. В этом случае время реакции определяется в основном длительностью выполняемой команды. Оно может оказаться недопустимо большим для ЭВМ, работающих в реальном масштабе времени.
Рис. 9.1. Упрощенная временная диаграмма процесса прерывания
Дело в том, что в таких машинах часто допускается выполнение прерывания после любого такта команды (микрокоманды). Однако при этом возрастает количество информации, подлежащей запоминанию и восстановлению при переключении программ.
Имеются ситуации, в которых желательно немедленное прерывание. Если аппаратура контроля обнаружила ошибку, то целесообразно сразу же прервать операцию, пока ошибка не оказала влияние на следующие такты работы программы.
Затраты времени на переключение программ (издержки прерывания) равны суммарному расходу времени на заполнение и восстановление состояния программы.
Глубина прерывания – максимальное число программ, которые могут прерывать друг друга. Если после перехода к прерывающей программе и до ее окончания прием запросов прекращается, то говорят, что система имеет глубину n, равную 1. Глубина n, равна N, если допускается последовательное прерывание до N программ. Глубина прерывания обычно совпадает с числом уровней приоритетов в системе прерываний.
Вот так выглядят временные диаграммы для прерывающих программ в системах с различной глубиной прерывания (предполагаем, что приоритет каждого последующего запроса выше предыдущего).
Рис. 9.2. Процессы прерывания с различной глубиной прерывания и дисциплиной обслуживания.
Следует отметить, что система с большей глубиной прерывания обеспечивает более быструю реакцию на срочные запросы. Если запрос на прерывание от определенного источника прерывания окажется не обслуженным к моменту прихода нового запроса от того же источника, то возникает так называемое насыщение системы прерываний. В этом случае предыдущий запрос будет утерян.
Число уровней прерывания (число классов прерывания).В ЭВМ число различных запросов (причин) прерывания может достигать нескольких десятков или сотен. В таких случаях часть запросов разделяют на отдельные классы или уровни. Совокупность запросов, инициирующих одну и ту же прерывающую программу, образует класс или уровень прерывания. Разделение запросов на классы прерывания представлено на рис. 9.3.
Запросы всех источников прерывания поступают на РгЗП, устанавливая соответствующие его разряды в единицу, которая указывает на наличие запроса прерывания определенного источника. Запросы классов прерывания ЗПК формируются схемами ИЛИ, объединяющих разряды РгЗП, относящихся к соответствующим уровням прерывания. Еще одна схема ИЛИ формирует общий сигнал прерывания ОСП, поступающий в устройство управления процессора. После принятия запроса прерывания на исполнение и передачу управления прерывающий программе соответствующий триггер РгЗП сбрасывается. Следует отметить, что объединение запросов в классы прерывания позволяет уменьшить объем аппаратуры, но приводит к замедлению работы системы прерываний.
Рис. 9.3. Разделение запросов на классы прерывания.