Прерывающая программа - Большая Энциклопедия Нефти и Газа, статья, страница 2
Параноики тоже люди, и у них свои проблемы. Легко критиковать, но если бы все вокруг тебя ненавидели, ты бы тоже стал параноиком. Законы Мерфи (еще...)

Прерывающая программа

Cтраница 2


После выполнения прерывающей программы происходит возврат к прерванной. Для этого прерывающую программу заключает команда Возврат из прерывания или, иначе, Загрузить ( восстановить) ССП. В ЭВМ общего назначения из ячейки ОП, в которой хранится ССП прерванной программы, извлекается и вновь становится текущим старое ССП. В мини - и микроЭВМ по этой команде старое ССП извлекается из магазинной памяти.  [16]

Рассмотрим пример прерывающей программы.  [17]

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

После исполнения прерывающей программы должен быть осуществлен выход из нее.  [19]

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

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

После окончания выполнения прерывающей программы микропроцессор возвращается к выполнению основной программы с команды, на которой произошло прерывание.  [22]

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

24 Прерывание при использовании ССП. [24]

В конце выполнения прерывающей программы для перехода к прерванной программе старое ССП записывается в качестве текущего.  [25]

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

27 Схема механизма прерывания. [27]

По окончании работы прерывающей программы управление возвращается к команде А 1 основной прерванной программы путем переноса команды А 1 из РгАВ в СчК - Основная программа продолжается с команды А 1, следующей сразу же за той, на которой произошло прерывание.  [28]

При входе в прерывающую программу аппаратура машины записывает старое ССП по адресу, определяемому текущим значением АЗП, которое затем увеличивается на единицу. После этого машина выбирает новое ССП в соответствии со значением базового адреса и номера уровня. В конце прерывающей программы выполняется команда, которая уменьшает АЗП на единицу и вызывает ССП по адресу из АЗП. Ячейки массива старых ССП не привязаны к уровням прерывания, и расположение в них информации определяется порядком следования запросов прерывания во времени. До сих пор для простоты предполагалось, что ССП занимает одну ячейку памяти. В реальных системах длины одной ячейки не хватает и ССП занимает несколько последовательных ячеек памяти.  [29]

Процедура перехода к прерывающей программе и возврата из нее, реализуемая в ЕС ЭВМ, пояснена на рис. 9.17. Каждому классу прерывания отводятся в постоянно распределенной области памяти фиксированные ячейки ОП для хранения старого ССП и нового ССП.  [30]



Страницы:      1    2    3    4