¿Por qué se utiliza el spooling en una computadora?

Peter Lawrey es básicamente correcto. Hay otras razones para hacer cola. Y, son estas otras razones las que estuvieron detrás de la creación del concepto de spooling a principios de los años 70. Entonces, saltemos a nuestra máquina de retroceso y veamos por qué. …

De vuelta a los años 70 vamos. …

Mirando hacia abajo en uno de los sistemas mainframe de la época, un mainframe RCA Spectra 70, podemos ver componentes similares a los que tenemos hoy:

En este ejemplo, piense en la CPU como su computadora de torre, la pantalla de terminal como su monitor, la máquina de escribir como su teclado. Agregue algunas conexiones USB a una unidad de cinta externa, un lector de tarjetas de 80 columnas y una impresora.


Bien, ahora, ¿por qué hacer cola? Bueno, inicie un programa (el sistema operativo puede manejar múltiples programas).

  1. Su programa necesita leer algunos datos, procesarlos y luego imprimir algunas respuestas. ¿Qué hace tu programa? Agarra el lector de tarjetas y comienza a leer tarjetas. … Luego toma la impresora y comienza a imprimir. …
  2. Pero hay otro programa que ha completado su trabajo y ahora quiere imprimir su informe. ¡PERO NO PUEDE PORQUE SU PROGRAMA TIENE DERECHOS EXCLUSIVOS PARA LA IMPRESORA HASTA QUE COMPLETE!
  3. Peor aún, un chico entra con otro Job en una baraja de cartas. Todo lo que puede hacer es retirar con cuidado la paleta cargada por resorte que mantiene presionada la pila de tarjetas (de su trabajo) contra la ranura de entrada del lector. ¡ESE TIPO ESPERA PARA COMENZAR SU TRABAJO HASTA QUE EL TUYO SE COMPLETE TOTALMENTE!

¿Ineficiente? ¡Al máximo! Y hay otro problema. Su mazo ha estado allí 1/2 lectura cuando, THE HORROR, el lector falla y destruye su próxima carta y atasca las partes en el lector.

Tu trabajo esta muerto! Peor aún, no se puede volver a ejecutar porque su mazo está comprometido. Peor aún, los Jobs apilados detrás tienen que esperar mientras los chicos de Maint (siempre eran chicos de los años 60 y 70) entran y sacan todas esas partes trituradas del lector.

¿Entonces lo que hay que hacer? Configure un sistema que “se enrolle” en toda la plataforma en un área de espera, luego comience el trabajo. Y, mientras el trabajo se está ejecutando, lea las siguientes cubiertas de trabajo en el área de la cola. ¿Ventaja añadida? Una mejor oportunidad de leer el mazo en su totalidad y evitar el desastre del lector de tarjetas. De hecho, fue un milagro!

En la salida, lo mismo. La impresora se agarra y activa SOLO cuando el trabajo se ha completado.

Fue una revolución real en informática y mejoró enormemente la eficiencia operativa de los sistemas existentes. RCA hizo esto con su sistema operativo TDOS 25 aproximadamente en 1975. … IBM y las otras empresas de mainframe también estaban en el mismo tren.


DESCARGO DE RESPONSABILIDAD: Un RCA 70/45 (cercano en especificaciones a un IBM System 360/67) fue mi primera computadora. (¡Sí, sigo pensando en BAL!) Ambos sistemas, con la compra de hardware de CPU adicional, podrían manejar la memoria virtual. Mi 70/45 tenía 262,144 bytes de memoria principal, 2 unidades de disco duro de 5 MB, 1 tambor de 1,6 MB, 6 unidades de cinta, una impresora de línea de 132 columnas, un sacador de tarjetas de 80 columnas y un lector de tarjetas de 80 columnas. La consola era un dispositivo de estilo TTY-SR con un rollo de papel de 80 columnas para registrar los comandos y respuestas del operador.

Nota: en JCL, un TRABAJO puede ser una cadena de programas vinculados entre sí. He simplificado esto usando solo un programa y asumo que está envuelto en un sistema de control JCL mínimo. Es en el JCL donde se solicitan y lanzan los dispositivos de E / S.

Ver: Lenguaje de control de trabajos

Además, debido a un acuerdo de licencia cruzada, RCA obtuvo la fuente de IBM OS360. IBM pudo usar las patentes del RCA Triode para hacer su propio hardware.

¡Disfrutar!

En los viejos tiempos de los dispositivos periféricos masivos como impresoras y unidades de cinta, estos archivos adjuntos requerían una gran cantidad de movimiento físico: avanzar o rebobinar las cintas, alimentar el papel doblado a través de ruedas dentadas, etc. El movimiento físico lleva una eternidad en comparación con el movimiento completamente electrónico de datos en el procesador central. Por lo tanto, en lugar de esperar el dispositivo, los diseñadores de hardware desarrollaron el concepto de spooling, donde los datos podrían volcarse rápidamente en un área de almacenamiento intermedio y el procesador podría seguir adelante sin tener que esperar al dispositivo. En cambio, el dispositivo se alimentaría del búfer de spooling y el procesador central podría pasar a tareas más productivas.

Una vez visité una sala de computadoras donde se instaló un gran RCA Spectra 70 (RIP). Una característica del ’70 fue que tenía una luz “inactiva” en la consola. Parecía estar constantemente encendido. La discrepancia entre la velocidad del procesador y la velocidad periférica fue tan grande en esos días que, a pesar de cada intento de aumentar la eficiencia, la CPU pasó la mayor parte del tiempo girando sus ruedas. Spooling fue una de las técnicas desarrolladas para evitar que la CPU se vea afectada por los periféricos mucho, mucho más lentos.

La cola se usa cuando algo no se puede procesar de inmediato. por ejemplo, puede poner en cola una impresora. Al hacer esto, su programa tiene que esperar a que se imprima el trabajo, todo lo que tiene que hacer es generar el trabajo de impresión, y la cola se encarga del resto.

La próxima vez que use una impresora, le sugiero que preste atención al tiempo que lleva crear el trabajo en comparación con el tiempo que lleva imprimir.

No tengo nada que agregar a las excelentes respuestas a continuación. En resumen, el spooling es un proceso para organizar cómo se usa un periférico de manera eficiente y segura. Principalmente lo encontramos en el proceso de impresión.