Опрос (информатика) - Polling (computer science)

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

Описание

Опрос - это процесс, при котором компьютер или управляющее устройство ожидает, пока внешнее устройство проверит его готовность или состояние, часто с помощью низкоуровневого оборудования. Например, когда принтер подключен через параллельный порт, компьютер ждет, пока принтер не получит следующий символ. Эти процессы могут быть такими же незначительными, как считывание одного бита . Иногда это используется как синоним опроса « занято-ожидание ». В этой ситуации, когда требуется операция ввода-вывода , компьютер не делает ничего, кроме проверки состояния устройства ввода-вывода, пока оно не будет готово, после чего к устройству будет осуществлен доступ. Другими словами, компьютер ждет, пока устройство не будет готово. Опрос также относится к ситуации, когда устройство неоднократно проверяется на готовность, и если это не так, компьютер возвращается к другой задаче. Хотя не столь расточительны CPU циклов , как активное ожидание, это , как правило , не так эффективно , как альтернатива опроса, прерываний управляемого общества ввода / вывода .

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

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

Недостаток опроса состоит в том, что при слишком большом количестве устройств для проверки время, необходимое для их опроса, может превышать время, доступное для обслуживания устройства ввода-вывода.

Алгоритм

Опрос можно описать следующими шагами:

Действия хоста:

  1. Хост постоянно считывает бит занятости контроллера, пока он не станет очищенным (со значением 0).
  2. Когда он снят, хост записывает команду в регистр команд . Если хост отправляет вывод, он устанавливает бит записи и записывает байт в регистр вывода данных. Если хост получает ввод, он считывает записанные контроллером данные из регистра ввода данных и устанавливает бит чтения в 0 в качестве следующей команды.
  3. Хост устанавливает бит готовности команды в 1.

Действия контроллера:

  1. Когда контроллер замечает, что бит готовности команды установлен, он устанавливает бит занятости в 1.
  2. Контроллер читает регистр команд. Если бит записи внутри установлен, он читает из регистра вывода данных и выполняет необходимые операции ввода-вывода на устройстве. Если бит чтения установлен, данные с устройства загружаются в регистр ввода данных для чтения хостом.
  3. После завершения операций контроллер сбрасывает бит готовности команды, сбрасывает бит ошибки, чтобы показать, что операция прошла успешно, и сбрасывает бит занятости.

Типы

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

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

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

Опрос может использоваться в различных вычислительных контекстах для управления выполнением или последовательностью передачи задействованных элементов. Например, в многозадачных операционных системах опрос может использоваться для выделения процессорного времени и других ресурсов различным конкурирующим процессам.

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

Альтернативой опросу является использование прерываний , которые представляют собой сигналы, генерируемые устройствами или процессами, чтобы указать, что они нуждаются во внимании, хотят общаться и т. Д. Хотя опрос может быть очень простым, во многих ситуациях (например, в многозадачных операционных системах) он бывает более эффективно использовать прерывания, поскольку это может снизить использование процессора и / или потребление полосы пропускания.

Сообщение опроса

Сообщение опроса является управляющим сообщением-подтверждения.

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

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

Смотрите также

Ссылки