Control de flujo de software


El control de flujo de software es un método de control de flujo utilizado en enlaces de datos de computadora , especialmente en serie RS-232 . Utiliza códigos especiales, transmitidos en banda , a través del canal de comunicaciones principal. Estos códigos generalmente se denominan XOFF y XON (de "transmisión desactivada" y "transmisión activada", respectivamente). Por lo tanto, el "control de flujo de software" a veces se denomina "control de flujo XON/XOFF". Esto contrasta con el control de flujo a través de señales dedicadas fuera de banda , " control de flujo de hardware ", como RS-232 RTS/CTS .

Para los sistemas que usan el código de caracteres ASCII , XOFF generalmente se representa usando un carácter o byte con valor decimal 19; XON con valor 17.

El estándar ASCII no reserva ningún carácter de control para su uso específico como XON/XOFF. Sin embargo, proporciona cuatro caracteres genéricos de "control de dispositivo" (DC1 a DC4). El Teletype Model 33 ASR adoptó dos de estos, DC3 y DC1, para usar como XOFF y XON, respectivamente. Este uso fue copiado por otros y ahora es un estándar de facto . Los equivalentes de teclado de Ctrl+ Spara XOFF y + para XON también se derivan de este uso.CtrlQ

Cuando un extremo de un enlace de datos no puede aceptar más datos (o se acerca a ese punto), envía XOFF al otro extremo. El otro extremo recibe el código XOFF y suspende la transmisión . Una vez que el primer extremo está listo para aceptar datos nuevamente, envía XON y el otro extremo reanuda la transmisión.

Por ejemplo, imagine una computadora que envía datos a una impresora lenta . Dado que la computadora es más rápida para enviar datos de lo que la impresora puede imprimir, la impresora se queda atrás y se acerca a una situación en la que se vería abrumada por los datos. La impresora reacciona a esta situación enviando XOFF a la computadora, que deja de enviar datos temporalmente. Cuando la impresora vuelve a estar lista para recibir más datos, envía XON a la computadora, que comienza a enviar datos nuevamente.

La principal ventaja del control de flujo por software es la reducción del número de conductores eléctricos entre el emisor y el receptor. Dado un terreno común , solo se necesitan dos señales, una para enviar y otra para recibir. El control de flujo de hardware requiere cables adicionales entre los dos dispositivos. También requiere una implementación de hardware específica, que tenía costos más significativos en los primeros días de la informática (es decir, 1960 y 1970).