Интерфейсы периферийных устройств. Ключев А.О - 57 стр.

UptoLike

56
базового алгоритма. В русском языке также применяется более короткая форма
термина: «обработка исключений».
Во время выполнения программы могут возникать ситуации, когда
состояние данных, УВВ или компьютерной системы в целом делает
дальнейшие вычисления в соответствии с базовым алгоритмом невозможным
или бессмысленными. Классические примеры подобных ситуаций:
Нулевое значение знаменателя при выполнении
операции
целочисленного деления. Результата у операции быть не может, поэтому
ни дальнейшие вычисления, ни попытка использования результата
деления не приведут к решению задачи.
Ошибка при попытке считать данные с внешнего устройства. Если
данные не удаётся ввести, любые дальнейшие запланированные
операции с ними бессмысленны.
Исчерпание доступной памяти. Если в
какой-то момент система
оказывается не в состоянии выделить достаточный для прикладной
программы объём оперативной памяти, программа не сможет работать
нормально.
Появление сигнала аварийного отключения электропитания системы.
Прикладную задачу, по всей видимости, решить не удастся, в лучшем
случае (при наличии какого-то резерва питания) прикладная программа
может озаботиться сохранением данных
.
Появление на входе коммуникационного канала данных, требующих
немедленного считывания. Чем бы ни занималась в этот момент
программа, она должна перейти к чтению данных, чтобы не потерять
поступившую информацию.
2.3.3 Функции системы прерываний и их реализация
Функции системы прерываний:
1. Прием и хранение запросов прерываний от многих источников.
2. Выделение
наиболее приоритетного запроса из множества
поступивших.
3. Проверка возможности обработки запросов центральным процессором
(проверка замаскированности запросов или сравнение уровня
приоритетности запросов с так называемым порогом прерываний).
4. Сохранение состояния (контекста) прерываемой программы.
5. Вызов обработчика прерываний.
6. Собственно обработка прерываний (выполнение программы обработки
прерываний).
7. Восстановление состояния (контекста) прерванной программы
и
возобновление ее выполнения.