Procesamiento por lotes

format_list_bulleted Contenido keyboard_arrow_down
ImprimirCitar

El procesamiento por lotes computarizado es un método para ejecutar programas de software llamados trabajos en lotes automáticamente. Si bien los usuarios deben enviar los trabajos, no se requiere ninguna otra interacción por parte del usuario para procesar el lote. Los lotes pueden ejecutarse automáticamente a horas programadas, además de depender de la disponibilidad de los recursos informáticos.

Historia

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

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. Llegarían a la computadora con el programa y los datos, a menudo en tarjetas de papel perforadas y cintas magnéticas o de papel, y cargarían su programa, lo ejecutarían y lo depurarían, y llevarían su salida cuando terminaran.

A medida que las computadoras se volvieron más rápidas, el tiempo de configuración y desinstalación se convirtió en un porcentaje mayor del tiempo de computadora disponible. Se desarrollaron programas llamados monitores, los precursores de los sistemas operativos, que podían procesar una serie, o 'lotes', 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, cargaría y ejecutaría el siguiente hasta que se completara el lote. A menudo, la salida del lote se escribiría en cinta magnética y se imprimiría o perforaría fuera de línea. Ejemplos de monitores fueron IBM's Fortran Monitor System, SOS (Share Operating System), y finalmente IBSYS para los sistemas 709x de IBM en 1960.

Sistemas de tercera generación

Computadoras de tercera generación< /span> capaz de multiprogramación comenzó 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. 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 ejecutarlos. Para evitar interbloqueos, el programador 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 secuencias de comandos para proporcionar esta información de forma estructurada. Probablemente el más conocido sea el Lenguaje de control de trabajos (JCL) de IBM. Los programadores de trabajos seleccionan los trabajos para ejecutarlos 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. A veces, el multiprocesamiento asimétrico se utiliza para poner en cola la entrada y salida por lotes de una o más computadoras grandes que utilizan un sistema adjunto más pequeño y menos costoso, como en el IBM System/360 Attached Support Processor.

Historia posterior

CDC NOS archivo de lote para obtener el archivo STARTRK y obtenerlo al golpe de la tarjeta

El primer sistema de tiempo compartido de uso general, 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.

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

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 registro de la unidad anterior, que era operado por humanos.

En curso

La computación no interactiva sigue estando presente en la informática, tanto para el procesamiento general de datos como para la "mantenimiento" tareas (utilizando el software del sistema). Un programa de alto nivel (que ejecuta múltiples programas, con algo de lógica de "pegamento" adicional) se suele llamar hoy en día secuencia de comandos y está escrito en lenguajes de secuencias de comandos, en particular secuencias de comandos 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 que se ejecuta 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 contraparte directa del procesamiento por lotes de z/OS en sistemas PC o UNIX. Los trabajos por lotes generalmente se ejecutan a una hora programada o según sea necesario. Quizás la comparación más cercana sea con procesos ejecutados por un comando AT o CRON en UNIX, aunque las diferencias son significativas."

Sistemas modernos

Las aplicaciones por lotes siguen siendo críticas en la mayoría de las organizaciones, en gran parte porque muchos procesos comerciales comunes se pueden procesar por lotes. Si bien los sistemas en línea también pueden funcionar cuando no se desea la intervención manual, generalmente no están optimizados para realizar tareas repetitivas de gran volumen. Por lo tanto, incluso los sistemas nuevos suelen contener 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, es decir, aquellas que solo necesitan datos de una sola entrada a la vez (no totales, por ejemplo): inicie 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 les permite completarse sin esperar a que finalice todo el lote. Sin embargo, muchas aplicaciones requieren datos de todos los registros, en particular cálculos como los totales. En este caso, el lote completo debe completarse antes de tener un resultado utilizable: los resultados parciales no son utilizables.

Las aplicaciones por lotes modernas utilizan marcos de trabajo por lotes modernos, como Jem The Bee, Spring Batch o implementaciones de JSR 352 escritas para Java, y otros marcos para otros lenguajes de programación, a fin de proporcionar la tolerancia a errores y la escalabilidad necesarias para el procesamiento de grandes volúmenes.. Con el fin de garantizar un procesamiento de alta velocidad, las aplicaciones por lotes a menudo se integran con soluciones informáticas en cuadrícula para dividir un trabajo por lotes en una gran cantidad de procesadores, aunque al hacerlo existen importantes desafíos de programación. El procesamiento por lotes de gran volumen también impone demandas particularmente altas en las arquitecturas de sistemas y aplicaciones. Las arquitecturas que cuentan con un sólido 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 evolucionaban junto con el procesamiento por lotes.

Ventana de lote

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

Los trabajos de final del día (EOD) de un banco requieren el concepto de transición, donde las transacciones y los datos se cortan para un día en particular&# Actividad del lote de 39 ("los depósitos después de las 3 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 y se hizo más hincapié en las técnicas que requerirían que los datos en línea estuvieran disponibles durante un período de tiempo máximo.

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 de lote. Algunos ejemplos son:

  • El número de líneas de un archivo para cargar en una base de datos antes de cometer la transacción.
  • El número de mensajes para desprender de una cola.
  • El número de solicitudes para enviar dentro de una carga útil.

Uso común de procesamiento por lotes

  • Actualizaciones eficientes de bases de datos a granel y procesamiento automatizado de transacciones, en contraste con las aplicaciones interactivas de procesamiento de transacciones en línea (OLTP). El paso del extracto, la transformación, la carga (ETL) en los almacenes de datos emergentes es inherentemente un proceso de lote en la mayoría de las implementaciones.
  • Realizar operaciones a granel en imágenes digitales como el tamaño, conversión, observación de agua, o editar de otro modo un grupo de archivos de imagen.
  • Convertir archivos de computadora de un formato a otro. Por ejemplo, un trabajo por lotes puede convertir archivos propietarios y legados a formatos estándar comunes para consultas y visualización de usuarios finales.

Notable programación por lotes y entornos de ejecución

La plataforma o sistema operativo mainframe z/OS de IBM tiene posiblemente el conjunto de instalaciones de procesamiento por lotes más refinado y evolucionado debido a sus orígenes, larga historia y evolución continua. En la actualidad, dichos sistemas suelen admitir cientos o incluso miles de tareas simultáneas en línea y por lotes dentro de una sola imagen de sistema operativo. Las tecnologías que ayudan al procesamiento en línea y por lotes simultáneo incluyen el lenguaje de control de trabajos (JCL), lenguajes de secuencias de comandos como REXX, el subsistema de entrada de trabajos (JES2 y JES3), el administrador de carga de trabajo (WLM), el administrador de reinicio automático (ARM), los servicios de recuperación de recursos (RRS), uso compartido de datos de IBM Db2, Parallel Sysplex, optimizaciones de rendimiento únicas como HiperDispatch, arquitectura de canal de E/S y muchos otros.

Los programas Unix cron, at y batch (hoy batch es una variante de at) permiten una programación compleja de trabajos. 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.

Contenido relacionado

UNIVAC

UNIVAC fue una línea de computadoras electrónicas digitales con programas almacenados que comenzaron con los productos de Eckert-Mauchly Computer...

Frecuencia crítica

Complemento (informática)

Más resultados...
Tamaño del texto: