Прерывания. Прерывания. Классы прерываний. Механизм прерываний.. Прерывания. Классы прерываний. Механизм прерываний
Скачать 33.19 Kb.
|
Прерывания. Классы прерываний. Механизм прерываний. Прерывание (англ. interrupt) — сигнал, сообщающий процессору о наступлении какого-либо события. Приостановление работы одной программы и передача управления другой при возникновении некоторого независящего от них события. При этом сохраняется возможность возврата управления прерванной программе, без потери ею работоспособности. Классы прерываний: Программное прерывание. Генерируется в некоторых ситуациях, возникающих в результате выполнения команд. Такими ситуациями могут быть арифметическое переполнение, деление на ноль, попытка выполнить некорректную команду и ссылка на область памяти, доступ к которой пользователю запрещен. Прерывание по таймеру. Генерируется таймером процессора. Это прерывание позволяет ос выполнять некоторые свои функции периодически, через заданные промежутки времени. Прерывание ввода-вывода. Генерируется контроллером ввода- вывода. Сигнализирует о нормальном завершении операции или о наличие ошибок. Аппаратное прерывание. Генерируется при возникновении таких аварийных ситуаций, как, например, падение напряжения в сети или ошибка контроля четности памяти. Механизм обработки прерываний представлен на схеме: Основные функции супервизора прерываний: распознавание прерывания; передача управления соответствующей программе — обработчику прерываний; корректное возвращение к выполнению прерванной программы. Прерывания, используемые при работе ЭВМ, можно разделить на внешниеи внутренние. Внешние прерывания инициируются событиями, происходящими вне выполняемого в данный момент времени процесса (прерывания от таймера, от устройств ввода-вывода, от другого процесса, по требованию оператора). Внутренние прерывания возникают в результате событий, связанных с работой прерываемого процесса (обнаружение ошибки, деление на ноль, переполнение, обращение оп несуществующему адресу и др.). Особую группу составляют программные прерывания (заранее запланированные в ходе выполнения программы). Реакция системы на прерывание определяется супервизором прерываний и в зависимости от его приоритета влечет за собой одно из следующих событий: немедленное выполнение прерывания; постановку его в очередь; игнорирование. Если супервизор(центральный управляющий модуль ОС) дает команду на обработку прерывания, выполняются следующие действия: сохранение в дескрипторе (таблице) текущей задачи значений рабочих регистров; определение адреса начала программы выполнения прерывания (обращение в таблицу адресов прерываний); включение режима обработки прерываний; выполнение программы-обработчика прерываний; отключение режима обработки прерываний и восстановление из ранее созданной таблицы значений рабочих регистров для продолжения прерванного процесса. |