Прерывания

Содержание

Слайд 2

Прерывание

Это ситуация, приводящая к временному или окончательному прекращению выполнения последовательности команд

Прерывание Это ситуация, приводящая к временному или окончательному прекращению выполнения последовательности команд
одной и переходу к выполнению команд другой программы.
Или
Реакция процессора на какое-либо событие.
Или
Специфические сигналы, посылаемые процессору устройством или программой, когда требуется немедленное вмешательство.

Слайд 3

Классификация прерываний

В зависимости от источника прерывания делятся на три класса:
Внешние;
Внутренние;
Программные;

Классификация прерываний В зависимости от источника прерывания делятся на три класса: Внешние; Внутренние; Программные;

Слайд 4

Внешние прерывания

Внешние прерывания могут возникать в результате действий пользователя или же в

Внешние прерывания Внешние прерывания могут возникать в результате действий пользователя или же
результате поступления сигналов от аппаратных устройств.
Для внешних прерываний характерны следующие особенности:
Внешнее прерывание обнаруживается процессором между выполнением команд (или между итерациями в случае выполнения цепочечных команд).
Процессор при переходе на обработку прерывания сохраняет часть своего состояния перед выполнением следующей команды.
Прерывания происходят асинхронно с работой процессора и непредсказуемо, программист ни коим образом не может предугадать, в каком именно месте работы программы произойдет прерывание.

Слайд 5

Внутренние прерывания

Внутренние прерывания (исключениями происходят синхронно выполнению программы при появлении аварийной ситуации

Внутренние прерывания Внутренние прерывания (исключениями происходят синхронно выполнению программы при появлении аварийной
в ходе исполнения некоторой инструкции программы.
Примерами исключений являются деление на нуль, ошибки защиты памяти, обращения по несуществующему адресу, попытка выполнить привилегированную инструкцию в пользовательском режиме и т. п.
Исключительные ситуации обнаруживаются процессором во время выполнения команд.
Процессор при переходе на выполнение исключительной ситуации сохраняет часть своего состояния перед выполнением текущей команды.
Исключительные ситуации возникают синхронно с работой процессора, но непредсказуемо для программиста, если только тот специально не заставил процессор делить некоторое число на ноль.

Слайд 6

Внутренние прерывания

Бывают исправимые и неисправимые.
К исправимым относятся такие исключительные ситуации, как

Внутренние прерывания Бывают исправимые и неисправимые. К исправимым относятся такие исключительные ситуации,
отсутствие нужной информации в оперативной памяти.
Неисправимые исключительные ситуации обычно возникают в результате ошибок в программах. Обычно операционная система реагирует на такие ситуации завершением программы, вызвавшей исключительную ситуацию.

Слайд 7

Программные прерывания

Программное прерывание возникает при выполнении особой команды процессора, выполнение которой имитирует

Программные прерывания Программное прерывание возникает при выполнении особой команды процессора, выполнение которой
прерывание, то есть переход на новую последовательность инструкций. Программные прерывания – это удобный способ вызова процедур ОС.
Программные прерывания имеют следующие свойства:
Программное прерывание происходит в результате выполнения специальной команды.
Процессор при выполнении программного прерывания сохраняет свое состояние перед выполнением следующей команды.
Программные прерывания, естественно, возникают синхронно с работой процессора и абсолютно предсказуемы программистом.

Слайд 8

Прерывания

Аппаратные прерывания обрабатываются драйверами соответствующих внешних устройств;
Внутренние прерывания обрабатываются специальными модулями

Прерывания Аппаратные прерывания обрабатываются драйверами соответствующих внешних устройств; Внутренние прерывания обрабатываются специальными
ядра;
Программные прерывания обрабатываются процедурами ОС, обслуживающими системные вызовы.

Слайд 9

Способы выполнения прерываний

Векторный – в процессор передается номер вызываемой процедуры обработки прерывания;
Опрашиваемый

Способы выполнения прерываний Векторный – в процессор передается номер вызываемой процедуры обработки
– процессор вынужден последовательно опрашивать потенциальные источники запроса прерывания.

Слайд 10

Обработка прерываний.

Применяемый в ОС механизм обработки внутренних и внешних прерываний зависит от

Обработка прерываний. Применяемый в ОС механизм обработки внутренних и внешних прерываний зависит
того, какая аппаратная поддержка обработки прерываний обеспечивается конкретной аппаратной платформой.
Суть принятого на сегодня механизма состоит в том, что каждому возможному прерыванию процессора (будь то внутреннее или внешнее прерывание) соответствует некоторый фиксированный адрес физической оперативной памяти.

Слайд 11

Обработка прерываний.

Каждое прерывание имеет свой номер (IRQ) и с ним связана определенная

Обработка прерываний. Каждое прерывание имеет свой номер (IRQ) и с ним связана
подпрограмма.
Когда вызывается прерывание, процессор приостанавливает свою работу и происходит передача управления на ячейку оперативной памяти с соответствующим адресом (вектор прерывания) и происходит обработка прерывания.
Вектор прерываний – это адрес ячейки памяти, где находится программа по обработке данного прерывания.

Слайд 12

Обработка прерываний

Аппаратные прерывания относятся к прерываниям низшего уровня и им присваиваются младшие

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

Слайд 13

Если произошло прерывание, то

Управление передается ОС;
ОС запоминает состояние прерванного процесса (контекст);
ОС анализирует

Если произошло прерывание, то Управление передается ОС; ОС запоминает состояние прерванного процесса
тип прерывания и передает управление соответствующей программе обработки этого прерывания;
После обработки прерывания процессор возвращается к выполнению прерванного процесса либо начинает обслуживать процесс с наивысшим приоритетом

Слайд 14

Приоритезация

Механизм прерываний поддерживает приоритезацию прерываний.
Приоритезация означает, что все источники делятся на классы

Приоритезация Механизм прерываний поддерживает приоритезацию прерываний. Приоритезация означает, что все источники делятся
и каждому классу назначается свой уровень приоритета на прерывание.
При одновременном поступлении запросов прерываний из разных классов выбирается запрос, имеющий наивысший приоритет.
Например, заявки, поступающие от процессора, удовлетворяются немедленно.