Прерывания по фронту и по уровню
Два способа, которыми линия прерывания подаёт сигнал: изменением (фронт) или устойчивым состоянием (уровень).
Прерывание по фронту срабатывает, когда сигнал переходит с низкого уровня на высокий или наоборот, и после этого забывается. Это подходит кнопкам и счётчикам импульсов, но есть классическая ловушка: два фронта, пришедшие при маскированном прерывании, регистрируются как один, а фронт, пришедший до подтверждения обработчиком, может пропасть совсем. Прерывание по уровню остаётся активным, пока устройство удерживает линию. Ничего не теряется, и одну линию могут делить несколько устройств — потому PCI и выбрала уровни.
Цена уровней в том, что обработчик обязан заставить источник замолчать до выхода, иначе то же прерывание тут же сработает снова, и процессору будет не до другого. Linux epoll позаимствовал оба термина для циклов событий — вместе с ловушками.