Cтраница 3
Порядок обработки прерываний следующий. Из ОП; переписывается в ОП монитора системная команда, вызвавшая прерывание, и управление передается тем блокам ОС, которые необходимы для выполнения системной команды. В функции блока обработки прерываний входит также организация обмена ОП с внешней памятью. Для этого он выдает соответствующие заказы на обмен блоку организации физических обменов. В том случае, если процесс был прерван из-за команд выдачи информации на АЦПУ или ПФ, осуществляется предварительная обработка команд выдачи и посылка заказов на вывод блоку внешних каналов. Последний обрабатывает прерывания ввода-вывода информации, поступающей с терминалов ( запись в боксы), и управляет выдачей информации из системы. С помощью боксов осуществляется доставка информации от пользователя и обратно либо к ОС, либо к системной программе ( СИСП), обслуживающей заказы пользователей. Блок работы с боксами выполняет системные команды работы с боксами, а также обслуживает заказы на работу с боксами, поступающие от других блоков ОС. Диалог пользователя с ОС или СИСП осуществляет блок обработки сообщений. В его функции входит обработка сигналов входа пользователя в систему, выполнение всех системных команд пользователей, а также обслуживание запросов других блоков ОС, связанных с организацией контакта с пользователями. Блок работы с массивами выполняет системные команды работы с массивами, а также обслуживает запросы на массивы, поступающие от других блоков ОС. Блок работы с ресурсами по системным командам пользователей распределяет ресурсы системы и обслуживает запросы других блоков ОС на выделение ресурсов ВС. [31]
![]() |
Укрупненная функционально-структурная схема некоторой операционной системы. [32] |
Программа обработки прерываний и две ведущие программы ( супервизора и диспетчера) должны находиться в оперативной памяти постоянно и в своей совокупности образуют так называемую резидентную часть операционной системы. [33]
Программы обработки прерываний могут обращаться к информации, содержащейся в старом PSW, для анализа причины, вызвавшей прерывание. Старое PSW содержит так называемый код прерывания и адрес точки программы, в которой произошло прерывание. [34]
Блок обработки прерываний ( входная метка INTERIO) следит за асинхронно возникающими сигналами типа КАНАЛ КОНЧИЛ, УСТРОЙСТВО КОНЧИЛО и в нужные моменты времени устанавливает признаки освобождения того или иного устройства. [35]
Подпрограмма обработки прерывания отвечает за организацию обмена данными между микро - ЭВМ и периферийными устройствами при выдаче последними запроса прерывания. [36]
Модуль обработки прерывания образует в отличие от БСВВ верхний уровень системы и взаимодействует с большинством прикладных программ. Компоненты ( подпрограммы) модуля обеспечивают работу файловой системы, ПУ, обслуживание ситуаций, связанных с завершением программ, их искусственным прерыванием и обработкой ошибок. [37]
Программа обработки прерывания возвращается в прерванную программу с помощью команды RTI Возврат из прерывания. Команда RTI восстанавливает первоначальное значение всех регистров ( включая PC и СС), извлекая их значения из стека. [38]
Программа обработки прерывания получает нужную ей информацию из старого PSW. Последней команден подпрограммы обработки прерывания будет выполнена команда ЗАГРУЗИТЬ PSW, которая либо делает старое PSW текущим, тогда происходит возврат в программу пользователя, либо делает текущим PSW другое специально организованное PSW, определяющее ход дальнейшего функционирования системы. [39]
Программа обработки прерываний вызывается всегда, когда происходит какое-либо прерывание, причиной которого может служить конец временного интервала, работа по вводу-выводу, возникновение ошибки или же обращение из других программ к управляющей программе, запрашивающее выполнение обслуживающей функции. Программа обработки прерываний определяет причину прерывания и действия, которые при этом надо выполнить. Если одновременно поступило несколько прерываний, она устанавливает порядок их обработки. [40]
![]() |
Схема формирования слова состояния программы. [41] |
Программа обработки прерываний заканчивается командой, возвращающей процессор к прерванной программе. Эта команда обеспечивает выборку старого ССП на место текущего ССП и переход к выполнению команды, на которой произошло прерывание, либо к выполнению следующей за ней команды. [42]
Модуль обработки прерываний в отличие от модуля расширения БСВВ, имеющего дело, как и БСВВ, с прерываниями нижнего уровня, взаимодействует с верхним уровнем системы прерываний. Компонентами данного модуля являются программы, обеспечивающие работу файловой системы, устройств ввода-вывода, обслуживание некоторых специальных ситуаций, связанных с завершением программ, их искусственным прерыванием и обработкой ошибок. [43]
Подпрограммы обработки прерывания не должны употреблять операторов ЯМД, отличных от MOVER и DEBUG ( DEBUG CHEAIN также запрещается), так как при этом может измениться текущее состояние, а это может привести к непредсказуемым результатам. [44]
Задача обработки прерывания усложняется, если имеется несколько ПУ, которые требуют обработки по разным программам, а их запросы могут вступать в конфликт и требуют арбитража. Чаще всего для обработки запросов устанавливается система приоритетов. Прием запросов, определение их приоритетов и вызов соответствующей программы обработки осуществляет программируемый контроллер прерываний. [45]