Cтраница 4
Когда управление передается программе выхода, регистр 1 содержит адрес элемента PIE, и, следовательно, программа - обработчик прерываний, которой передано управление, может определить тип прерывания, используя код прерывания из старого PSW, находящегося в этом элементе, н адрес команды, на которой произошло прерывание. [46]
Когда диск завершает операцию, аппаратура инициирует прерывание. Обработчик прерываний запускается, чтобы определить, что случилось, то есть какое устройство требует внимания. Затем он извлекает статус устройства и активизирует спящий процесс, чтобы завершить запрос ввода-вывода и предоставить пользовательскому процессу возможность продолжать. [47]
По сигналу прерывания запускается обработчик, являющийся частью операционной системы. Обработчик прерывания выполняет операции, завершающие обмен. [48]
Тогда внешний обработчик страниц считывает нужную страницу с диска и копирует ее в часть его собственного адресного пространства. Затем он говорит обработчику прерываний, где находится страница. Обработчик прерываний убирает отображение страницы из адресного пространства внешнего обработчика страниц и просит драйвер MMU поместить ее в нужное место в пользовательском адресном пространстве. [49]
В этой главе все эти средства собраны воедино. В ней рассматривается несколько обработчиков прерываний. Но вначале нам потребуется рассказать о пропущенном ингредиенте: процедуре IOTRANSFER, которая связывает сопрограмму с определенным прерыванием. [50]
Соответствующая аппаратная часть системы прерываний должна в такой ситуации обеспечивать непосредственный переход на нужный уровень при фиксации прерывания. Это позволяет обойтись без единого обработчика прерываний уровня 1 ( FLIH-first-level interrupt handler), который в противном случае должен существовать на некотором уровне иерархии. Обработчиком прерываний уровня 1 называется программа, немедленно получающая управление при всех прерываниях. Если отнести эту программу к уровню 0, то придется разрешить ей обращаться к более высокому уровню СОЗДАНИЕ ПРОЦЕССОВ, поскольку для обработки большинства прерываний требуется запуск специальных процессов обработки. [51]
Сопрограммы представляют собой встроенное в Модулу-2 средство. С их помощью можно писать обработчики прерываний, системы поддержки времени выполнения, управляемые прерываниями программы и даже целые операционные системы. Сопрограммы - примитив, который позволяет справляться с ситуациями, когда несколько действий происходят ( или могут происходить, или удобно считать, что происходят) одновременно. [52]
Одним из параметров макрокоманд, позволяющих войти в Планировщик каналов, является адрес ТОФ. Управление программе Первоначальный анализ передает обработчик SVC прерываний. [53]