Articulo de referencia

Procesamiento por lotes

En informática , el procesamiento por lotes consiste en ejecutar una tarea de software de forma automatizada y sin supervisión. Un usuario programa la ejecución de una tarea y e...

En informática , el procesamiento por lotes consiste en ejecutar una tarea de software de forma automatizada y sin supervisión. Un usuario programa la ejecución de una tarea y espera a que el sistema la ejecute. Normalmente, una tarea se programa para que se ejecute a una hora determinada del día , cuando ocurre un evento o cuando hay recursos informáticos disponibles.

Historia

El término "procesamiento por lotes" tiene su origen en la clasificación tradicional de los métodos de producción como producción por encargo (producción única), producción por lotes (producción de un "lote" de varios artículos a la vez, una etapa a la vez) y producción en flujo (producción en masa, todas las etapas del proceso a la vez).

Historia temprana

Las primeras computadoras solo podían ejecutar un programa a la vez. Cada usuario tenía el control exclusivo de la máquina durante un período de tiempo programado. Llegaban a la computadora con el programa y los datos, a menudo en tarjetas perforadas y cinta magnética o de papel, cargaban su programa, lo ejecutaban, lo depuraban y, al finalizar, se llevaban el resultado.

A medida que las computadoras se volvieron más rápidas, el tiempo de configuración y desmontaje representó un porcentaje mayor del tiempo de computación disponible. Se desarrollaron programas llamados monitores , precursores de los sistemas operativos , que podían procesar una serie, o "lote", de programas, a menudo desde cinta magnética preparada fuera de línea . El monitor se cargaba en la computadora y ejecutaba el primer trabajo del lote. Al finalizar el trabajo, recuperaba el control y cargaba y ejecutaba el siguiente hasta completar el lote. A menudo, la salida del lote se escribía en cinta magnética y se imprimía o perforaba fuera de línea. Ejemplos de monitores fueron el Fortran Monitor System de IBM , SOS (Share Operating System) y, finalmente, IBSYS para los sistemas 709x de IBM en 1960. [ 1 ] [ 2 ]

Sistemas de tercera generación

Las computadoras de tercera generación [ 3 ] capaces de multiprogramación comenzaron a aparecer en la década de 1960. En lugar de ejecutar un trabajo por lotes a la vez, estos sistemas pueden tener múltiples programas por lotes ejecutándose al mismo tiempo para mantener el sistema lo más ocupado posible. Uno o más programas pueden estar esperando entrada, uno ejecutándose activamente en la CPU y otros generando salida. En lugar de entrada y salida fuera de línea, los programas llamados spoolers leen trabajos de tarjetas, discos o terminales remotos y los colocan en una cola de trabajos para su ejecución. Para evitar interbloqueos, el planificador de trabajos necesita conocer los requisitos de recursos de cada trabajo (memoria, cintas magnéticas, discos montables , etc.), por lo que se desarrollaron varios lenguajes de scripting para proporcionar esta información de manera estructurada. Probablemente el más conocido sea el Job Control Language (JCL) de IBM. Los planificadores de trabajos seleccionan los trabajos que se ejecutarán de acuerdo con una variedad de criterios, incluyendo prioridad, tamaño de memoria, etc. El lote remoto es un procedimiento para enviar trabajos por lotes desde terminales remotos, a menudo equipados con un lector de tarjetas perforadas y una impresora de línea . [ 4 ] A veces se utiliza el multiprocesamiento asimétrico para almacenar en cola la entrada y salida por lotes para uno o más ordenadores grandes mediante un sistema más pequeño y menos costoso conectado, como en el procesador de soporte conectado del IBM System/360 . [ a ]

Historia posterior

Archivo por lotes CDC NOS para obtener el archivo STARTRK y enviarlo a la perforadora de tarjetas.

El primer sistema de tiempo compartido de propósito general, el Sistema de Tiempo Compartido Compatible (CTSS), era compatible con el procesamiento por lotes. Esto facilitó la transición del procesamiento por lotes a la computación interactiva . [ 5 ]

Desde finales de la década de 1960 en adelante, la computación interactiva, como a través de interfaces de terminal basadas en texto (como en los shells de Unix o los bucles de lectura-evaluación-impresión ), y posteriormente las interfaces gráficas de usuario , se hicieron comunes. La computación no interactiva, tanto las tareas puntuales como la compilación, como el procesamiento de múltiples elementos en lotes, se denominó retrospectivamente procesamiento por lotes , y el término trabajo por lotes (en sus inicios, a menudo "lote de trabajos") se popularizó. Su uso temprano se encuentra particularmente en la Universidad de Michigan , en torno al Sistema de Terminales de Michigan (MTS). [ 6 ]

Si bien existía el sistema de tiempo compartido, su uso no era lo suficientemente robusto para el procesamiento de datos corporativos; nada de esto estaba relacionado con los equipos de registro de unidades anteriores , que eran operados por personas.

En curso

La computación no interactiva sigue estando muy extendida en la informática, tanto para el procesamiento general de datos como para las tareas de "mantenimiento" del sistema (mediante software del sistema ). Un programa de alto nivel (que ejecuta varios programas, con cierta lógica de "conexión" adicional) se denomina hoy en día con mayor frecuencia script , y se escribe en lenguajes de scripting , en particular scripts de shell para tareas del sistema; en IBM PC DOS y MS-DOS se conoce como archivo por lotes . Esto incluye ordenadores basados ​​en UNIX , Microsoft Windows , macOS (cuya base es el núcleo BSD Unix) e incluso teléfonos inteligentes . Un script en ejecución, en particular uno ejecutado desde una sesión de inicio de sesión interactiva , se conoce a menudo como trabajo , pero este término se utiliza de forma muy ambigua.

"No existe un equivalente directo al procesamiento por lotes de z/OS en sistemas PC o UNIX. Los trabajos por lotes se ejecutan normalmente en un momento programado o según sea necesario. Quizás la comparación más cercana sea con los procesos ejecutados mediante un comando ` at` o `cron` en UNIX, aunque las diferencias son significativas." [ 7 ]

Sistemas modernos

Las aplicaciones de procesamiento por lotes siguen siendo fundamentales en la mayoría de las organizaciones, principalmente porque muchos procesos de negocio comunes se prestan a este tipo de procesamiento. Si bien los sistemas en línea también pueden funcionar cuando no se desea la intervención manual, no suelen estar optimizados para realizar tareas repetitivas de gran volumen. Por lo tanto, incluso los sistemas nuevos generalmente incluyen una o más aplicaciones de procesamiento por lotes para actualizar la información al final del día, generar informes, imprimir documentos y otras tareas no interactivas que deben completarse de manera confiable dentro de ciertos plazos de tiempo.

Algunas aplicaciones se prestan al procesamiento de flujo, concretamente aquellas que solo necesitan datos de una única entrada a la vez (no totales, por ejemplo): se inicia el siguiente paso para cada entrada a medida que finaliza el anterior. En este caso, el procesamiento de flujo reduce la latencia para las entradas individuales, permitiendo que se completen sin esperar a que finalice todo el lote. Sin embargo, muchas aplicaciones requieren datos de todos los registros, especialmente cálculos como los totales. En este caso, se debe completar todo el lote antes de obtener un resultado útil: los resultados parciales no son utilizables.

Las aplicaciones de procesamiento por lotes modernas utilizan marcos de trabajo modernos como Jem The Bee, Spring Batch [ 8 ] o implementaciones de JSR 352 [ 9 ] escritas para Java , y otros marcos de trabajo para otros lenguajes de programación, para proporcionar la tolerancia a fallos y la escalabilidad necesarias para el procesamiento de alto volumen. Para garantizar un procesamiento de alta velocidad, las aplicaciones de procesamiento por lotes a menudo se integran con soluciones de computación en malla para particionar un trabajo por lotes en un gran número de procesadores, aunque existen importantes desafíos de programación al hacerlo. El procesamiento por lotes de alto volumen también impone exigencias particularmente altas a las arquitecturas de sistemas y aplicaciones. Las arquitecturas que presentan un alto rendimiento de entrada/salida y escalabilidad vertical , incluidas las computadoras centrales modernas , tienden a proporcionar un mejor rendimiento por lotes que las alternativas.

Los lenguajes de scripting se popularizaron a medida que evolucionaron junto con el procesamiento por lotes. [ 10 ]

Ventana de lote

Una ventana de lotes es "un período de actividad en línea menos intensiva" [ 11 ] cuando el sistema informático puede ejecutar trabajos por lotes sin interferencia de, o con, sistemas interactivos en línea.

Las operaciones de fin de día (EOD) de un banco requieren el concepto de " transición" , donde las transacciones y los datos se interrumpen para la actividad por lotes de un día en particular ("los depósitos realizados después de las 3 p. m. se procesarán al día siguiente").

A medida que los requisitos de tiempo de actividad de los sistemas en línea se ampliaron para respaldar la globalización , Internet y otras necesidades comerciales, la ventana de lotes se redujo [ 12 ] [ 13 ] y se puso un énfasis creciente en técnicas que requerirían que los datos en línea estuvieran disponibles durante una cantidad máxima de tiempo.

Tamaño del lote

El tamaño del lote se refiere al número de unidades de trabajo que se procesarán dentro de una operación por lotes. Algunos ejemplos son:

  • El número de líneas de un archivo que se deben cargar en una base de datos antes de confirmar la transacción.
  • Número de mensajes que se deben extraer de una cola.
  • El número de solicitudes que se enviarán dentro de una carga útil.

Uso común en el procesamiento por lotes

Entornos de ejecución y programación de lotes destacables

El sistema operativo o plataforma IBM z/OS para mainframes cuenta con, posiblemente, el conjunto de herramientas de procesamiento por lotes más refinado y avanzado gracias a sus orígenes, su larga trayectoria y su continua evolución. Actualmente, estos sistemas suelen admitir cientos o incluso miles de tareas concurrentes, tanto en línea como por lotes, dentro de una única imagen del sistema operativo . Entre las tecnologías que facilitan el procesamiento concurrente por lotes y en línea se incluyen el lenguaje de control de trabajos (JCL), lenguajes de scripting como REXX , el subsistema de entrada de trabajos ( JES2 y JES3 ), el gestor de carga de trabajo (WLM), el gestor de reinicio automático (ARM), los servicios de recuperación de recursos (RRS), el uso compartido de datos de IBM Db2 , Parallel Sysplex , optimizaciones de rendimiento únicas como HiperDispatch , la arquitectura de canales de E/S y varias otras.

Los programas Unix cron, at, y batch(hoy batches una variante de at) permiten la programación compleja de tareas. Windows tiene un programador de tareas . La mayoría de los clústeres de computación de alto rendimiento utilizan el procesamiento por lotes para maximizar el uso del clúster. [ 15 ]

Véase también

Notas

  1. El uso de computadoras satélite para este propósito comenzó antes, por ejemplo, en el sistema de acoplamiento directo IBM 7094/7044 .

Referencias

  1. "The Direct Couple for the IBM 7090" . SoftwarePreservationGroup.org . IBSYS era un sistema operativo para el 7090 que evolucionó a partir de SOS (SHARE Operating System).
  2. "Historia de los sistemas operativos" (PDF) . Archivado del original (PDF) el 9 de octubre de 2022.
  3. "¿Por qué te resistes a morir? El S/360 de IBM y su legado a los 50 años" . The Register . 7 de abril de 2014.
  4. "Manual de referencia de hardware del terminal de usuario de CDC" (PDF) . BitSavers . Archivado (PDF) del original el 09/10/2022.
  5. Walden, David; Van Vleck, Tom , eds. (2011). "Compatible Time-Sharing System (1961-1973): Fiftieth Anniversary Commemorative Overview" (PDF) . IEEE Computer Society. Archivado (PDF) del original el 9 de octubre de 2022. Recuperado el 20 de febrero de 2022. CTSS se denominó "compatible" en el sentido de que FMS podía ejecutarse en B-core como un usuario "en segundo plano", casi con la misma eficiencia que en una máquina sin sistema operativo, y también porque los programas compilados para el procesamiento por lotes de FMS podían cargarse y ejecutarse en el entorno de tiempo compartido "en primer plano" (con algunas limitaciones). ... Esta característica permitió al Centro de Computación realizar la transición del procesamiento por lotes al tiempo compartido de forma gradual.
  6. "El centro de computación: familiarizándose con el IBM System/360 Modelo 67". Noticias de investigación . 20 (noviembre/diciembre). Universidad de Michigan: 10. 1969.
  7. IBM Corporation. "¿Qué es el procesamiento por lotes?" . Conceptos de zOS . Consultado el 10 de octubre de 2019 .
  8. ^ Minella, Michael (13 de octubre de 2011). Lote de primavera profesional . Presione. ISBN 978-1-4302-3453-1.
  9. "Aplicaciones por lotes para la plataforma Java" . Proceso de la comunidad Java . Consultado el 3 de agosto de 2015 .
  10. "JSR352 nulo" . IBM.com. Archivado del original el 20/10/2018 . Consultado el 19/10/2018 . JSR 352, la especificación estándar abierta para el procesamiento por lotes de Java. ... Los lenguajes de programación utilizados evolucionaron con el tiempo en función de lo que estaba disponible.
  11. "Mainframes trabajando fuera del horario laboral: Procesamiento por lotes" . Conceptos de mainframe . IBM Corporation . Consultado el 20 de junio de 2013 .
  12. Procesamiento por lotes: Diseño – Construcción – Operación: Prácticas y principios aplicados . O'Reilly. 24 de febrero de 2009. ISBN 9780470257630.
  13. "Tradicionalmente, el procesamiento por lotes era una actividad nocturna, con trabajos que procesaban millones de... Hoy en día, el tiempo de procesamiento por lotes se reduce cada vez más debido a los requisitos de disponibilidad 24/7."
  14. Gutkovich, Ben (10 de febrero de 2023). "Por qué el aprendizaje automático en tiempo real será la palabra de moda de 2023" . Superlinked . Archivado del original el 16 de abril de 2023. Recuperado el 11 de abril de 2023 .
  15. "Tutorial de computación de alto rendimiento, con lista de verificación y consejos para optimizar" . 25 de enero de 2018. Un sistema de procesamiento por lotes multiusuario, compartido e inteligente mejora la escala... La mayoría de los clústeres HPC están en Linux.