De Wikipedia, la enciclopedia libre
Saltar a navegación Saltar a búsqueda

El procesamiento por lotes computarizado es la ejecución de "trabajos que pueden ejecutarse sin la interacción del usuario final, o pueden programarse para ejecutarse según lo permitan los recursos". [1]

Historia [ editar ]

El término "procesamiento por lotes" se origina en la clasificación tradicional de los métodos de producción como producción por trabajo ( 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 de flujo. (producción en masa, todas las etapas en proceso a la vez).

Historia temprana [ editar ]

Las primeras computadoras eran capaces de ejecutar solo 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 programas y datos, a menudo en tarjetas de papel perforadas y cinta magnética o de papel, y cargaban su programa, lo ejecutaban y depuraban, y llevaban su salida cuando terminaban.

A medida que las computadoras se volvieron más rápidas, el tiempo de instalación y eliminación se convirtió en un porcentaje mayor del tiempo disponible de la computadora. Se desarrollaron programas llamados monitores , los precursores de los sistemas operativos , que podían procesar una serie o "lote" de programas, a menudo a partir de cintas magnéticas preparadas fuera de línea. El monitor se cargaría en la computadora y ejecutaría el primer trabajo del lote. Al final del trabajo, recuperaría el control y cargaría y ejecutaría el siguiente hasta que se completara el lote. A menudo, la salida del lote se escribe en cinta magnética y se imprime o perfora fuera de línea. Ejemplos de monitores fueron el Fortran Monitor System de IBM , SOS (Share Operating System) y finalmente IBSYS para el 709x de IBM .sistemas en 1960. [2] [3]

Sistemas de tercera generación [ editar ]

Las computadoras de tercera generación [4] 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 varios programas por lotes ejecutándose al mismo tiempo para mantener el sistema lo más ocupado posible. Es posible que uno o más programas estén esperando entrada, uno que se esté ejecutando activamente en la CPU y otros generando salida. En lugar de la entrada y salida fuera de línea, los programas denominados 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 programador de trabajos debe 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 suministrar esta información de forma estructurada. Probablemente el más conocido es el lenguaje de control de trabajos de IBM (JCL). Los programadores de trabajos seleccionan trabajos para ejecutar de acuerdo con una variedad de criterios, incluida la prioridad, el tamaño de la 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 . [5] A veces, el multiprocesamiento asimétrico se usa para poner en cola la entrada y salida por lotes para una o más computadoras grandes usando un sistema adjunto más pequeño y menos costoso, como en IBM System / 360 Attached Support Processor .

Historia posterior [ editar ]

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

Desde finales de la década de 1960 en adelante, la computación interactiva , por ejemplo, a través de interfaces de terminal de computadora basadas en texto (como en shells de Unix o bucles de lectura-evaluación-impresión ) y las interfaces gráficas de usuario posteriores se volvieron comunes. La computación no interactiva, tanto trabajos únicos como la compilación como el procesamiento de varios elementos en lotes, se denominó retrospectivamente procesamiento por lotes , y el término trabajo por lotes (en el uso temprano a menudo "lotes de trabajos") se volvió común. El uso temprano se encuentra particularmente en la Universidad de Michigan , alrededor del Michigan Terminal System (MTS). [6]

Aunque existía el tiempo compartido, su uso no era lo suficientemente sólido para el procesamiento de datos corporativos; nada de esto estaba relacionado con el equipo de grabación de la unidad anterior , que era operado por humanos.

En curso [ editar ]

La computación no interactiva sigue siendo omnipresente en la computación, tanto para el procesamiento general de datos como para las tareas de "limpieza" del sistema (utilizando software del sistema ). Un programa de alto nivel (que ejecuta varios programas, con alguna lógica adicional de "pegamento") se denomina hoy con mayor frecuencia un script y está escrito en lenguajes de script , particularmente scripts de shell para tareas del sistema; en IBM PC DOS y MS-DOS, esto se conoce como archivo por lotes . Eso incluye computadoras basadas en UNIX , Microsoft Windows , macOS (cuya base es el kernel BSD Unix) e incluso teléfonos inteligentes.. Un script en ejecución, particularmente uno ejecutado desde una sesión de inicio de sesión interactiva , a menudo se conoce como trabajo , pero ese término se usa de manera muy ambigua.

"No existe una contrapartida directa para el procesamiento por lotes de z / OS en los sistemas PC o UNIX. Los trabajos por lotes se ejecutan normalmente a una hora programada o según sea necesario. Quizás la comparación más cercana sea con los procesos ejecutados por un comando AT o CRON en UNIX, aunque las diferencias son significativas ". [1]

Sistemas modernos [ editar ]

Las aplicaciones por lotes siguen siendo críticas en la mayoría de las organizaciones, en gran parte porque muchos procesos comerciales comunes son aptos para el procesamiento por lotes. 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 contienen una o más aplicaciones 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 comerciales.

Algunas aplicaciones son aptas para el procesamiento de flujo, a saber, aquellas que solo necesitan datos de una sola entrada a la vez (no totales, por ejemplo): comience el siguiente paso para cada entrada a medida que completa el paso anterior. En este caso, el procesamiento de flujo reduce la latencia de las entradas individuales, lo que permite que se completen sin esperar a que termine todo el lote. Sin embargo, muchas aplicaciones requieren datos de todos los registros, en particular cálculos como totales. En este caso, se debe completar todo el lote antes de que uno tenga un resultado utilizable: los resultados parciales no se pueden utilizar.

Las aplicaciones por lotes modernas hacen uso de marcos de trabajo por lotes modernos como Jem The Bee , Spring Batch o implementaciones de JSR 352 [7] escrito para Java , y otros marcos para otros lenguajes de programación, para proporcionar la tolerancia a fallas y la escalabilidad necesarias para el procesamiento de alto volumen. . Para garantizar un procesamiento de alta velocidad, las aplicaciones por lotes a menudo se integran con soluciones de computación en red para particionarun trabajo por lotes en una gran cantidad de procesadores, aunque existen importantes desafíos de programación al hacerlo. El procesamiento por lotes de gran volumen también impone demandas particularmente pesadas en las arquitecturas de sistemas y aplicaciones. Las arquitecturas que presentan un fuerte 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 secuencias de comandos se hicieron populares a medida que evolucionaron junto con el procesamiento por lotes. [8]

Ventana de lote [ editar ]

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

Los trabajos de fin de día (EOD) de un banco requieren el concepto de transición , donde la transacción y los datos se cortan para la actividad de lote de un día en particular ("los depósitos después de las 3:00 p.m. se procesarán al día siguiente").

A medida que los requisitos para el tiempo de actividad de los sistemas en línea se expandieron para respaldar la globalización , Internet y otras necesidades comerciales, la ventana de lotes se redujo [10] [11] y se hizo mayor hincapié en técnicas que requerirían que los datos en línea estuvieran disponibles durante un período máximo de tiempo. .

Tamaño de lote [ editar ]

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 para cargar en una base de datos antes de confirmar la transacción.
  • El número de mensajes para retirar de una cola.
  • El número de solicitudes para enviar dentro de una carga útil.

Uso común de procesamiento por lotes [ editar ]

  • Actualizaciones de bases de datos masivas eficientes y procesamiento de transacciones automatizado , en contraste con las aplicaciones de procesamiento de transacciones en línea interactivo (OLTP). El paso de extraer, transformar, cargar (ETL) en la población de los almacenes de datos es inherentemente un proceso por lotes en la mayoría de las implementaciones.
  • Realización de operaciones masivas en imágenes digitales como cambio de tamaño, conversión, marca de agua o la edición de un grupo de archivos de imagen.
  • Conversión de archivos informáticos de un formato a otro. Por ejemplo, un trabajo por lotes puede convertir archivos patentados y heredados a formatos estándar comunes para consultas y visualización del usuario final.

Entornos de ejecución y programación de lotes notables [ editar ]

El sistema operativo o plataforma IBM mainframe z / OS tiene posiblemente el conjunto de instalaciones de procesamiento por lotes más perfeccionado y evolucionado debido a sus orígenes, larga historia y evolución continua. En la actualidad, estos sistemas suelen admitir cientos o incluso miles de tareas simultáneas en línea y por lotes dentro de una única imagen de sistema operativo . Las tecnologías que ayudan al procesamiento simultáneo por lotes y en línea incluyen Job Control Language (JCL), lenguajes de scripting como REXX , Job Entry Subsystem ( JES2 y JES3 ), Workload Manager (WLM), Automatic Restart Manager (ARM), Resource Recovery Services (RRS) , Intercambio de datos de DB2 ,Parallel Sysplex , optimizaciones de rendimiento únicas como HiperDispatch , arquitectura de canales de E / S y varios otros.

Los programas Unix cron, aty batch(hoy batches una variante de at) permitir la programación compleja de puestos de trabajo. Windows tiene un programador de trabajos . La mayoría de los clústeres informáticos de alto rendimiento utilizan el procesamiento por lotes para maximizar el uso del clúster. [12]

Ver también [ editar ]

  • Proceso de fondo
  • Archivo por lotes
  • Cambio de nombre por lotes : para cambiar el nombre de muchos archivos automáticamente sin intervención humana, con el fin de ahorrar tiempo y esfuerzo.
  • BatchPipes : para la utilidad que aumenta el rendimiento de los lotes
  • Modos de procesamiento
  • Soporte de producción : para trabajos por lotes / programación / soporte de flujo

Referencias [ editar ]

  1. ^ a b IBM Corporation. "¿Qué es el procesamiento por lotes?" . Conceptos de zOS . Consultado el 10 de octubre de 2019 .
  2. ^ "La pareja directa para el IBM 7090" . SoftwarePreservationGroup.org . IBSYS fue un sistema operativo para el 7090 que evolucionó de SOS (SHARE Operating System)
  3. ^ "Historia de los sistemas operativos" (PDF) . Universidad de Washington . Consultado el 10 de octubre de 2019 .
  4. ^ "¿Por qué no mueres? IBM S / 360 y su legado en 50" . El registro . 7 de abril de 2014.
  5. ^ "Manual de referencia de hardware del terminal de usuario de CDC" (PDF) . BitSavers .
  6. ^ "El centro de computación: llegar a un acuerdo con el modelo 67 de IBM System / 360". Noticias de investigación . Universidad de Michigan. 20 (noviembre / diciembre): 10 . 1969.
  7. ^ "Aplicaciones por lotes para la plataforma Java" . Proceso de la comunidad Java . Consultado el 3 de agosto de 2015 .
  8. ^ "JSR352 nulo" . IBM.com. 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
  9. ^ "Mainframes trabajando fuera de horario: procesamiento por lotes" . Conceptos de mainframe . IBM Corporation . Consultado el 20 de junio de 2013 .
  10. ^ Procesamiento por lotes: diseño - construcción - ejecución: principios y prácticas aplicadas . Oreilly. 2009-02-24. ISBN 9780470257630.
  11. ^ "Tradicionalmente, el lote era una actividad de la noche a la mañana, con trabajos que procesaban millones de ... Hoy en día, la ventana del lote está disminuyendo con los requisitos de disponibilidad 24/7".
  12. ^ "Tutorial de informática de alto rendimiento, con lista de verificación y consejos para optimizar" . 25 de enero de 2018. un sistema de procesamiento por lotes inteligente, compartido y multiusuario mejora la escala ..... La mayoría de los clústeres de HPC están en Linux