Encuestas (informática)

Proceso de muestreo del estado del dispositivo

El sondeo o interrogación se refiere al muestreo activo del estado de un dispositivo externo por parte de un programa cliente como una actividad sincrónica. El sondeo se utiliza con mayor frecuencia en términos de entrada/salida ( E/S ), y también se lo conoce como E/S sondeada o E/S controlada por software . Un buen ejemplo de implementación de hardware es un temporizador de vigilancia .

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 preparación o estado, a menudo con hardware de bajo nivel. Por ejemplo, cuando se conecta una impresora 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 leer solo un bit . Esto a veces se usa como sinónimo de sondeo de " espera ocupada ". 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 verifica repetidamente la preparación de un dispositivo y, si no lo está, la computadora vuelve a una tarea diferente. Aunque no desperdicia tantos ciclos de CPU como la espera ocupada, generalmente no es tan eficiente como la alternativa al sondeo, la E/S controlada por interrupciones .

En un sistema simple de propósito único, incluso la espera activa es perfectamente apropiada si no es posible realizar ninguna acción hasta el acceso de E/S , pero en la mayoría de los casos esto era tradicionalmente una consecuencia de hardware simple o de sistemas operativos no multitarea .

El sondeo suele estar íntimamente relacionado con el 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 cable del cable de la impresora tiene un voltaje bajo o alto. 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 forman un byte de un registro de CPU.

El sondeo tiene la desventaja de que, si hay demasiados dispositivos para verificar, el tiempo necesario para sondearlos puede superar 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:

  1. El host lee repetidamente el bit ocupado del controlador hasta que quede libre (con un valor de 0).
  2. Cuando está claro, el host escribe el comando en el registro de comandos . Si el host está enviando una salida, establece el bit de escritura y escribe un byte en el registro de salida de datos. Si el host está recibiendo una 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.
  3. El host establece el bit de comando listo en 1.

Acciones del controlador:

  1. Cuando el controlador detecta que el bit de comando listo está configurado, establece el bit de ocupado en 1.
  2. El controlador lee el registro de comandos. Si el bit de escritura interno está configurado, lee desde el registro de salida de datos y realiza las operaciones de E/S necesarias en el dispositivo. Si el bit de lectura está configurado, los datos del dispositivo se cargan en el registro de entrada de datos para que el host los lea.
  3. 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 se monitorea cada elemento 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 el sondeo de lista , el dispositivo o proceso de sondeo 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 lista puede ser ineficiente si la sobrecarga de los mensajes de sondeo es alta, hay numerosos elementos para sondear en cada ciclo de sondeo y solo unos pocos elementos están activos.

En el sondeo de concentrador , también conocido como sondeo de token, cada elemento sondea al siguiente elemento en una secuencia fija. Esto continúa hasta que se llega al primer elemento, momento en el que el ciclo de sondeo comienza de nuevo.

El sondeo se puede utilizar en diversos contextos informáticos para controlar la secuencia de ejecución o transmisión de los elementos implicados. 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 ( Exterior Gateway Protocol ).

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 más eficiente utilizar interrupciones porque puede reducir el uso del procesador y/o el consumo de ancho de banda.

Mensaje de encuesta

Un mensaje de sondeo es un mensaje de reconocimiento de control.

En una disposición de línea multipunto (una computadora central y diferentes terminales en las que las 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 la cual la computadora central envía un mensaje (llamado mensaje de sondeo) a una terminal específica en la línea saliente. Todas las terminales escuchan la línea saliente, pero solo la terminal que es sondeada 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 consisten en 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 se utiliza a menudo para permitir que el maestro adquiera la entrada de manera ordenada. Estos mensajes de sondeo se diferencian de los del caso de las líneas multidrop porque no se necesitan direcciones de sitio y cada terminal solo recibe los sondeos que se le dirigen. [1]

Véase también

Referencias

  1. ^ ab "Multi-Drop Polling". RAD Data Communications/Pulse Supply. 2007. Archivado desde el original el 17 de febrero de 2014. Consultado el 13 de julio de 2014 .
Retrieved from "https://en.wikipedia.org/w/index.php?title=Polling_(computer_science)&oldid=1192523830"