Операционная система MS-DOS
© Александр Фролов, Григорий Фролов
Том 1, книги 1-2, М.: Диалог-МИФИ, 1991.
Часто при выполнении критических участков
программ, для того чтобы гарантировать
выполнение определенной последовательности
команд целиком, приходится запрещать прерывания.
Это можно сделать командой CLI. Ее нужно поместить
в начало критической последовательности команд,
а в конце расположить команду STI, разрешающую
процессору воспринимать прерывания. Команда CLI
запрещает только маскируемые прерывания,
немаскируемые всегда обрабатываются
процессором.
Если вы используете запрет прерываний с
помощью команды CLI, следите за тем, чтобы
прерывания не отключались на длительный период
времени, так как это может привести к
нежелательным последствиям. Например, будут
отставать часы.
Если вам надо запретить не все прерывания, а
только некоторые, например, от клавиатуры, то для
этого надо воспользоваться услугами контроллера
прерываний. Подробно об этом немного ниже, сейчас
отметим только, что выдачей в этот контроллер
определенной управляющей информации можно
замаскировать прерывания от отдельных
устройств.
|