Существует множество ситуаций, когда процессор должен игнорировать за­просы прерываний. Например, в программе, выполняющей вычисления и печать (рис. 7.5), прерывания от принтера должны обрабатываться только в том случае, если имеются подготовленные к печати выходные строки. После печати n строк прерывания должны быть запрещены до тех пор, пока не будет готов следующий набор строк. В другой ситуации, возможно, понадобится дать гарантию того, что заданная последовательность команд будет выполнена до конца без прерываний, поскольку программа обработки прерываний может изменить используемые эти­ми командами данные. Следовательно, в распоряжении программиста должны быть средства как для разрешения прерываний, так и для их запрета. Проще всего для этих целей иметь специальные машинные команды.

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


<< назад вперед >>