Аппаратные средства системы прерываний

Введение

Недостатки механизма опроса

Производительность и реактивность при механизме опроса

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

1) Если программируем такую задачу, что tye велико снижается реактивность ЭВМ, поскольку внешние устройства долго дожидаются yelding.

 

2) Если tye мало, то слишком часто процессор отвлекается от выполнения основного алгоритма на проверку опросов. Падает производительность.

 

Вывод: приходиться выбирать tye и соответствующую политику yelding в программе, исходя из компромисса между производительностью и реактивностью.

 

1) Снижение производительности и реактивности

 

2) Из-за ошибки в программе yelding может не наступать, это означает, что ошибочная программа может нарушить работу ЭВМ.

 

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

 

3.16 Ввод/вывод. Механизм прерываний.

1) Задача та же, что и при механизме опросов, но решается таким образом., что:

- процессор не отвлекается на проведении опросов

- внешние устройства не ожидают опросов, и имеют хороший шанс что их запрос – будет обработан сразу.

 

 

2) Решить задачу таким образом невозможно, не используя дополнительные аппаратные средства. Эти средства в современных ЭВМ поддерживаются и называются "системой прерываний".

 

Вот теперь мы знаем достаточно много чтоб заняться изучением вопроса, подробное рассмотрение которого мы в своё время – опустили.Смотрим первый рисунок "архитектура Гарварда" и разделы [1.10], [3.6.2]

 

Восстановим часть рисунка "Архитектура Гарварда" имеющую отношение к системе прерываний:

 

INT1 …. INTZ – линии прерываний. Единичный сигнал, выставленный на линию – контроллером означает: контроллер требует от процессора приостановить выполнение текущей программы "текущего контекста" и перейти к выполнению определённой "программы обработки внешнего события" или другими словами к выполнению "программы обработки прерывания".

Z – число линий прерывания.

INT – линия генерального запроса на прерывание.

INTA – линия ответа на прерывание (1 на линии означает, что процессор - начал обработку прерывания)

КП – контроллер прерывания;

RN, RFI – регистры контроллера прерывания;

RN – регистр номера линии прерывания;

RFI – регистр флагов прерывания, каждый флаг этого регистра - соответствует линии прерывания:

RFn       RF1

 

RFI можно переписывать; записывая 1 в RFi, мы разрешаем обработку прерываний, поступающих с i-той линии прерываний, 0 – запрещаем.