Cтраница 2
Как и в любом случае передачи управления от одной программы к другой, при выполнении прерывания необходимо решать вопрос сохранения состояния прерванной программы. [16]
Если центральный процессор ЭВМ в момент поступления блока данных выполнял команды некоторой программы, то осуществляется прерывание этих вычислений, производится запоминание состояния прерванной программы для последующего продолжения ее работы. Процессор предоставляется в распоряжение программы, контролирующей прием новой порции данных. Чтобы уменьшить затраты машинного времени на связь ЭВМ с объектом исследований, сеансы связи выгодно делать реже, а для этого следует укрупнять блоки данных, собирая кадры, относящиеся к разным моментам времени в единую упорядоченную группу. [17]
Структура системы прерывания приведена на рис. 2.3, где 1 - регистр запроса прерывания; 2 - схема выбора запроса прерывания ( распознавание причины прерывания); 3 - схема формирования сигнала прерывания; 4 - набор программ ММЭВМ, в том числе программ отработки запросов прерывания; 5 - средства запоминания состояния прерванной программы. [18]
ЗП) процессор переходит к прерывающей программе Я2 не сразу, так как требуется время / р на анализ запроса и окончание действий по выполняемой команде прерываемой программы Пи называемое временем реакции системы на запрос прерывания. Сразу после ее окончания в течение tB восстанавливается состояние прерванной программы Я и ей передается управление. Сумма времени, затрачиваемого на запоминание состояния прерванной программы Я и на возврат к ней, называют временем обслуживания программы. Время реакции tp и обслуживания t0tg tB характеризуют потери машинного времени на организацию процесса прерывания и быстродействие ЭВМ по обслуживанию запросов прерывания. [19]
После этого запрошенная передача данных реализуется под управлением процессора, выполняющего прерывающую программу ввода-вывода, инициируемую вектором прерывания. Перед переходом к этой программе процессор запоминает в стеке состояние прерванной программы и свой текущий уровень приоритета. [20]
Этот механизм удобен также и для обработки машинных прерываний. Когда возникает прерывание, машина имитирует команду CALL, сохраняя таким образом состояние прерванной программы. [21]
Возврат к прерванной программе осуществляет заключительная часть прерывающей программы, в которой команды передачи данных с автоинкрементной прямой адресацией по указателю стека производят передачу из стека сохраненных в нем состояний общих регистров в соответствующие регистры. Последней командой прерывающей программы - командой Возврат из прерываний - первое слово вектора состояния прерванной программы загружается из стека в счетчик команд, а второе слово - в регистр слова состояния процессора. Передача каждого слова сопровождается увеличением УС на два. После этого восстанавливается выполнение прерванной программы. [22]
После исполнения прерывающей программы должен быть осуществлен выход яз нее. Если за это время в системе не появились запросы прерывания, соответствующие заявкам на выполнение иных более важных работ, то выход заключается в восстановлении состояния прерванной программы. Если управление запоминанием состояния и выходом возложено на саму прерывающую программу, то она должна состоять из трех частей: подготовительной и заключительной, обеспечивающих переключение программ, и собственно прерывающей программы, осуществляющей ту работу, которая была затребована запросом прерывания. [23]
В процессе реализации программы возможны случаи, требующие прерывания ее работы. Обработка таких ситуаций осуществляется блоком супервизора - супервизором прерывания. В таких случаях осуществляется запоминание состояния прерванной программы и переход к подпрограмме, обрабатывающей причину прерывания. Эта подпрограмма уточняет причину прерывания работы, выполняет по мере возможности все действия по ее обработке. Затем прерванная программа продолжает работать. [24]
ЗП) процессор переходит к прерывающей программе Я2 не сразу, так как требуется время / р на анализ запроса и окончание действий по выполняемой команде прерываемой программы Пи называемое временем реакции системы на запрос прерывания. Сразу после ее окончания в течение tB восстанавливается состояние прерванной программы Я и ей передается управление. Сумма времени, затрачиваемого на запоминание состояния прерванной программы Я и на возврат к ней, называют временем обслуживания программы. Время реакции tp и обслуживания t0tg tB характеризуют потери машинного времени на организацию процесса прерывания и быстродействие ЭВМ по обслуживанию запросов прерывания. [25]
![]() |
Временная диаграмма нении разрядной сетки машины, деле-возможного процесса прерывания нии на нуль, появлении запрещенного программы кода операции или несуществующегс. [26] |
На рис. 5.21, а приведена временная диаграмма возможного про цесса прерывания текущей программы. При поступлении запрос; прерывания ( рис. 5.21, б) в ВС происходит окончание действий с пре рываемой программой и передача управления прерывающей программе Время tp - время реакции системы на запрос прерывания. После пере хода к прерывающей программе в течение времени / 3 происходит запо минание состояния прерванной программы, а затем в течение времени /, исполняется прерывающая программа. [27]
Система прерывания обеспечивает временное прекращение выполнения текущей программы при возникновении определенных событий и передает управление программе, специально предусмотренной для данного события. После исполнения прерывающей программы осуществляется выход из нее. Если за это время в ЭВМ не появились запросы прерывания, соответствующие заявкам на выполнение иных более важных работ, то выход из прерывающей программы заключается в восстановлении состояния прерванной программы. [28]
На рис. 8 - 1 приведена упрощенная временная ди - аграмма процесса прерывания. Запрос прерывания вызывает к исполнению соответствующую прерывающую программу немедленно или с некоторой задержкой. До того момента, когда начнет исполняться первая команда прерывающей программы, запрос прерывания должен, как правило, сохраняться в системе, а затем он мо - жет быть погашен. Для этого необходимо запомнить состояние прерванной программы, существующее в момент прерывания. [29]
На рис. 8 - 1 приведена упрощенная временная диаграмма процесса прерывания. Запрос прерывания вызывает к исполнению соответствующую прерывающую программу немедленно или с некоторой задержкой. До того момента, когда начнет исполняться первая команда прерывающей программы, запрос прерывания должен, как правило, сохраняться в системе, а затем он может быть погашен. Для этого необходимо запомнить состояние прерванной программы, существующее в момент прерывания. [30]