Cтраница 3
В состав дополнительной информации о прерванной программе входит содержимое арифметических регистров ( аккумуляторов), индексных регистров и других программно-доступных регистров, общих для всех программ. Запоминание всей этой информации может привести к значительному возрастанию времени обслуживания прерывания. В то же время многие прерывающие программы фактически используют ( и, следовательно, портят) только часть из указанных регистров. Поэтому обычно сохранение дополнительной информации достигается программными методами. При этом на программиста возлагается забота о сохранении только тех регистров, которые действительно портятся его программой. [31]
Условие, позволяющее возобновить выполнение аварийно прерванной программы. [32]
![]() |
Структура области сохранения. [33] |
При возникновении прерывания СУПЕРВИЗОР запоминает состояние прерванной программы: содержимое всех регистров, слово состояния прерванной программы ( старое PSW), имя этой программы и другую информацию: Запоминание производится в так называемой области сохранения, которая для фонового раздела находится в области памяти, выделенной СУПЕРВИЗОРУ, а для других разделов в начале их участков памяти. [34]
При возникновении причины прерывания запоминается состояние прерванной программы, в частности состояние всех операционных регистров машины, и осуществляется переход к выполнению подпрограммы, обрабатывающей причину прерывания. При этом уточняется причина прерывания и выполняются все необходимые действия по ее обработке. После обработки прерывания, если это устранимый сбой или экстренное задание, продолжается выполнение прерванной программы. [35]
После обработки прерывания управление либо возвращается прерванной программе, либо передается другой программе. Если управление возвращается прерванной программе, то соответствующее старое PSW возвращается в регистр PSW п становится текущим. Восстановление старого PSW осуществляется с помощью привилегированной команды LPSW ( Load PSW - загрузка PSW), которую выполняет обработчик прерываний. [36]
![]() |
Среднестатистические данные о характеристиках управляющих ЭВМ. [37] |
Одновременно запоминается содержимое счетчика программ с адресом прерванной программы и содержимое регистров в арифметическом устройстве. [38]
После установления типа прерывания и запоминания состояния прерванной программы управление передается определенной подпрограмме СУПЕРВИЗОРА, которая производит обработку этого прерывания. Обработка заключается в уточнении причины прерывания и выполнении определенных действий. После обработки прерывания СУПЕРВИЗОР определяет программу, которая может быть запущена, и передает ей управление. [39]
После проведения работ, позволяющих возобновить выполнение прерванной программы, FLIH определяет, что именно требуется сделать в данной ситуации и запускает нужный процесс. [40]
На рис. 6.12 управление не возвращается в прерванную программу до обнаружения отпущенной клавиши. [41]
При возникновении прерывания вычислительная машина запоминает слово состояния прерванной программы в постоянно фиксированной области основной памяти и передает управление Супервизору. Он производит анализ прерывания и определяет часть управляющей программы, которая его обрабатывает. Если во время обработки прерывания не должно произойти прерывание, управление передается РЗ программам. [42]
По окончании работы программы обработки прерываний управление возвращается прерванной программе по адресу, запомненному в старом ССП, предварительно восстанавливается содержимое регистров связи, также хранящееся в таблице. Содержимое остальных регистров в процессе обработки запоминается в Области сохранения. [43]
![]() |
Прерывание при использовании ССП. [44] |
В конце выполнения прерывающей программы для перехода к прерванной программе старое ССП записывается в качестве текущего. [45]