ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 03.02.2024
Просмотров: 112
Скачиваний: 0
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
СОДЕРЖАНИЕ
Цель и механизм обработки прерываний
Реакция на появление сигнала запроса прерывания
Аппаратные (внешние) прерывания
Программные (внутренние) прерывания
Исключения (внутренние прерывания)
Аппаратные и программные средства системы прерываний
Обработка прерывания в реальном (однозадачном) режиме
Работа системы прерываний в защищенном (многозадачном) режиме
Обработка прерываний
Оглавление
Введение 2
Понятие прерывания 2
Цель и механизм обработки прерываний 2
Элементы механизма прерывания 2
Функции механизма прерывания 3
Реакция на появление сигнала запроса прерывания 3
Классификация прерываний 5
Классы прерываний 5
Типы внешних прерываний 5
Режимы работы процессора 6
Аппаратные (внешние) прерывания 7
Программные (внутренние) прерывания 8
Исключения (внутренние прерывания) 8
Аппаратные и программные средства системы прерываний 8
Таблица векторов прерываний 9
Таблица векторов 9
Приоритезация прерываний 10
Обработка прерываний 11
Обработка прерывания в реальном (однозадачном) режиме 11
Работа системы прерываний в защищенном (многозадачном) режиме 11
Особенности обработки аппаратных прерываний 12
Контроллер прерывания 15
Выводы 16
Введение
Понятие прерывания
Для обработки событий, происходящих асинхронно (см. ниже) по отношению к выполнению программы, лучше всего подходит механизм прерываний. Прерывание можно рассматривать как некоторое особое событие в системе, требующее моментальной реакции.
Практически все системы ввода/вывода в компьютере работают с использованием прерываний. В частности, когда вы нажимаете клавиши или щелкаете мышью, аппаратура вырабатывает прерывания. В ответ на них система, соответственно, считывает код нажатой клавиши или запоминает координаты курсора мыши. Прерывания
вырабатываются контроллером диска, портами последовательной передачи данных, звуковым адаптером и другими устройствами.
Кажется очевидным, что возможны самые разнообразные прерывания по самым различным причинам. Поэтому с прерыванием связывают число - так называемый номер прерывания.
Этот номер однозначно соответствует тому или иному событию. Система умеет распознавать прерывания и при их возникновении запускает процедуру, соответствующую номеру прерывания.
Некоторые прерывания (первые пять по порядку номеров) зарезервированы для использования центральным процессором на случай каких-либо особых событий вроде попытки деления на нуль, переполнения и т. п.
Прерывание (англ. interrupt) — сигнал, сообщающий процессору о наступлении какого- либо события. При этом выполнение текущей последовательности команд приостанавливается и управление передаѐтся обработчику прерывания, который реагирует на событие и обслуживает его, после чего возвращает управление в прерванный код.
Цель и механизм обработки прерываний
Основная цель введения прерываний – реализация асинхронного режима работы и распараллеливания работы отдельных устройств вычислительного комплекса. Механизм прерываний реализуется аппаратно-программными средствами.
Структуры систем прерываний могут быть самыми различными, но все они имеют общую особенность – прерывание непременно ведет за собой изменение порядка выполнения команд процессором.
Элементы механизма прерывания
Механизм обработки прерываний включает в себя следующие элементы:
-
Установление факта прерывания (прием и идентификация сигнала на прерывание). -
Запоминание состояния прерванного процесса (состояние процесса
определяется значением счетчика команд, содержимым регистра процессора, спецификацией режима: пользовательский или привилегированный)
-
Управление аппаратно передается программе обработки прерывания. В этом случае, в счетчик команд заносится начальный адрес подпрограммы обработки прерывания, а в соответствующие регистры из слова состояния. -
Сохранение информации в прерванной программе, которую не удалось спасти с помощью действий аппаратуры. -
Обработка прерывания. Работа может быть выполнена той же подпрограммой, которой было передано управление на 3-ем шаге, но в ОС чаще всего эта обработка реализуется путем вызова соотв. подпрограммы. -
Восстановление информации относящейся к прерванному процессу. -
Возврат в прерванную программу.
Первые 3 шага реализуются аппаратными средствами, а остальные – программно.
Функции механизма прерывания
Главные функции механизма прерывания:
-
Распознавание или классификация прерывания. -
Передача управления обработчику прерывания. -
Корректное возвращение к прерванной программе
Переход от прерванной программе к обработчику и обратно должен производится
как можно быстрее.
Одним из быстрых методов является использование таблицы, содержащей перечень всех допустимых для компьютера прерываний и адреса соответствующих обработчиков. Для корректного возвращения к прерванной программе, перед передачей управления обработчику, содержимое регистров процессора запоминается либо в памяти с прямым доступом либо в системном стеке.
Реакция на появление сигнала запроса прерывания
Рассмотрим функционирование компьютера при появлении сигнала запроса прерывания, опираясь в основном на обработку аппаратных прерываний (рис. 1).
Рис. 1. Выполнение прерывания в компьютере: tр - время реакции процессора на запрос прерывания; tс - время сохранения состояния прерываемой программы и вызова
обработчика прерывания; tв - время восстановления прерванной программы
После появления сигнала запроса прерывания ЭВМ переходит к выполнению программы - обработчика прерывания. Обработчик выполняет те действия, которые необходимы в связи с возникшей особой ситуацией. Например, такой ситуацией может быть нажатие клавиши на клавиатуре компьютера. Тогда обработчик должен передать код нажатой клавиши из контроллера клавиатуры в процессор и, возможно, проанализировать этот код. По окончании работы обработчика управление передается прерванной программе.
Время реакции - это время между появлением сигнала запроса прерывания и началом выполнения прерывающей программы (обработчика прерывания) в том случае, если данное прерывание разрешено к обслуживанию.
Дваподходаковремениреакции
Время реакции зависит от момента, когда процессор определяет факт наличия запроса прерывания. Опрос запросов прерываний может проводиться либо:
-
по окончании выполнения очередного этапа команды (например, считывание команды, считывание первого операнда и т.д.), -
либо после завершения каждой команды программы.