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

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



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

Если необработанных прерываний нет, прерывание выполняется немедленно.

Если необработанных прерываний есть, контроллер игнорирует прерывание. Но устройство продолжает удерживать сигнал прерывания на шине до тех пор, пока оно не будет обработано.

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

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

Внутренние (синхронные) прерывания – прерывания, вызываемые событиями, которые связаны с работой процессора и являются синхронными с его операциями.

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

Механизм обработки прерываний независимо от архитектуры вычислительной системы включает следующие элементы:

Установление факта прерывания (прием сигнала на прерывание) и идентификация прерывания (в операционных системах иногда осуществляется повторно, на шаге 4).

Запоминание состояния прерванного процесса. Состояние процесса определяется прежде всего значением счетчика команд (адресом следующей команды, который, например, в i80х86 определяется регистрами CS и IP – указателем команды), содержимым регистров процессора и может включать также спецификацию режима (например, режим пользовательский или привилегированный) и другую информацию.

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

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

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

Восстановление информации, относящейся к прерванному процессу (этап, обратный шагу 4).

Возврат в прерванную программу.

Шаги 1–3 реализуются аппаратно, шаги 4–7 – программно.

Функции системы прерываний.

Главные функции системы прерываний:

распознавание или классификация прерываний;

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

корректное возвращение к прерванной программе.

Алгоритм работы:

Устройство выставляет сигнал прерывания

Контроллер прерываний инициирует прерывание, указывая номер устройства

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





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



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