Sondeo , u operación de sondeo , en informática , se refiere al muestreo activo del estado de un dispositivo externo por parte de un programa cliente como una actividad sincrónica. Polling se utiliza más a menudo en términos de entrada / salida ( I / O ), y también se conoce como encuestados I / O o software guiado por I / O .
Descripción
El sondeo es el proceso en el que la computadora o el dispositivo de control espera a que un dispositivo externo verifique su disponibilidad o estado, a menudo con hardware de bajo nivel. Por ejemplo, cuando una impresora está conectada a través de un puerto paralelo, la computadora espera hasta que la impresora haya recibido el siguiente carácter. Estos procesos pueden ser tan minuciosos como solo leer un bit . Esto a veces se usa como sinónimo de sondeo ' ocupado-espera '. En esta situación, cuando se requiere una operación de E / S , la computadora no hace nada más que verificar el estado del dispositivo de E / S hasta que esté listo, momento en el que se accede al dispositivo. En otras palabras, la computadora espera hasta que el dispositivo esté listo. El sondeo también se refiere a la situación en la que se comprueba repetidamente que un dispositivo está listo y, si no lo está, la computadora vuelve a una tarea diferente. Aunque no es un desperdicio de ciclos de CPU como una espera ocupada, generalmente no es tan eficiente como la alternativa al sondeo, E / S impulsadas por interrupciones .
En un sistema simple de un solo propósito, incluso la espera ocupada es perfectamente apropiada si no es posible realizar ninguna acción hasta el acceso de E / S , pero la mayoría de las veces esto era tradicionalmente una consecuencia de un hardware simple o de sistemas operativos sin multitarea .
El sondeo suele estar íntimamente relacionado con hardware de muy bajo nivel . Por ejemplo, sondear un puerto de impresora paralelo para comprobar si está listo para otro carácter implica examinar tan solo un bit de un byte . Ese bit representa, en el momento de la lectura, si un solo hilo en el cable de la impresora está a bajo o alto voltaje. La instrucción de E / S que lee este byte transfiere directamente el estado de voltaje de ocho cables del mundo real a los ocho circuitos ( flip flops ) que componen un byte de un registro de CPU.
El sondeo tiene la desventaja de que si hay demasiados dispositivos para verificar, el tiempo requerido para sondearlos puede exceder el tiempo disponible para dar servicio al dispositivo de E / S.
Algoritmo
El sondeo se puede describir en los siguientes pasos:
Acciones del anfitrión:
- El host lee repetidamente el bit de ocupado del controlador hasta que se aclara (con un valor de 0).
- Cuando está limpio, el host escribe el comando en el registro de comandos . Si el host está enviando salida, establece el bit de escritura y escribe un byte en el registro de salida de datos. Si el host está recibiendo entrada, lee los datos escritos por el controlador desde el registro de entrada de datos y establece el bit de lectura en 0 como el siguiente comando.
- El host establece el bit de comando listo en 1.
Acciones del controlador:
- Cuando el controlador nota que el bit de comando listo está establecido, establece el bit de ocupado en 1.
- El controlador lee el registro de comandos. Si el bit de escritura interno está establecido, lee desde el registro de salida de datos y realiza las operaciones de E / S necesarias en el dispositivo. Si se establece el bit de lectura, los datos del dispositivo se cargan en el registro de entrada de datos para que los lea el host.
- Una vez finalizadas las operaciones, el controlador borra el bit de comando listo, borra el bit de error para mostrar que la operación fue exitosa y borra el bit de ocupado.
Tipos
Un ciclo de sondeo es el tiempo en el que cada elemento es monitoreado una vez. El ciclo de sondeo óptimo variará según varios factores, incluida la velocidad de respuesta deseada y la sobrecarga (por ejemplo, tiempo de procesador y ancho de banda ) del sondeo.
En la votación nominal , el dispositivo o proceso de votación consulta cada elemento de una lista en una secuencia fija. Debido a que espera una respuesta de cada elemento, es necesario un mecanismo de temporización para evitar bloqueos causados por elementos que no responden. El sondeo de votación nominal puede ser ineficaz si la sobrecarga de los mensajes de sondeo es alta, hay numerosos elementos que se deben sondear en cada ciclo de sondeo y solo unos pocos elementos están activos.
En el sondeo de concentradores , también conocido como sondeo de token, cada elemento sondea el siguiente elemento en una secuencia fija. Esto continúa hasta que se alcanza el primer elemento, momento en el que el ciclo de sondeo comienza de nuevo.
El sondeo se puede emplear en varios contextos informáticos para controlar la ejecución o secuencia de transmisión de los elementos involucrados. Por ejemplo, en sistemas operativos multitarea, el sondeo se puede utilizar para asignar tiempo de procesador y otros recursos a los diversos procesos en competencia.
En las redes, el sondeo se utiliza para determinar qué nodos quieren acceder a la red. También lo utilizan los protocolos de enrutamiento para recuperar información de enrutamiento, como es el caso de EGP ( protocolo de puerta de enlace exterior ).
Una alternativa al sondeo es el uso de interrupciones , que son señales generadas por dispositivos o procesos para indicar que necesitan atención, quieren comunicarse, etc. Aunque el sondeo puede ser muy simple, en muchas situaciones (por ejemplo, sistemas operativos multitarea) es Es más eficiente usar interrupciones porque puede reducir el uso del procesador y / o el consumo de ancho de banda.
Mensaje de encuesta
Un mensaje de encuesta es un mensaje de reconocimiento de control.
En una disposición de línea multipunto (una computadora central y diferentes terminales en los que los terminales comparten una única línea de comunicación hacia y desde la computadora), el sistema utiliza una disposición de sondeo maestro / esclavo mediante el cual la computadora central envía un mensaje (llamado mensaje de sondeo) a un terminal específico en la línea saliente. Todos los terminales escuchan la línea saliente, pero solo el terminal que es sondeado responde enviando cualquier información que tenga lista para transmitir en la línea entrante. [1]
En las redes en estrella , que, en su forma más simple, constan de un conmutador central , concentrador o computadora que actúa como conducto para transmitir mensajes, no se requiere sondeo para evitar el caos en las líneas, pero a menudo se usa para permitir que el maestro para adquirir información de forma ordenada. Estos mensajes de sondeo difieren de los del caso de líneas multipunto porque no se necesitan direcciones de sitio y cada terminal solo recibe los sondeos que se dirigen a él. [1]
Ver también
Referencias
- ^ a b "Sondeo multipunto" . Comunicaciones de datos RAD / Suministro de pulsos. 2007. Archivado desde el original el 17 de febrero de 2014 . Consultado el 13 de julio de 2014 .