Мультипрограммирование на основе прерываний
Назначение и типы прерываний
Внешние прерывания (аппаратные)
Внутренние прерывания (исключения)
Программные прерывания
Приоритет прерываний
Обработчики прерываний
Механизм прерываний
Вектор прерываний
Опрашиваемые прерывания
Программные прерывания
75.68K
Category: programmingprogramming

Мультипрограммирование на основе прерываний

1. Мультипрограммирование на основе прерываний

2. Назначение и типы прерываний

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

3. Внешние прерывания (аппаратные)

• Могут возникать в результате действий пользователя или
оператора за терминалом, или же в результате
поступления сигналов от аппаратных устройств —
сигналов завершения операций ввода-вывода,
вырабатываемых контроллерами внешних устройств
компьютера, такими как принтер или накопитель на
жестких дисках, или же сигналов от датчиков управляемых
компьютером технических объектов.

4. Внутренние прерывания (исключения)

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

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

• Отличаются от предыдущих двух классов тем, что они по
своей сути не являются «истинными» прерываниями.
• Программное прерывание возникает при выполнении
особой команды процессора, выполнение которой
имитирует прерывание, то есть переход на новую
последовательность инструкций.

6. Приоритет прерываний

• Прерываниям приписывается приоритет, с помощью
которого они ранжируются по степени важности и
срочности.
• О прерываниях, имеющих одинаковое значение
приоритета, говорят, что они относятся к одному уровню
приоритета прерываний.

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

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

8. Механизм прерываний

• Существуют два основных способа, с помощью которых
шины выполняют прерывания:
– векторный (vectored)
– опрашиваемый (polled).
• В обоих способах процессору предоставляется
информация об уровне приоритета прерывания на шине
подключения внешних устройств.
• В случае векторных прерываний в процессор передается
также информация о начальном адресе программы
обработки возникшего прерывания — обработчика
прерываний.

9. Вектор прерываний

• представляет собой электрический сигнал, выставляемый
на соответствующие шины процессора и несущий в себе
информацию об определенном, закрепленном за данным
устройством номере, который идентифицирует
соответствующий обработчик прерываний

10. Опрашиваемые прерывания

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

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

• Программное прерывание реализует один из способов
перехода на подпрограмму с помощью специальной
инструкции процессора.
• При выполнении команды программного прерывания
процессор отрабатывает ту же последовательность
действий, что и при возникновении внешнего или
внутреннего прерывания, но только происходит это в
предсказуемой точке программы — там, где программист
поместил данную команду.
English     Русский Rules