Прерывания.pptx
- Количество слайдов: 26
ПРЕРЫВАНИЯ Назначение и типы прерываний
Прерывания Основная движущая сила ОС Переводят процессор на выполнение потока команд Прерывание происходит в произвольной точке потока команд программы
Организация обработки прерываний в ЭВМ Прерывание - это прекращение выполнения текущей команды или текущей последовательности команд для обработки некоторого события специальной программой - обработчиком прерывания, с последующим возвратом к выполнению прерванной программы. Прерывание используется для быстрой реакции процессора на особые ситуации, возникающие при выполнении программы и взаимодействии с внешними устройствами. Механизм прерывания обеспечивается соответствующими аппаратно-программными средствами компьютера.
Классы прерываний Внешние (аппаратные) ◦ Возникают в результате : действий пользователя поступления сигналов от аппаратных устройств Внутренние (исключения) происходят синхронно выполнению программы при появлении аварийной ситуации Программные возникают в результате выполнения особой команды процессора, выполнение которой имитирует прерывание
Механизм прерывания ◦ Существует два основных способа, с помощью которых шины выполняют прерывания: Векторный Опрашиваемый В обоих способах процессору предоставляется информация об уровне приоритета прерывания на шине подключения внешних устройств.
Векторные прерывания Устройствам, которые используют векторные прерывания, назначается вектор прерываний. Который представляет собой электрический сигнал, выставляемый на соответствующие шины процессора и несет в себе информацию об определенном, закрепленном номере устройства, который определяет соответствующий обработчик прерываний. Вектор прерываний- фиксированный, конфигурируемый, программируемый
Опрашиваемые прерывания Процессор получает от запросившего прерывание устройства только информацию об уровне приоритета прерывания С каждым уровнем прерываний может быть связано несколько устройств и обработчиков прерываний
Механизм прерываний Pentium Вектор прерываний в процессор поставляет контроллер прерываний, который отображает поступающий от шины сигнал IRQ на определенный номер вектора. Вектор прерываний, передаваемый в процессор, представляет собой целое число в диапазоне от 0 до 255, указывающее на одну из 256 программ обработки прерываний, адреса которых, хранятся в таблице обработчиков прерываний.
Приоритезация прерываний Приоритезация – все источники прерываний делятся на классы и каждому классу назначается свой уровень приоритета запроса на прерывание. Обслуживание запросов прерываний по схеме с относительными приоритетами- при одновременном поступлении запросов прерываний из разных классов выбирается запрос, имеющий высший приоритет. Но в дальнейшем при обслуживании этого запроса процедура обработки прерывания уже не откладывается даже, если появляются более приоритетные запросы. Обслуживание запросов прерываний по схеме с абсолютными приоритетами- приоритетным прерываниям разрешается, приостанавливать работу процедур обслуживания менее приоритетных прерываний.
Маскирование прерываний Упорядоченное обслуживание запросов прерывания, при обслуживании некоторого запроса все запросы с равным или более низким приоритетом маскируются, т. е. не обслуживаются.
Действия аппаратных и программных средств по обработке прерываний. 1. Распознавание типа прерываний. Если прерывания данного типа в данный момент запрещены, то процессор продолжает естественный ход выполнения программ. 2. Автоматически сохраняется часть контекста прерванного потока, которая позволит продолжить работу после прерывания. 3. Одновременно с загрузкой адреса процедуры обработки прерываний в счетчик команд может автоматически выполняться загрузка нового значения слова состояния машины, которое определяет режимы работы процессора при обработке прерывания. 4. Временно запрещаются прерывания данного типа. 5. После обработки прерывания. Прерванный контекст восстанавливается и работа потока возобновляется.
Обращение к устройству без использования прерываний Основная программа Программа Ввода -вывода 1 4 WRITE Команда Ввода - вывода 2 5 END WRITE 3 WRITE Рисунок 1 а. Поток управления при выполнении программы, включающей обращение к устройству вводавывода без использования прерываний
Обращение к устройству с использованием прерываний Основная программа Программа Ввода -вывода 1 4 WRITE Команда Ввода - вывода 2 а Обработчик прерываний 2 б 5 WRITE END 3 а 3 б WRITE Рисунок 1 б. Поток управления при выполнении программы, включающей обращение к устройству ввода-вывода с использованием прерываний и кратковременным ожиданием
Обращение к устройству вводавывода с использованием прерывания и длительным ожиданием Основная программа Программа Ввода -вывода 1 4 WRITE Команда Ввода - вывода 2 Обработчик прерываний 5 WRITE END 3 Рисунок 1 в. Поток управления при выполнении программы, включающей обращение к устройству вводавывода с использованием прерывания и длительным ожиданием
Выполнение прерывания в компьютере
Передача управления через прерывания Основная программа Обработчик прерываний 1 2. . . Здесь возникло прерывание i i+1 M . . . Рисунок 2. Передача управления через прерывания . . .
Цикл обработки команды, включающей фазу прерывания Фаза извлечения Фаза выполнения Фаза прерывания Прерывания разрешены ПУСК Извлечение следующей команды Выполнение команды Прерывания разрешены СТОП Рисунок 3. Цикл обработки команды, включающей фазу прерывания Анализ наличия Прерывания. Обработка прерывания
Временные диаграммы работы процессора при выполнении кратковременных операций вводавывода: а) без прерываний; б)- с прерываниями. Время 1 1 4 4 Простой процессора 5 Операция Ввода-вывода 2 а 5 2 2 б 4 4 Простой процессора 5 3 Операция Ввода-вывода 3 а Операция Ввода-вывода 5 3 б Рисунок 4. Временные диаграммы работы процессора при выполнении кратковременных операций ввода-вывода: а) без прерываний; б)- с прерываниями.
Укрупненная диаграмма состояний основного цикла обработки команды с учетом фазы прерывания. Извлечение команды Извлечение операнда Сохранение результата Несколько результатов Несколько операндов Вычисле ние адреса команды Расшифр Вычисле овка ние кода адреса операции операнда В Выполнение команды завершено. команде Извлечь следующую команду. Обр або тка дан ных Вычисле ние адреса операнда Анализ запросов прерыва ния Прерыва ния Нет запросов прерывания Возврат при выполнении операций Над строками или векторами Рисунок 5. Укрупненная диаграмма состояний основного цикла обработки команды с учетом фазы прерывания.
Работа системы прерываний при различной глубине прерываний
Множество прерываний: последовательная обработка Основная программа А) Обработчик прерываний Х
Множество прерываний: вложенная обработка (с гнездованием) Основная программа Обработчик прерываний Х B) Рисунок 6. Стратегии передачи управления при обработке нескольких прерываний: а) последовательная обработка; б) вложенная обработка (обработка с гнездованием 0
Организация работы с модулями ввода - вывода Основная программа ПОП принтера t=0 t=10 ПОП контроллера Линии связи t=15 t=25 ПОП диска t=40 t=35 Рисунок 7. Последовательность обработки вложенных прерываний.
Обработка прерываний в персональной ЭВМ
Структура таблицы векторов прерываний
Структура таблицы векторов прерываний Таблица 14. 1. Тип прерывания Источник прерывания 0 Деление на 0 1 Пошаговый режим выполнения программы 2 Запрос по входу NMI ··· 8 Запрос по входу IRQ 0 (системный таймер) 9 Запрос по входу IRQ 1 (контроллер клавиатуры) ··· 11 Отсутствие сегмента в оперативной памяти ··· 255 Пользовательское прерывание