Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
up_sitd2 (1).doc
Скачиваний:
9
Добавлен:
01.05.2025
Размер:
2.81 Mб
Скачать

13.2 Особенности организации системы прерываний программ в пк

Важнейшая роль в реализации сложных режимов работы лежит на системе пре­рывания программ.

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

Видов (номеров) прерывания в ПК может быть всего 256, и, соответственно, векторов прерывания (адресов CS:IP программ обработки прерываний) в ОП может находиться до 256.

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

Модуль обработки прерываний DOS обслуживает в основном планируемые прерывания, в том числе и прерывания системы ввода-вывода. Прерывания DOS час­то называют прерываниями верхнего уровня, так как, с одной стороны, в этих пре­рываниях меньше учитываются технические особенности элементов ПК, с другой стороны, при обработке этих прерываний часто имеют место обращения к про­граммам прерываний системы BIOS. Большинство прерываний BIOS имеют близ­кие аналоги среди прерываний DOS.

Использование прерываний BIOS позволяет, как правило, более детализировано выполнить обращения к различным системным ресурсам ПК, к элементам информационных структур и их атрибутам. Однако прерывания DOS более просты в использовании при программировании. Поэтому начинаю­щим программистам можно рекомендовать использование прерываний DOS, осо­бенно расширенных функций DOS для работы с файлами.

Для приема внешних прерываний имеются порты двух типов: NMI (None Masked Interrupt) - для приема немаскируемых прерываний и INTR (Interrupt) - для при­ема прочих прерываний (INTR обычно используется для подсоединения контрол­лера прерываний). Если запрос на прерывание поступает по входу NMI, то преры­вание не маскируется (имеет абсолютный приоритет) и сразу выполняется; по входу INTR прерывание разрешается, если в регистре флагов МПП флаг IF = 1.

Всего предусмотрено 256 типов (0-255) прерываний. Из них только первые 5 же­стко закреплены в МП, остальные используются системами BIOS и DOS.

- тип 0 - прерывание возникает при делении на 0 или если частное от деления переполняет разрядную сетку МП;

- тип 1 - в режиме «трассировка» (при TF =1) после выполнения каждой команды программы происходит останов;

- тип 2 - немаскируемое техническое прерывание;

- тип 3 - прерывание по команде INT, включенной в программу: останов и ото­бражение содержимого регистров МПП;

- тип 4 - прерывание по команде INTO, включенной в программу, но только если при выполнении предыдущей команды произошло переполнение разряд­ной сетки;

- типы 8-15 - аппаратные прерывания, инициируемые внешними -устройства­ми, поступают на входы IRQ0-IRQ7 контроллера прерываний (вход IRQ0 име­ет высший приоритет, и прерывание, поступившее по этому входу, обрабатыва­ется первым; всего уровней приоритета 8 и вход IRQ7 имеет низший приоритет);

- типы 16-31 - планируемые программные прерывания BIOS;

- типы 32-255 - программные прерывания DOS (жестко задействовано около 10, а вообще в разных версиях DOS их разное количество).

Рисунок 7.4 Организация приема запросов на прерывания

Прерывания с 0 по 31 и прерывание 64 относятся к прерываниям нижнего уровня, обслуживаемым BIOS; прерывания, начиная с 32 - прерывания верхнего уровня (за исключением прерывания 64); причем прерывание 33 (21Н) - это комплекс­ное, чаще всего используемое в программах пользователя прерывание, имеющее около 100 разновидностей (служебных функций DOS).

В некоторых типах прерываний BIOS и DOS имеется много разновидностей, иногда более 10. Так, прерывание 10 (АН) имеет 15 разновидностей, прерывание 33 (21Н) - около 100 разновидностей: в DOS 1.0 - 47, в DOS 2.0 - 88, в DOS 3.0 и выше -99 разновидностей (вид работы в рамках каждого прерывания определяется со­держимым регистра АН).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]