Прерванной программе

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

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

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

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

Заключительная часть прерывающей программы восстанавливает сохраненное в ОП содержимое регистров и завершает свою работу командой загрузки слова состояния прерванной программы из ячейки «старого» ССП в РгССП. Управление переходит к прерванной программе.

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

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

— запоминает в стеке адрес очередной команды прерванной программы;

На 8-1 приведена упрощенная временная ди-"аграмма процесса прерывания. Запрос прерывания вызывает к исполнению соответствующую прерывающую программу немедленно или с некоторой задержкой. До того момента, когда начнет исполняться первая команда прерывающей программы, запрос прерывания должен, как правило, сохраняться в системе, а затем он мо^-жет быть погашен. Прекращая выполнение прерванной программы, система прерывания должна обеспечить возможность возврата к ней в последующем, т. е. возможность продолжить программу с той точки, в которой произошло прерывание. Для этого необходимо запомнить состояние прерванной программы, существующее в момент прерывания.

щие заявкам на выполнение иных более важных работ, то выход заключается в'восстановлении состояния прерванной программы. Если управление запоминанием состояния и выходом возложено на саму прерывающую программу, то она должна состоять из трех частей: подготовительной и заключительной, обеспечивающих переключение программ, и собственно прерывающей программы, осуществляющей ту работу, которая была Затребована запросом прерывания.

затрачиваемых на запоминание состояния прерванной программы и выход из прерывающей программы.

ванием стековой памяти в процедурах перехода к прерывающей программе и возврата к прерванной программе.

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

Заключительная часть прерывающей программы восстанавливает сохраненное в ОП содержимое регистров и завершает свою работу командой загрузки слова состояния прерванной программы из ячейки «старого» ССП в РгССП. Управление переходит к прерванной программе.

10.5. Процедура прерывания программ в МП К580: IMP — передача управления; DI и ?/ — запрещение и разрешение прерывания; PUSH и POP — запись в стек и считывание из стека; ЛЯГ — загрузка из стека счетчика команд СчК (возврат к прерванной программе)

Перед выходом из прерывающей программы последняя восстанавливает из стека состояния регистров, в том числе аккумулятора и регистра признаков, которые они имели перед прерыванием, и управление переходит к прерванной программе (команда RET). Перед выполнением процедуры запоминания и восстановления содержимого регистров прерывание запрещается (команда DI), а по их завершении разрешается (команда EL).

Чтобы удовлетворить всем этим требованиям, АУ центрального процессора содержит блоки дополнительного оборудования, обеспечивающего вычисления с соответствующими структурами данных. На схеме (см. 3.1) это показано несколькими типами АУ. Соответственно расширяется и состав машинных команд, т. е. функции УУ. Для быстрого запоминания и использования вновь промежуточных результатов, индексации адресов в командах, быстрого запоминания текущего состояния ВС, для возможности временного переключения на программу и возвращения затем к прерванной программе ЦП снабжается небольшим количеством быстрых регистров, которые составляют сверхоперативную память. При этом ЦП приобретает некоторую автономность и короткие программы, главным образом управляющего плана, может выполнять, не обращаясь к ОЗУ.

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

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

в) обеспечение возврата к прерванной программе;

8-4. ОРГАНИЗАЦИЯ ВОЗВРАТА К ПРЕРВАННОЙ ПРОГРАММЕ

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



Похожие определения:
Противоположном направлению
Противоположно выбранному
Проведены испытания
Преобразователя получается
Проведения ремонтных
Проведение профилактических
Проведенные исследования

Яндекс.Метрика