Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Механизм прерываний. Механизм прерываний поддерживается аппаратными средствами компьютера и программными средствами ОС



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

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

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

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

Механизм прерываний некоторой аппаратной платформы может сочетать векторный и опрашиваемый типы прерываний. Например, в ПК на платформе Intel Pentium шины PCI, ISA, EISA, используемые для подключения УВВ, поддерживают механизм опрашиваемых прерываний. Контроллеры УВВ выставляют на шину не вектор, а сигнал запроса прерывания определенного уровня IRQ. Однако в процессоре Pentium система прерываний является векторной. Поэтому контроллер прерываний предварительно отображает поступающий от шины сигнал IRQ на определенный номер вектора и подает в процессор Pentium уже вектор прерываний [2].

Вектор прерываний представляет собой целое число (номер) в диапазоне 0-255, указывающее на одну из 256 программ обработки прерываний, адреса которых хранятся в таблице обработчиков прерываний. Когда к каждой линии IRQ подключается только одно устройство, процедура обработки прерываний работает по векторной схеме (без дополнительных опросов УВВ). Однако при совместном использовании одного уровня IRQ несколькими УВВ программа обработки прерываний должна работать по схеме опрашиваемых прерываний, дополнительно производя опрос всех УВВ, подключенных к каждому уровню IRQ.

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

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

Общая последовательность действий аппаратных и программных средств по обработке прерывания такова [1-4].

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

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

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

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

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





Дата публикования: 2015-10-09; Прочитано: 1166 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.007 с)...