Прерывание (ОС).pptx
- Количество слайдов: 17
Тема 2. 2. Обработка прерываний Операционные системы и среды
Определения Прерывания - это механизм, позволяющий координировать параллельное функционирование отдельных устройств ВС и реагировать на особые состояния, возникающие при работе ЦП. Прерывание — сигнал, сообщающий процессору о наступлении какого-либо события. При этом выполнение текущей последовательности команд приостанавливается и управление передаётся обработчику прерывания, который реагирует на событие и обслуживает его, после чего возвращает управление в прерванный код.
Назначение Система прерываний позволяет повысить эффективность использования процессора за счет освобождения его от непроизводительных функций слежения за готовностью периферийных устройств к обмену данных.
Порядок возникновения прерывания
Последовательность действий при обработке прерываний Принимает сигнал запроса на прерывание и идентифицирует источник прерываний Запоминается информация о состоянии ЦП (содержимое счетчика(указателя) команд и всех регистров) Управление аппаратно передается на подпрограмму обработки прерывания Сохранение информации о прерванной программе, которую не удалось спасти с помощью аппаратуры. Осуществляется запуск и исполнение программы обслуживания поступившего запроса прерывания Восстанавливает состояние ЦП на момент прерывания Возвращает управление прерванной программе Шаги 1 -3 выполняются аппаратно, 4 -7 – программно.
Обработка прерывания
Главные функции механизма прерываний 1. Распознавание или классификация прерываний 2. Передача управления соответствующему обработчику прерываний 3. Корректное возвращение к прерванной программе Переход от прерываемой программы к обработчику и обратно должен выполняться как можно быстрей. Одним из самых простых и быстрых методов является использование таблицы, содержащей перечень всех допустимых для компьютера прерываний и адреса соответствующих обработчиков.
Типы прерываний в соответствии с источником их формирования Внутренние (вырабатываются ЦП) Исключительные ситуации(ошибки) Программные Внешние (аппаратные) (вырабатываются внешними по отношению к ЦП устройствами) Отладочные Немаскируемые Маскируемые
Классы прерываний Внешние вызываются асинхронными событиями Прерывания от таймера От внешних устройств(по вводу-выводу) По нарушению питания С пульта оператора вычислительной системы(ВС) От другого процессора или ВС
Классы прерываний Внутренние вызываются событиями, которые связаны с работой ЦП и являются синхронными При нарушении адресации При наличии в поле кода операции незадействованной двоичной комбинации При делении на ноль Вследствие переполнения или исчезновения порядка От средств контроля(ошибки четности)
Классы прерываний Программные (частный случай внутреннего прерывания) — инициируются исполнением специальной инструкции в коде программы. Программные прерывания, как правило, используются для обращения к функциям встроенного программного обеспечения драйверов и операционной системы. Таким образом, обеспечивается автоматическое переключение процессора в привилегированный режим с возможностью исполнения любых команд.
Приоритет Сигналы, вызывающие прерывания, могут возникать одновременно. Выбор одного из них осуществляется на основе приоритетов. Учет приоритета может быть аппаратным или программно-аппаратным.
Программно-аппаратный способ позволяет применять различные дисциплины обслуживания прерываний. С помощью программного управления специальными регистрами маски (маскирование прерывания). Дисциплины обслуживания прерываний: С относительными приоритетами С абсолютными приоритетами По принципу стека или по дисциплине LCFS – последним пришел, первым обслужен
С относительными приоритетами Обслуживание прерывания не прерывается даже запросами с более высокими приоритетами. Следующим будет запрос с наивысшим приоритетом. Для организации такой дисциплины нужно в программе обслуживания данного запроса наложить маски на все остальные сигналы прерывания или отключить систему прерываний
С абсолютными приоритетами Всегда обслуживается прерывание с наивысшим приоритетом. Для организации такой дисциплины нужно на время обработки прерывания замаскировать все запросы с более низким приоритетом. Возможно многоуровневое прерывание. Число уровней зависит от приоритета запроса.
По дисциплине LCFS Запросы с более низким приоритетом могут прерывать обработку прерывания с более высоким приоритетом. Для организации такой дисциплины нужно не накладывать маску ни на один из сигналов прерываний и не выключать систему прерываний.
Глубина вложенности прерываний -- определяет максимальное число программ, которые могут прерывать друга. Вложенность прерываний обычно совпадает с числом уровней приоритета в системе прерываний.
Прерывание (ОС).pptx