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

Прерывание: определение, назначение, стадии процесса обработки прерывания. Отличия и различия по сравнению с вызовом процедур/функций



Прерывания представляют собой механизм, позволяющий координировать па­раллельное функционирование отдельных устройств вычислительной системы и реагировать на особые состояния, возникающие при работе процессора. Таким образом, прерывание – это принудительная передача управления от выполняе­мой программы к системе (а через неё – к соответствующей программе обработ­ки прерывания), происходящая при возникновении определённого события.

Идея прерываний была предложена в середине 50-х годов и можно без преувели­чения сказать, что она внесла наиболее весомый вклад в развитие вычислитель­ной техники. Основная цель введения прерываний – реализация асинхронного режима работы и распараллеливание работы отдельных устройств вычислитель­ного комплекса.

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

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

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

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

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

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

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

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

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

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

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

Рис. 6. Обработка прерывания

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

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

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

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

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





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



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