Инициирование обмена

Инициатором обмена может выступать как программа, так и периферийное устройство. Рассмотрим основные способы, инициирующие начало обмена данными.

Обмен по опросу готовности. Инициатором обмена является программа, которая ожидает какого-либо события в устройстве, подтверждающего его готовность к обмену. Таким событием может быть установка в единичное состояние бита готовности, хранящегося в регистре состояния периферийного устройства. В ожидании события процессор периодически считывает значение бита готовности из регистра состояния. При активном опросе время реакции на событие может быть сведено до долей микросекунды. Однако процессор загружен бесполезной работой.

Обмен по аппаратным прерываниям. Инициатором обмена является устройство, которое вырабатывает запрос на прерывание, требующий взаимодействия с программой. При поступлении запроса программные обработчики аппаратных прерываний выполняют операцию блочного обмена или одиночную пересылку данных. Время реакции на запрос прерывания зависит от множества факторов, в том числе и от режима работы процессора. В защищенном режиме прерывания выполняются с автоматическим сохранением содержимого некоторых регистров (контекста) процессора в стеке и переключением задач. Эти действия занимают какое-то время (десятки микросекунд). В реальном режиме процессора не требуется сохранения контекста, поэтому ответ на прерывание может быть получен за единицы (и даже доли) микросекунд.

Обмен с использованием полинга (Р oiling – опрос). Это комбинированный способ инициирования обмена, при котором производится опрос готовности ряда устройств по периодическим прерываниям, например от системного таймера. Устройство, для которого обнаружена готовность к обмену, обслуживается. Неготовое к обмену устройство пропускается до следующего прерывания. При этом способе процессор может заниматься другими задачами, так как не выполняет многочисленных и, возможно, бесполезных циклов опроса готовности. Однако полинг не снимает временных затрат на обслуживание прерываний, а максимальное время реакции на событие не может быть меньшим, чем период прерываний от таймера. Полинг использует утилита (обслуживающая программа) фоновой печати PRINT. Она не выполняет аппаратное прерывание от LPT-порта, а работает по таймеру.

Активное использование прерываний характерно лишь для многозадачных операционных систем.

 
< Пред   СОДЕРЖАНИЕ     След >