Недостатки прерываний

Основные недостатки прерываний связаны со случайным характером их возникновения, и хотя именно ro этой причине аппарат прерываний оказывается столь полезным, случайный характер возникновения прерываний приводит к затруднениям при отладке и тестировании программ. Концепция прерываний находится в противоречии с современной тенденцией к созданию более простых и строго определенных программ — стенденцией, отраженной в «структурном программировании» и методе проектирования программ «сверху вниз».

На практике оказывается, что программы, в которых предусмотрено управление с помощью сигналов прерывания, имеют гораздо менее четкую структуру, чем программы, в которых много явных команд передачи управления. В программах, управляемых по сигналам прерывания, передача управления может - возни кнут в любой точке, однако это не йаходит отражения в листинге программы. На рис. 9.5 показана cffyytffypa программы и возможные пути передачи управления (пунктирные линии). Очевидно, что возможность возникновения ошибок программирования здесь очень велика.

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

Программы обработки прерываний часто бывает очень сложно написать, так как они должны давать правильные результаты независимо от того, когда возникает прерывание. Может оказаться необходимым, чтобы эти процедуры сохраняли содержимое регистров, значения признаков и адреса памяти, а перед возвратом управления восстанавливали эти значения. Чтобы удовлетворить всем возможным требованиям, потребуется, возможно, значительное число команд, которые, однако, будут выполняться только в редких случаях.

Для систем, использующих прерывания, требуется также дополнительное аппаратное обеспечение, особенно когда прерывания могут вызываться многими источниками. Обычные аппаратные средства включают в себя фиксаторы и триггеры, которые гарантируют правильное опознание сигналов прерывания; логические схемы «и шифраторы, с помощью которых комбинируются сигналы прерывания от различных источников; порты данных, с помощью которых идентифицируются различные источники прерываний. Количество аппаратуры возрастает с ростом числа источников прерываний, что является следствием необходимости быстрого определения источника.

Менее полезны прерывания при высоких скоростях ввода-пывола данных. Это объясняется тем, что для организации обработки прерываний необходим обмен данными через ЦП, нужна выборка и декодирование соответствующих команд. Кроме того, система прерываний требует дополнительных накладных расходов. Преимущества прерываний при высоких скоростях обмена данными становятся менее ощутимыми, по-линг — менее эффективным, а временные интервалы оказывается проще генерировать непосредственно с помощью генератора тактовых импульсов процессора. При скоростях обмена данными, превышающих 10 Кбит/с, возникает проблема совмещения функций процессора по организации ввода-вывода с выполнением другой работы. Метод прямого доступа к памяти (при котором программное управление обменом заменяется аппаратным и обеспечивается прямая связь между памятью и модулями ввода-вывода) позволяет резко увеличить пропускную способность ввода-вывода. Этот метод применяется при более высоких скоростях обмена. Системы, в которых применяется ПДП, содержат сложное оборудование. Эти системы кратко рассмотрены в конце главы.

 



Сэтл сити квартал.