# Processament per lots

En el camp de l'informàtica, el processament per lots (en anglès: Batch processing) informatitzat consisteix en l'execució de "feines que es poden executar sense la interacció de l'usuari final o que es poden programar per a la seva execució segons els recursos".

## Història

El terme "processament per lots" s'origina en la classificació tradicional dels mètodes de producció com a producció de treballs (producció única), producció per lots (producció d'un "lot" de diversos articles alhora, una etapa a la vegada) i producció de fluxos (producció en massa, totes les etapes en procés alhora).

### Història primerenca

Els primers ordinadors eren capaços d'executar només un programa a la vegada. Cada usuari tenia el control exclusiu de la màquina durant un període programat. Arribaven a l'ordinador amb el programa i les dades, sovint en targetes de paper perforades i cintes magnètiques o de paper, i carregaven el programa, l'executaven i depuraven i treien la sortida quan acabaven.
A mesura que els ordinadors es van fer més ràpids, la configuració i el temps de retirada es van convertir en un percentatge més gran del temps disponible. Es van desenvolupar programes anomenats monitors, els precursors dels sistemes operatius, que podien processar una sèrie o "lots" de programes, sovint a partir de cintes magnètiques preparades fora de línia. El monitor es carregaria a l'ordinador i executaria el primer treball del lot. Al final del treball, recuperaria el control i la càrrega i s'executaria el següent fins que es completés el lot. Sovint la sortida del lot s'escrivia en cinta magnètica i s'imprimia o punxava fora de línia. Exemples de monitors van ser el Fortran Monitor System d' IBM, SOS (Share Operating System) i, finalment, IBSYS per als sistemes 709x d'IBM el 1960.

### Sistemes de tercera generació

Els ordinadors de tercera generació capaços de multiprogramació van començar a aparèixer als anys seixanta. En lloc d'executar un treball per lots, aquests sistemes poden tenir diversos programes per lots executant-se al mateix temps per mantenir el sistema el més ocupat possible. Un o més programes poden estar esperant l'entrada, un s'executa activament a la CPU i altres generen sortida. En lloc d'entrada i sortida fora de línia, els programes anomenats spoolers llegeixen tasques de targetes, discs o terminals remots i els col·loquen en una cua de tasques per executar-les. Per evitar bloquejos, el programador de treballs ha de conèixer els requisits de recursos de cada treball (memòria, cintes magnètiques, discs muntables, etc.), de manera que es van desenvolupar diversos llenguatges de seqüències per proporcionar aquesta informació de manera estructurada. Probablement el més conegut sigui el llenguatge de control de feina (JCL) d'IBM. Els programadors de treballs seleccionen tasques per executar-les segons diversos criteris, inclosa la prioritat, la mida de la memòria, etc. El lot remot és un procediment per enviar treballs per lots des de terminals remots, sovint equipats amb un lector de targetes perforades i una impressora de línia. De vegades, el multiprocessament asimètric s'utilitza per generar entrades i sortides per lots en un o més equips grans que utilitzen un sistema adjunt més petit i menys costós, com passa amb el processador de suport adjunt IBM System/360.

### Història posterior

Des de finals de la dècada de 1960 en endavant, la informàtica interactiva, com ara mitjançant interfícies de terminal d'ordinador basades en text (com en els shell Unix o els bucles de lectura-eval-print), i les interfícies gràfiques d'usuari posteriors es van fer habituals. El càlcul no interactiu, tant els treballs puntuals com la compilació, com el processament de diversos elements en lots, es va anomenar retrospectivament com a processament per lots, i el terme treball per lots (en ús primerenc sovint "lot de treballs") es va fer habitual. L'ús primerenc es troba particularment a la Universitat de Michigan, al voltant del Michigan Terminal System (MTS).
Tot i que el temps compartit existia, el seu ús no era prou robust per al processament de dades corporatives; res d'això estava relacionat amb l'equip de registre de la unitat anterior, que funcionava amb humans.

### Actualment

El càlcul no interactiu continua sent generalitzat en la informàtica, tant per al processament general de dades com per a tasques de "neteja" del sistema (mitjançant programari del sistema). Un programa d'alt nivell (que executa múltiples programes, amb alguna lògica addicional de "cola") s'anomena més sovint script, i s'escriu en llenguatges de scripts, especialment scripts shell per a tasques del sistema; a IBM PC DOS i MS-DOS, això es coneix com a fitxer per lots. Això inclou ordinadors basats en UNIX , Microsoft Windows, macOS (que té com a base el nucli BSD Unix) i fins i tot telèfons intel·ligents. Un script en execució, en particular un executat a partir d'una sessió d'inici interactiu, es coneix sovint com a treball, però aquest terme s'utilitza de forma molt ambigua.
"No hi ha cap contrapartida directa del processament per lots z / OS en sistemes PC o UNIX. Normalment, els treballs per lots s'executen a una hora programada o segons les necessitats. Potser la comparació més propera és amb processos executats per una comanda AT o CRON a UNIX, tot i que les diferències són significatives."

## Sistemes moderns

Les aplicacions per lots encara són fonamentals en la majoria de les organitzacions, ja que molts processos comercials habituals poden processar-se per lots. Tot i que els sistemes en línia també poden funcionar quan no es vol intervenir manualment, normalment no s'optimitzen per fer tasques repetitives i de gran volum. Per tant, fins i tot els sistemes nous solen contenir una o més aplicacions per lots per actualitzar la informació al final del dia, generant informes, imprimint documents i altres tasques no interactives que s'han de completar de manera fiable dins de determinats terminis comercials.
Algunes aplicacions són susceptibles de processar el flux, és a dir, aquelles que només necessiten dades d'una sola entrada alhora (no totals, per exemple): comenceu el següent pas per a cada entrada a mesura que completi el pas anterior. En aquest cas, el processament de flux redueix la latència de les entrades individuals, cosa que permet completar-les sense esperar a que acabi tot el lot. Tanmateix, moltes aplicacions requereixen dades de tots els registres, sobretot càlculs com els totals. En aquest cas, s'ha de completar tot el lot abans que es pugui obtenir un resultat útil: els resultats parcials no es poden utilitzar.
Les aplicacions modernes per lots fan ús de marcs moderns per lots, com ara Jem The Bee, Spring Batch o implementacions de JSR 352 escrites per a Java, i altres marcs per a altres llenguatges de programació, per proporcionar la tolerància a fallades i l'escalabilitat necessàries per al processament d'alt volum.. Per tal d'assegurar un processament d'alta velocitat, les aplicacions per lots sovint s'integren amb solucions d'informàtica de xarxa per particionar un treball per lots en un gran nombre de processadors, tot i que hi ha desafiaments de programació significatius. El processament per lots d'alt volum també exigeix particularment grans arquitectures d'aplicacions i sistemes. Les arquitectures que presenten un fort rendiment d'entrada / sortida i escalabilitat vertical, inclosos els equips mainframe moderns, solen proporcionar un millor rendiment per lots que les alternatives.
Els llenguatges d'escriptura es van popularitzar a mesura que van evolucionar juntament amb el processament per lots.

## Finestra per lots

Una finestra per lots és "un període d'activitat en línia menys intensa", quan el sistema informàtic és capaç d'executar treballs per lots sense interferències o sistemes interactius en línia.
Les feines de final de dia (EOD) d' un banc requereixen el concepte de reducció, en què es tallen les transaccions i les dades per a l'activitat per lots d'un dia concret ("els dipòsits després de les 15:00 es processaran l'endemà").
A mesura que es van ampliar els requisits de temps de funcionament dels sistemes en línia per donar suport a la globalització, Internet i altres necessitats empresarials, la finestra per lots es va reduir i es va posar un èmfasi creixent en tècniques que requeririen que les dades en línia estiguessin disponibles durant un temps màxim.

## Mida del lot

La mida del lot es refereix al nombre d'unitats de treball que s'han de processar dins d'una operació de lot. Alguns exemples són:
* El nombre de línies d'un fitxer que es carregaran a una base de dades abans de realitzar la transacció.
* El nombre de missatges que cal deixar fora d'una cua.
* El nombre de sol·licituds per enviar dins d'una càrrega útil.

## Ús comú de processament per lots

* Actualitzacions massives de bases de dades eficients i processament automatitzat de transaccions, en contrast amb les aplicacions de processament de transaccions en línia interactives (OLTP). El pas d' extracció, transformació, càrrega (ETL) en la població de magatzems de dades és inherentment un procés per lots en la majoria de les implementacions.
* Realització d'operacions massives en imatges digitals, com ara canviar la mida, convertir-les, marcar a l'aigua o editar un grup de fitxers d'imatges.
* Conversió de fitxers d'ordinador d'un format a un altre. Per exemple, un treball per lots pot convertir fitxers propietaris i heretats a formats estàndard comuns per a consultes i visualització de l'usuari final.

## Ambients notables de planificació i execució per lots

El sistema operatiu o plataforma mainframe z / OS d'IBM té, sens dubte, el conjunt d'instal·lacions de processament per lots més refinades i evolucionades a causa dels seus orígens, llarga història i evolució continuada. Avui en dia, aquests sistemes solen admetre centenars o fins i tot milers de tasques simultànies en línia i per lots en una sola imatge del sistema operatiu. Les tecnologies que ajuden el processament simultani i per lots en línia inclouen el llenguatge de control de treballs (JCL), llenguatges de seqüències d'ordres com REXX, subsistema d'entrada de treballs (JES2 i JES3), gestor de càrrega de treball (WLM), gestor de reinici automàtic (ARM), serveis de recuperació de recursos (RRS), Compartició de dades DB2, Parallel Sysplex, optimitzacions de rendiment úniques com HiperDispatch, arquitectura de canals d'E/S i diverses altres.
Els programes Unix cron, at i batch (avui batch és una variant de at) permeten una programació complexa de treballs. Windows té un planificador de treballs. La majoria dels clústers informàtics d'alt rendiment fan servir el processament per lots per maximitzar l'ús de clústers.

## Vegeu també

* Arxiu de lot

## Referències

* 1 2 IBM Corporation. «What is batch processing?». zOS Concepts. [Consulta: 10 octubre 2019].
* ↑ «The Direct Couple for the IBM 7090». SoftwarePreservationGroup.org.
* ↑ «History of Operating Systems». University of Washington. [Consulta: 10 octubre 2019].
* ↑ «Why won't you DIE? IBM's S/360 and its legacy at 50». .
* ↑ «CDC User Terminal Hardware Reference manual». BitSavers.
* ↑ Research News, 20, Nov/Dec, 1969, pàg. 10.
* ↑ «Batch Applications for the Java Platform». Java Community Process. [Consulta: 3 agost 2015].
* ↑ «JSR352 null». IBM.com.
* ↑ «Mainframes working after hours: Batch processing». Mainframe concepts. IBM Corporation. [Consulta: 20 juny 2013].
* ↑ Batch Processing: Design – Build – Run: Applied Practices and Principles. Oreilly, 2009-02-24. ISBN 9780470257630.
* ↑ "Traditionally batch was an overnight activity, with jobs processing millions of ... Today the batch window is ever decreasing with 24/7 availability requirements."
* ↑ «High performance computing tutorial, with checklist and tips to optimize», 25-01-2018.