Что такое прерывание в информатике

Что такое прерывание в информатике

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

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

· маскируемые, которые могут быть замаскированы программными средствами компьютера;

· немаскируемые, запрос от которых таким образом замаскирован быть не может.

Программные прерывания вызываются следующими ситуациями:

· (переполнение, нарушение защиты памяти, отсутствие нужной страницы в оперативной памяти и т.п.);

· специальной команды прерывания INT n, используемой обычно программистом при обращениях к специальным функциям операционной системы для ввода-вывода информации.

Что такое прерывание в информатике. Смотреть фото Что такое прерывание в информатике. Смотреть картинку Что такое прерывание в информатике. Картинка про Что такое прерывание в информатике. Фото Что такое прерывание в информатике

1. определение наиболее приоритетного незамаскированного запроса на прерывание (если одновременно поступило несколько запросов);

2. определение типа выбранного запроса;

3. сохранение текущего состояния счетчика команд и регистра флагов;

4. определение адреса обработчика прерывания по типу прерывания и передача управления первой команде этого обработчика;

6. восстановление сохраненных значений счетчика команд и регистра флагов прерванной программы;

7. продолжение выполнения прерванной программы.

Источник

Национальная библиотека им. Н. Э. Баумана
Bauman National Library

Персональные инструменты

Прерывание (Операционные Системы)

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

Содержание

История

Первое фактическое использование прерываний приписывают компьютеру UNIVAC 1103 в 1953 году. [2] На IBM 650 (1954) было применено впервые прерывание путём маскировки. Национальное бюро стандартов DYSEAC (1954) первым использовало прерывания для ввода / вывода. IBM 704 был первым компьютером, использующим прерывания для отладки с «передаточной ловушкой», которая может ссылаться на специальную процедуру, когда команда ветвления была имеет столкновение. Система TX-2 (1957) была первой, обеспечивающей несколько уровней приоритетных прерываний. [3]

Типы прерываний

Прерывания могут быть разделены на следующие типы:

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

Прерывание, которое оставляет машину в четко определенном состоянии, называется точным прерыванием. Такое прерывание имеет четыре свойства:

Прерывание, которое не соответствует указанным выше требованиям, называется неточным прерыванием.

Аппаратные прерывания

Аппаратные прерывания используются устройствами для передачи информации о том, что они требуют внимания со стороны операционной системы. [4] Внутренние аппаратные прерывания реализуются с использованием электронных сигналов оповещения, которые отправляются процессору от внешнего устройства, которое является частью самого компьютера, например контроллер диска, или внешнее периферийное устройство. К слову, нажатие клавиши на клавиатуре или перемещение мыши вызывают аппаратные прерывания, которые заставляют процессор считывать нажатие клавиши или положение мыши. В отличие от типа программного обеспечения, аппаратные прерывания являются асинхронными и могут произойти в середине выполнения инструкции, что требует дополнительного внимания при программировании. Акт инициирования аппаратного прерывания называется запросом прерывания (IRQ). [1]

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

Программное прерывание вызвано либо исключительным состоянием в самом процессоре, либо специальной инструкцией в наборе команд, которая вызывает прерывание, когда инструкция выполняется (см. рисунок 1). Первую часто называют ловушкой или исключением и используют для ошибок или событий, происходящих во время выполнения программы, которые настолько исключительны, что не могут быть обработаны в самой программе. Например, исключение деления на ноль будет выдано, если арифметическо-логическому блоку процессора приказано будет делить число на ноль, поскольку эта инструкция является ошибкой и невозможной. Операционная система поймает это исключение и сможет решить, что с этим делать: как правило, прерывать процесс и отображать соответствующее сообщение об ошибке. Инструкции программного прерывания могут функционировать аналогично вызовам подпрограмм и используются для различных целей, таких как запрос служб от драйверов устройств, например прерывания, отправляемые на контроллер диска и с контролера диска для запроса чтения или записи данных на диск и с диска. [1]

Что такое прерывание в информатике. Смотреть фото Что такое прерывание в информатике. Смотреть картинку Что такое прерывание в информатике. Картинка про Что такое прерывание в информатике. Фото Что такое прерывание в информатике

Сложность с разделением линий прерывания

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

Проблемы с производительностью

С многоядерными процессорами, дополнительные улучшения производительности в обработке прерываний могут быть достигнуты с помощью масштабирования на стороне приема (RSS), когда используются сетевые адаптеры с несколькими очередями. Такие NIC предоставляют несколько очередей приема, связанных с отдельными прерываниями; путем маршрутизации каждого из этих прерываний на разные ядра обработка запросов на прерывание, запускаемых сетевым трафиком, полученным одним NIC, может быть распределена между несколькими ядрами. Распределение прерываний между ядрами может выполняться операционной системой автоматически, либо маршрутизация прерываний (обычно называемая привязкой IRQ) может быть настроена вручную.

Чисто программная реализация распределения принимаемого трафика, известная как управление приемными пакетами (RPS), распределяет принятый трафик между ядрами позже в тракте данных как часть функциональности обработчика прерываний. Преимущества RPS по RSS не включают требований к конкретному оборудованию, более продвинутым фильтрам распределения трафика и уменьшенной частоте прерываний, создаваемых NIC. Как недостаток, RPS увеличивает частоту межпроцессорных прерываний (IPI). Управление потоком приема (RFS) расширяет программный подход, учитывая локальность приложений; Дальнейшее улучшение производительности достигается за счет обработки запросов на прерывание теми же ядрами, на которых конкретные сетевые пакеты будут использоваться целевым приложением. [1]

Типичное использование

Типичное использование прерываний включает в себя следующее: системные таймеры, дисковый ввод / вывод, сигналы-выключение и ловушки. Существуют прерывания для передачи байтов данных с использованием UART или Ethernet; для чувствительных нажатий клавиш, управления двигателями и т.д.

Другое типичное использование состоит в том, чтобы генерировать периодические прерывания путем деления выходного сигнала кварцевого генератора и с помощью обработчика прерываний подсчитывать прерывания, чтобы процессор мог сохранять время. Эти периодические прерывания часто используются планировщиком задач ОС для перепланирования приоритетов запущенных процессов. Некоторые старые компьютеры генерировали периодические прерывания от частоты линии электропередачи, потому что она контролировалась коммунальными службами, чтобы исключить длительный дрейф электрических часов.

Прерывания используются для эмуляции инструкций, которые не реализованы на определенных моделях в компьютерной линии. Например, инструкции с плавающей запятой могут быть реализованы в аппаратных средствах в некоторых системах и эмулироваться в более дешевых системах. Выполнение невыполненной инструкции вызовет прерывание. Обработчик прерываний операционной системы распознает возникновение невыполненной инструкции, интерпретирует инструкцию в программной подпрограмме и затем вернется к программе прерывания, как если бы инструкция была выполнена. Это обеспечивает переносимость прикладного программного обеспечения по всей линии. [1]

Источник

Прерывания и особые случаи

Прерывания и особые случаи

Механизм прерывания обеспечивается соответствующими аппаратно-программными средствами компьютера.

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

Что такое прерывание в информатике. Смотреть фото Что такое прерывание в информатике. Смотреть картинку Что такое прерывание в информатике. Картинка про Что такое прерывание в информатике. Фото Что такое прерывание в информатике

Запросы аппаратных прерываний возникают асинхронно по отношению к работе микропроцессора и связаны с работой внешних устройств.

Запрос от немаскируемых прерываний поступает на вход NMI микропроцессора и не может быть программно заблокирован. Обычно этот вход используется для запросов прерываний от схем контроля питания или неустранимых ошибок ввода/вывода.

Для запросов маскируемых прерываний используется вход INT микропроцессора. Обработка запроса прерывания по данному входу может быть заблокирована сбросом бита IF в регистре флагов микропроцессора.

Программные прерывания делятся на следующие типы.

Порядок обработки прерываний

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

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

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

Всего микропроцессор различает 256 типов прерываний. Таким образом, все они могут быть закодированы в 1 байте.

«Рефлекторные» действия микропроцессора по обработке запроса прерывания выполняются аппаратными средствами МП и включают в себя:

Что такое прерывание в информатике. Смотреть фото Что такое прерывание в информатике. Смотреть картинку Что такое прерывание в информатике. Картинка про Что такое прерывание в информатике. Фото Что такое прерывание в информатике

Что такое прерывание в информатике. Смотреть фото Что такое прерывание в информатике. Смотреть картинку Что такое прерывание в информатике. Картинка про Что такое прерывание в информатике. Фото Что такое прерывание в информатике

В IDT могут храниться только дескрипторы следующих типов:

Шлюзы ловушки и прерывания сходны со шлюзом вызова, только в них отсутствует поле счетчика WC (рис. 7.4). Так как прерывание является неожиданным событием и не связано с текущей программой, говорить о передаче параметров их обработчику не приходится.

Что такое прерывание в информатике. Смотреть фото Что такое прерывание в информатике. Смотреть картинку Что такое прерывание в информатике. Картинка про Что такое прерывание в информатике. Фото Что такое прерывание в информатике

Бит присутствия P может быть равен как 0, так и 1.

При входе в обработчик через шлюз ловушки флаг IF не меняется.

Источник

Система прерываний

Архитектура и организация ЭВМ

Рассматриваются основные вопросы, связанные с организацией работы ЭВМ при обработке прерываний, а также особенности системы прерываний в персональной ЭВМ.

Организация обработки прерываний в ЭВМ

Механизм прерывания обеспечивается соответствующими аппаратно-программными средствами компьютера.

Любая особая ситуация, вызывающая прерывание, сопровождается сигналом, называемым запросом прерывания (ЗП). Запросы прерываний от внешних устройств поступают в процессор по специальным линиям, а запросы, возникающие в процессе выполнения программы, поступают непосредственно изнутри микропроцессора. Механизмы обработки прерываний обоих типов схожи. Рассмотрим функционирование компьютера при появлении сигнала запроса прерывания, опираясь в основном на обработку аппаратных прерываний (рис. 1).

Что такое прерывание в информатике. Смотреть фото Что такое прерывание в информатике. Смотреть картинку Что такое прерывание в информатике. Картинка про Что такое прерывание в информатике. Фото Что такое прерывание в информатике

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

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

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

Время реакции определяется для запроса с наивысшим приоритетом.

Что такое прерывание в информатике. Смотреть фото Что такое прерывание в информатике. Смотреть картинку Что такое прерывание в информатике. Картинка про Что такое прерывание в информатике. Фото Что такое прерывание в информатике

Рис. 2. Работа системы прерываний при различной глубине прерываний

Без учета времени реакции, а также времени запоминания и времени восстановления:

Прерывания делятся на аппаратные и программные [[4]]

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

Программные прерывания вызываются следующими ситуациями:

Каждому запросу прерывания в компьютере присваивается свой номер (тип прерывания), используемый для определения адреса обработчика прерывания.

При поступлении запроса прерывания компьютер выполняет следующую последовательность действий:

Этапы 1-4 выполняются аппаратными средствами ЭВМ автоматически при появлении запроса прерывания. Этап 6 также выполняется аппаратно по команде возврата из обработчика прерывания.

Распознавание наличия сигналов запроса прерывания и определение наиболее приоритетного из них может проводиться различными методами. Рассмотрим один из них.

Цепочечная однотактная система определения приоритета запроса прерывания

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

Данная схема используется для анализа запросов аппаратных прерываний. Приоритет запросов прерываний (ЗПi) уменьшается с уменьшением номера запроса. В тот момент, когда компьютер должен определить наличие и приоритет внешнего аппаратного прерывания (обычно после окончания выполнения каждой команды), процессор выдает сигнал опроса. Если на входе ЗП3 присутствует сигнал высокого уровня (есть запрос), то на элементе 11 формируется общий сигнал наличия запроса прерывания и дальнейшее прохождение сигнала опроса блокируется. Если ЗП3=0, то анализируется сигнал ЗП2 и так далее. На шифраторе (элемент 12) формируется номер поступившего запроса прерывания.

Этот номер передается в процессор лишь при наличии общего сигнала запроса прерывания.

Что такое прерывание в информатике. Смотреть фото Что такое прерывание в информатике. Смотреть картинку Что такое прерывание в информатике. Картинка про Что такое прерывание в информатике. Фото Что такое прерывание в информатике

Рис. 3. Схема определения номера наиболее приоритетного запроса прерывания

Обработка прерываний в персональной ЭВМ

Микропроцессоры типа х86 имеют два входа запросов внешних аппаратных прерываний:

Единственный вход запроса маскируемых прерываний микропроцессора не позволяет подключить к нему напрямую сигналы запросов от большого числа различных внешних устройств, которые входят в состав современного компьютера: таймера, клавиатуры, «мыши», принтера, сетевой карты и т.д. Для их подключения к одному входу INT микропроцессора используется контроллер приоритетных прерываний (рис. 4).

Что такое прерывание в информатике. Смотреть фото Что такое прерывание в информатике. Смотреть картинку Что такое прерывание в информатике. Картинка про Что такое прерывание в информатике. Фото Что такое прерывание в информатике

Рис. 4. Структура контроллера приоритетных прерываний

Функции контроллера приоритетных прерываний:

Переход к соответствующему обработчику прерывания осуществляется (в реальном режиме работы микропроцессора) посредством таблицы векторов прерываний. Эта таблица (рис. 5) располагается в самых младших адресах оперативной памяти, имеет объем 1 Кбайт и содержит значения сегментного регистра команд (CS) и указателя команд (IP) для 256 обработчиков прерываний.

Что такое прерывание в информатике. Смотреть фото Что такое прерывание в информатике. Смотреть картинку Что такое прерывание в информатике. Картинка про Что такое прерывание в информатике. Фото Что такое прерывание в информатике

Рис. 5. Структура таблицы векторов прерываний

Источник

Системы прерываний. Назначение, принцип работы и организация системы прерываний ЭВМ.

Что такое прерывание в информатике. Смотреть фото Что такое прерывание в информатике. Смотреть картинку Что такое прерывание в информатике. Картинка про Что такое прерывание в информатике. Фото Что такое прерывание в информатике Что такое прерывание в информатике. Смотреть фото Что такое прерывание в информатике. Смотреть картинку Что такое прерывание в информатике. Картинка про Что такое прерывание в информатике. Фото Что такое прерывание в информатике Что такое прерывание в информатике. Смотреть фото Что такое прерывание в информатике. Смотреть картинку Что такое прерывание в информатике. Картинка про Что такое прерывание в информатике. Фото Что такое прерывание в информатике Что такое прерывание в информатике. Смотреть фото Что такое прерывание в информатике. Смотреть картинку Что такое прерывание в информатике. Картинка про Что такое прерывание в информатике. Фото Что такое прерывание в информатике

Что такое прерывание в информатике. Смотреть фото Что такое прерывание в информатике. Смотреть картинку Что такое прерывание в информатике. Картинка про Что такое прерывание в информатике. Фото Что такое прерывание в информатике

Что такое прерывание в информатике. Смотреть фото Что такое прерывание в информатике. Смотреть картинку Что такое прерывание в информатике. Картинка про Что такое прерывание в информатике. Фото Что такое прерывание в информатике

Прерывание (англ. interrupt) — сигнал, сообщающий процессору о наступлении какого-либо события. При этом выполнение текущей последовательности команд приостанавливается и управление передаётся программе обработки прерывания, которая реагирует на событие и обслуживает его, после чего возвращает управление в прерванный код.

Таким образом, система прерываний позволяет повысить эффективность использования процессора за счет освобождения его от функций слежения за готовностью периферийных устройств к обмену данными. В зависимости от источника возникновения сигнала прерывания делятся на:

─ асинхронные или внешние (аппаратные) — события, которые исходят от внешних источников (например, периферийных устройств) и могут произойти в любой произвольный момент: сигнал от таймера, сетевой карты или дискового накопителя, нажатие клавиш клавиатуры, движение мыши;

─ внутренние — события в самом процессоре как результат нарушения каких-то условий при исполнении машинного кода: деление на ноль или переполнение, обращение к недопустимым адресам или недопустимый код операции;

─ программные (частный случай внутреннего прерывания) — инициируются исполнением специальной инструкции в коде программы. Программные прерывания как правило используются для обращения к функциям встроенного программного обеспечения (firmware), драйверов и операционной системы.

Схему передачи управления при прерывании можно отобразить следующим образом.

Что такое прерывание в информатике. Смотреть фото Что такое прерывание в информатике. Смотреть картинку Что такое прерывание в информатике. Картинка про Что такое прерывание в информатике. Фото Что такое прерывание в информатике

1. при поступлении прерывания производится идентификация устройства которое его запросило;

2. запоминается информация о состоянии процессора;

3. выполняется инициализация процессора для выполнения программы обработки прерывания;

4. производится запуск и исполнение программы обработки прерывания;

5. восстанавливается состояние процессора и возобновляется работа прерванной программы.

Процесс сохранения текущего состояния на момент прерывания и его последующее восстановление называется контекстным переключением. Под состоянием процессора понимается содержимое счетчика (указателя) команд и всех его регистров на момент прерывания.

Данная схема является упрощенной, так как не рассматривает возможность появления одновременно нескольких прерываний, или появления при обработке одного прерывания следующего.

Существует большое количество классификаций прерываний.

В зависимости от возможности запрета внешние прерывания делятся на:

─ маскируемые — прерывания, которые процессор либо выполняет немедленно, либо игнорирует. Поведение процессора регулируется флагом IF в регистре флагов 0 – запрещены, 1 – разрешены (В некоторых процессорах, наряду с возможностью общего маскирования обеспечено программное маскирование некоторых типов прерываний, т.е. процессор может в определенные моменты времени запрещать прерывания от второстепенных устройств и работать только с рядом основных);

─ немаскируемые (англ. Non maskable interrupt, NMI) — обрабатываются всегда, независимо от запретов на другие прерывания. Например это сигналы об ошибках.

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

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

Приоритеты могут быть фиксированными и динамически перестраиваемыми.

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

Что такое прерывание в информатике. Смотреть фото Что такое прерывание в информатике. Смотреть картинку Что такое прерывание в информатике. Картинка про Что такое прерывание в информатике. Фото Что такое прерывание в информатике

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

Непроизводительные потери времени, затрачиваемые на последовательный поиск источника запроса, являются существенным недостатком метода линейного опроса. Указанного недостатка лишены векторные системы прерывания. Векторные системы прерывания наряду с функцией формирования адреса обработчика поступившего запроса обеспечивают выбор наиболее приоритетного прерывания. В большинстве случаев векторная система прерываний реализуется в виде специализированной СБИС —программируемого контроллера прерываний (ПКП), содержащего логику для назначения приоритетов поступающим запросам. В англоязычной литературе ПКП обозначается PIC (Programmable Interrupt Controller). Рассмотрим функциональную схему контроллера прерываний.

Что такое прерывание в информатике. Смотреть фото Что такое прерывание в информатике. Смотреть картинку Что такое прерывание в информатике. Картинка про Что такое прерывание в информатике. Фото Что такое прерывание в информатике

В ответ на запрос прерывания от ПУ контроллер прерываний формирует сигнал запрос прерывания INT, поступающий на вход INTR МП. Реагируя на этот сигнал, МП выдает сигнал подтверждения прерывания INTA (INTerrupt Acknowledge), который поступает в ПКП и используется в нем для считывания вектора прерывания поступившего запроса. Приняв сигнал INTA, контроллер прерываний выставляет на системную шину данных вектор или код прерывания, который считывается процессором. С помощью вектора прерывания процессор определяет адрес подпрограммы обслуживания прерывания. Формирование векторов прерывания и выявление запроса с наивысшим приоритетом осуществляется внутренними схемами ПКП.

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

В качестве примера рассмотрим организацию прерываний в микропроцессорной системе на базе процессора х86. Прерывания в такой системе обрабатываются с помощью ПКП, реализованного фирмой Intel в виде СБИС 8259А.

Что такое прерывание в информатике. Смотреть фото Что такое прерывание в информатике. Смотреть картинку Что такое прерывание в информатике. Картинка про Что такое прерывание в информатике. Фото Что такое прерывание в информатике

ПКП обеспечивает развязку между внешними источниками прерываний и процессором. Подобная схема применяется в ВМ различных архитектур. На схеме показаны периферийные устройства, подключенные к линиям запроса прерывания IRQ (interrupt request) системной шины ISA. Сигналы прерываний от периферийных устройств, передаваемые по этим линиям, поступают на входы IR контроллера PIC. В IBM PC- совместимых ПК каждое периферийное устройство подключено к своей индивидуальной линии IRQ, и для входа в прерывание периферийное устройство только выставляет запрос. Недостатком подобной организации является трудность подключения большого числа периферийных устройств, поскольку из-за ограниченного числа линий IRQ для дополнительных периферийных устройств свободных линий может не оказаться, а подключение нескольких периферийных устройств к одной линии IRQ недопустимо. Данный недостаток решается каскадным подключением нескольких контроллеров прерываний.

Вектор прерывания — закреплённый за устройством номер, который идентифицирует соответствующий обработчик прерываний. Векторы прерываний объединяются в таблицу векторов прерываний (англ. Interrupt Descriptor Table (IDT)). Местоположение таблицы зависит от типа и режима работы процессора.

В реальном режиме таблица векторов прерываний расположена в первом килобайте памяти начиная с адреса 0000:0000 и содержит 256 векторов прерываний. В защищённом режиме адрес в физической памяти и размер таблицы прерываний определяется 48-битным регистром IDTR.

Первый этап инициализации выполняется BIOS, перед загрузкой ОС. Второй непосредственно самой операционной системой. Операционной системе доступно изменение некоторых адресов прерываний.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *