Понятие исключительной ситуации (исключения)


Обработка исключений

Число линий прерывания.

Конфликты из-за приоритета

1) Многие внешние устройства и КП полноценно работают - только будучи подключены к линиям прерывания с высоким приоритетом.

 

2) В современных ЭВМ распределение линий прерывания между различными контроллерами гибко, т.е. любому КП может быть назначена любая линия прерывания. Назначение по умолчанию происходит автоматически средствами ОС на этапе загрузки.

 

3) Иногда ОС не удается распределить вектора прерывания между контроллерами так, чтобы все контроллеры получили достаточно высокий приоритет и не мешали работать друг другу. Особенно часто это происходит при наличии большого числа ВУ.

 

4) Если ОС не удается удачно распределить линии прерываний, это может попытаться сделать пользователь вручную, подобрав наилучшее распределение устройств по линиям прерывания.

 

1) Пусть в ЭВМ поддерживается Z линий прерывания. Это означает: число ВУ, которые без проблем могут быть подключены к ЭВМ, ограничено величиной Z

.

2) На самом деле - это число еще меньше, поскольку часть линий прерываний зарезервирована под выполнение внутренних функций ЭВМ. Под так называемые "внутренние прерывания" – сообщения центральному процессору о сбоях в работе аппаратных систем ЭВМ, сбоях – требующих выполнения специфических действий. Мы познакомимся с этим чуть подробнее в разделе 3.17 "Обработка исключений"

 

3) В некоторых случаях при нехватке линий прерываний возможно использование нескольких устройств на одной линии, но в этом случае:

а) увеличивается вероятность конфликтов

б) замедляется обработка прерываний, поскольку в процессе обработки прерываний программе обработки приходиться проводить дополнительный опрос контроллеров с целью проверки, какой именно КП вызвал прерывание

 

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

Число линий прерывания:

1. IBM PC 80-х годов – 8 (5 под внутренние функции)

2. Современный IBM PC – 16

3. ЭВМ класса суперЭВМ, серверы и др. – от 64 до 256

4. Специализированные информационно-управляющие ЭВМ – 1024 и более.

 

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

 

Примеры исключительных ситуаций:

- "переполнение" (основной результат выполнения команды слишком велик, и не может быть записан в отведённое форматом данных место в памяти) ;

Полученный результат так велик, что число не может быть записано в отведенное место памяти ЭВМ.

- деление на 0 (результат выполнения операции математически не определён)

- обнаружены ошибки в аппаратной части

- в некоторых машинах, может быть обнаружена и такая, например, исключительная ситуация как "неправильный формат операндов". Когда, например, команде умножения или деления достаётся на обработку в качестве операнда –числовой код символа. Бессмысленная операция явно появившаяся в программе из за ошибки программиста или ошибки ввода/вывода (неправильный формат введённых данных)

.

3.17.2 Понятие "обработка исключения", и роль процессора в обработке исключений.

 

1) Действия, совершаемые по возникновению "исключительной ситуации" называют "обработка исключения".

 

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

 

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

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

Программы обработки исключений вызываются как динамически вызываемые программы, через вектор ТВП с номером, соответствующим номеру возникшей исключительной ситуации. Алгоритм вызова – подобен алгоритму вызова программ обработки прерываний, рассмотренному в 3.16.6.

( Как упражнение для самостоятельной работы – опишите этот алгоритм, удалив из алгоритма 3.16.6 "лишнее" - те микрооперации, выполнение которых в данном контексте - бессмысленно, и не требуется при вызове "программы обработки исключения".)

 

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