Опрос (информатика)
Эта статья нуждается в дополнительных цитатах для проверки . ( январь 2015 г. ) |
Опрос или опрос относится к активной выборке состояния внешнего устройства клиентской программой как синхронному действию. Опрос чаще всего используется с точки зрения ввода-вывода ( I/O ), а также называется по опросу вводом-выводом или программным вводом -выводом . Хорошим примером аппаратной реализации является сторожевой таймер .
Описание
[ редактировать ]Опрос — это процесс, при котором компьютер или управляющее устройство ожидает, пока внешнее устройство проверит его готовность или состояние, часто с использованием оборудования низкого уровня. Например, когда принтер подключен через параллельный порт, компьютер ждет, пока принтер не получит следующий символ. Эти процессы могут быть такими же минутными, как чтение одного бита . Иногда это используется как синоним опроса « занято-ожидание ». В этой ситуации, когда требуется операция ввода-вывода , компьютер не делает ничего, кроме проверки состояния устройства ввода-вывода до тех пор, пока оно не будет готово, после чего к устройству осуществляется доступ. Другими словами, компьютер ждет, пока устройство будет готово. Опрос также относится к ситуации, когда устройство неоднократно проверяется на готовность, а если это не так, компьютер возвращается к другой задаче. Хотя это не так расточительно по отношению к циклам ЦП , как ожидание занятости, в целом это не так эффективно, как альтернатива опросу и вводу выводу , управляемому - прерываниями .
В простой одноцелевой системе даже ожидание занятости вполне уместно, если никакие действия невозможны до доступа к вводу-выводу , но чаще всего это традиционно является следствием простого аппаратного обеспечения или немногозадачных операционных систем .
Опрос часто тесно связан с оборудованием очень низкого уровня . Например, опрос параллельного порта принтера, чтобы проверить, готов ли он к приему другого символа, требует проверки всего лишь бита байта одного . На момент считывания этот бит показывает, находится ли один провод кабеля принтера под низким или высоким напряжением. Инструкция ввода-вывода, считывающая этот байт, напрямую передает состояние напряжения восьми реальных проводов восьми схемам ( триггерам ), которые составляют один байт регистра ЦП.
Недостаток опроса состоит в том, что если необходимо проверить слишком много устройств, время, необходимое для их опроса, может превысить время, доступное для обслуживания устройства ввода-вывода.
Алгоритм
[ редактировать ]Опрос можно описать следующими этапами:
Действия хоста:
- Хост неоднократно считывает бит занятости контроллера, пока он не очистится (со значением 0).
- Если этот параметр сброшен, хост записывает команду в командный регистр . Если хост отправляет выходные данные, он устанавливает бит записи и записывает байт в регистр вывода данных. Если хост получает входные данные, он считывает записанные контроллером данные из регистра ввода данных и устанавливает бит чтения в 0 в качестве следующей команды.
- Хост устанавливает бит готовности к команде в 1.
Действия контроллера:
- Когда контроллер замечает, что установлен бит готовности к команде, он устанавливает бит занятости в 1.
- Контроллер считывает регистр команд. Если внутренний бит записи установлен, он считывает данные из регистра вывода и выполняет необходимые операции ввода-вывода на устройстве. Если бит чтения установлен, данные из устройства загружаются в регистр ввода данных для чтения хостом.
- После завершения операций контроллер очищает бит готовности команды, очищает бит ошибки, чтобы показать, что операция прошла успешно, и очищает бит занятости.
Типы
[ редактировать ]Цикл опроса — это время, в течение которого каждый элемент контролируется один раз. Оптимальный цикл опроса будет варьироваться в зависимости от нескольких факторов, включая желаемую скорость ответа и накладные расходы (например, время процессора и полосу пропускания ) на опрос.
При поименном опросе опрашивающее устройство или процесс запрашивает каждый элемент списка в фиксированной последовательности. Поскольку он ожидает ответа от каждого элемента, необходим механизм синхронизации для предотвращения зависаний, вызванных неотвечающими элементами. Поименный опрос может быть неэффективным, если накладные расходы на сообщения опроса высоки, в каждом цикле опроса необходимо опрашивать множество элементов и только несколько элементов активны.
При опросе концентратора , также называемом опросом токенов, каждый элемент опрашивает следующий элемент в некоторой фиксированной последовательности. Это продолжается до тех пор, пока не будет достигнут первый элемент, после чего цикл опроса начинается заново.
Опрос может использоваться в различных вычислительных контекстах для управления последовательностью выполнения или передачи задействованных элементов. Например, в многозадачных операционных системах опрос может использоваться для распределения процессорного времени и других ресурсов между различными конкурирующими процессами.
В сетях опрос используется для определения того, какие узлы хотят получить доступ к сети. Он также используется протоколами маршрутизации для получения информации о маршрутизации, как в случае с EGP ( протокол внешнего шлюза ).
Альтернативой опросу является использование прерываний , которые представляют собой сигналы, генерируемые устройствами или процессами, чтобы указать, что они требуют внимания, хотят общаться и т. д. Хотя опрос может быть очень простым, во многих ситуациях (например, в многозадачных операционных системах) он более эффективно использовать прерывания, поскольку это может снизить загрузку процессора и/или потребление полосы пропускания.
Сообщение опроса
[ редактировать ]Сообщение опроса представляет собой сообщение подтверждения управления.
В схеме с многоабонентской линией (центральный компьютер и различные терминалы, в которых терминалы используют одну линию связи с компьютером) система использует схему опроса главный/подчиненный , при которой центральный компьютер отправляет сообщение (называемое сообщением опроса) на конкретный терминал на исходящей линии. Все терминалы прослушивают исходящую линию, но только опрашиваемый терминал отвечает, отправляя любую информацию, готовую к передаче, по входящей линии. [1]
В звездообразных сетях , которые в своей простейшей форме состоят из одного центрального коммутатора , концентратора или компьютера, который действует как канал для передачи сообщений, опрос не требуется, чтобы избежать хаоса на линиях, но он часто используется, чтобы позволить ведущему для получения информации в упорядоченном виде. Эти сообщения опроса отличаются от сообщений в случае многоточечных линий, поскольку здесь не требуются адреса сайтов, и каждый терминал получает только те опросы, которые ему адресованы. [1]
См. также
[ редактировать ]- Абстракция (информатика)
- Асинхронный ввод-вывод
- Немного стук
- Бесконечный цикл
- Запрос прерывания (архитектура ПК)
- Целое число (информатика)
- очередь
- Технология вытягивания
- выбрать (Unix)
- Сигнал (МПК)
Ссылки
[ редактировать ]- ^ Jump up to: а б «Многоточечный опрос» . Передача данных RAD/подача импульсов. 2007. Архивировано из оригинала 17 февраля 2014 г. Проверено 13 июля 2014 г.