Операционные системы супер-ЭВМ

Обработка исключительных ситуаций в ОС ОМ


Исключительной ситуацией в ОС ОМ называется возникновение во время выполнения программы такой ситуации, в результате которой дальнейшее выполнение программы либо невозможно, либо требуется специальная реакция программы на эту ситуацию.

Исключительные ситуации разбиты на группы. К нулевой груп­пе относятся исключительные ситуации, определяемые аппаратурой. Это могут быть: ошибка памяти, передача управления за адресное пространство задачи, попытка обратиться за операндами вне адресного пространства задачи и т.д. Возникновение этих исклю­чительных ситуаций приводит к прерываниям в задаче, т.е. к прекращению выполнения программы и передаче управления ядру ОС. К аппаратным исключительным ситуациям примыкает и исчерпание времени, заказанного для выполнения задания.

Следующие 31 группа ( с 1 по 31 ) относятся к ошибочным ситуациям, возникающим при некорректной работе с различными компонентами ОС, работающими в пространстве задачи пользователя и вне его (кластеры, системные задачи).

Последние 32 группы (с 32 по 63) - исключительные ситуа­ции, объявляемые при работе пользовательских программ.

В каждой группе исключительные ситуации имеют внутреннюю (для группы) нумерацию. В последних 32 группах (пользователь­ских) пользователь сам определяет нумерацию.

В задаче можно определить подпрограмму, в которой будут обрабатываться исключительные ситуации. Если такая подпрограмма определена, то при возникновении исключительной ситуации на нее будет передано управление и сообщено о характере ошибки. Опре­деление подпрограммы, реагирующей на исключительные ситуации, называется установкой уровня реакции. Этому соответствует при­митив управления исключительными ситуациями. Одной такой уста­новкой уровня реакции можно определить реакцию на совокупность групп исключительных ситуаций.

Существует обратная операция: снятие уровня реакции. Этой операции также соответствует примитив управления исключительны­ми ситуациями. После обращения к этому примитиву заданная в установке уровня реакции процедура обработки исключительных ситуаций перестает реагировать на исключительные ситуации.


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

На самом нижнем уровне находится подпрограмма ОС, которая устанавливает реакцию на все группы исключительных ситуаций.

В подпрограмме, перехватившей исключительную ситуацию, можно организовать три типа обработки исключительных ситуаций:

1) После обработки исключительной ситуации в подпрограмме не продолжать прерванную программу.

2) После обработки исключительной ситуации можно продол­жить выполнение прерванной программы либо с предопределенной точки, либо с точки возврата из подпрограммы, сгенерировавшей данную ситуацию.

3) В зависимости от какого-либо условия в подпрограмме обработки исключительных ситуаций можно пойти либо по первому пути, либо по второму.

В подпрограмме обработки исключительных ситуаций можно выдать стандартную диагностику ОС по данной исключительной ситуации в стандартный файл выдачи.

Для генерации исключительной ситуации у другой задачи существует примитив "Послать плохой ответ" (смотри "Примитивы сообщений в ОС ОМ").


Содержание раздела