Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
(4) Маленькая шпорка2.doc
Скачиваний:
172
Добавлен:
24.12.2018
Размер:
2.87 Mб
Скачать

49. Организация прерываний.

Назначение системы прерываний - реакция на события, внутри и вне ЭВМ. Обеспечивается реализацией специальной операции прерывания.

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

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

Эту информацию принято называть вектором состояния процесса. Для хранения вектора состояния процесса обычно используют специальную область ОП, организованную как стек.

Типовая структура программы обработчики прерывания: приостановка выполняемой программы по сигналу прерывания; сохранение используемых прерванной программой РОН и информации о текущем состояния процессора (регистр РП) в ОП; собственно обработка прерывания соответствующей программой; восстановление РОН и сохраненной информации о состоянии процессора из ОП; возобновление выполнения прерванной программы.

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

Внешние причины – это события, которые возникают вне ЭВМ, (например во внешних устройствах)

Внутренние причины – это события, которые происходят внутри ЭВМ. Их можно разделить на два типа:

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

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

Обслуживание прерываний

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

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

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