Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ГЛАВА 6. Мультипрограммирование на основе прерываний.doc
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
100 Кб
Скачать
☆

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

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

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

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

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

Механизм прерывания некоторой аппаратной платформы может сочетать векторный и опрашиваемый типы прерываний . Типичным примером такой реализации является платформа персональных компьютеров на основе процессоров Intel Pentium .

Вектор прерываний , передаваемый в процессор , представляет собой целое число в диапазоне от 0 до 255 , указывающие на одну из 256 программ обработки прерываний , адреса которых хранятся в таблице обработчиков прерываний .

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

  • При возникновении сигнала (для аппаратных прерываний) или условий (для внутренних прерываний) прерывания происходит первичное аппаратное распознание типа прерывания .

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

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

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

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]