Similar presentations:
Мультипрограммирование на основе прерываний
1. Мультипрограммирование на основе прерываний
2. Назначение и типы прерываний
В зависимости от источника прерывания делятся на трибольших класса:
• внешние;
• внутренние;
• программные.
3. Внешние прерывания (аппаратные)
• Могут возникать в результате действий пользователя илиоператора за терминалом, или же в результате
поступления сигналов от аппаратных устройств —
сигналов завершения операций ввода-вывода,
вырабатываемых контроллерами внешних устройств
компьютера, такими как принтер или накопитель на
жестких дисках, или же сигналов от датчиков управляемых
компьютером технических объектов.
4. Внутренние прерывания (исключения)
• Происходят синхронно выполнению программы припоявлении аварийной ситуации в ходе исполнения
некоторой инструкции программы.
• Примерами исключений являются деление на нуль,
ошибки защиты памяти, обращения по несуществующему
адресу, попытка выполнить привилегированную
инструкцию в пользовательском режиме и т. п.
• Исключения возникают непосредственно в ходе
выполнения тактов команды («внутри» выполнения).
5. Программные прерывания
• Отличаются от предыдущих двух классов тем, что они посвоей сути не являются «истинными» прерываниями.
• Программное прерывание возникает при выполнении
особой команды процессора, выполнение которой
имитирует прерывание, то есть переход на новую
последовательность инструкций.
6. Приоритет прерываний
• Прерываниям приписывается приоритет, с помощьюкоторого они ранжируются по степени важности и
срочности.
• О прерываниях, имеющих одинаковое значение
приоритета, говорят, что они относятся к одному уровню
приоритета прерываний.
7. Обработчики прерываний
• Процедуры, вызываемые по прерываниям, обычноназывают обработчиками прерываний, или процедурами
обслуживания прерываний.
• Аппаратные прерывания обрабатываются драйверами
соответствующих внешних устройств.
• Исключения — специальными модулями ядра.
• Программные прерывания — процедурами ОС,
обслуживающими системные вызовы.
8. Механизм прерываний
• Существуют два основных способа, с помощью которыхшины выполняют прерывания:
– векторный (vectored)
– опрашиваемый (polled).
• В обоих способах процессору предоставляется
информация об уровне приоритета прерывания на шине
подключения внешних устройств.
• В случае векторных прерываний в процессор передается
также информация о начальном адресе программы
обработки возникшего прерывания — обработчика
прерываний.
9. Вектор прерываний
• представляет собой электрический сигнал, выставляемыйна соответствующие шины процессора и несущий в себе
информацию об определенном, закрепленном за данным
устройством номере, который идентифицирует
соответствующий обработчик прерываний
10. Опрашиваемые прерывания
• При их использовании процессор получает отзапросившего прерывание устройства только
информацию об уровне приоритета прерывания.
• С каждым уровнем прерываний может быть связано
несколько устройств и соответственно несколько
программ — обработчиков прерываний.
• При возникновении прерывания процессор должен
определить, какое устройство из тех, которые связаны с
данным уровнем прерываний, действительно запросило
прерывание.
11. Программные прерывания
• Программное прерывание реализует один из способовперехода на подпрограмму с помощью специальной
инструкции процессора.
• При выполнении команды программного прерывания
процессор отрабатывает ту же последовательность
действий, что и при возникновении внешнего или
внутреннего прерывания, но только происходит это в
предсказуемой точке программы — там, где программист
поместил данную команду.