En informática , un trabajo es una unidad de trabajo o unidad de ejecución (que realiza dicho trabajo). Un componente de un trabajo (como unidad de trabajo) se denomina tarea o paso (si es secuencial, como en un flujo de trabajos ). Como unidad de ejecución, un trabajo puede identificarse concretamente con un único proceso , que a su vez puede tener subprocesos ( procesos hijos ; el proceso correspondiente al trabajo es el proceso padre ) que realizan las tareas o pasos que componen el trabajo del trabajo; o con un grupo de procesos ; o con una referencia abstracta a un proceso o grupo de procesos, como en el control de trabajos de Unix .
Las tareas pueden iniciarse de forma interactiva, por ejemplo, desde la línea de comandos , o programarse para su ejecución no interactiva mediante un planificador de tareas , y luego controlarse mediante control automático o manual . Las tareas con una entrada finita pueden completarse, con éxito o sin éxito, o bien fallar y terminar. Por el contrario, el procesamiento en línea, como el que realizan los servidores, tiene una entrada ilimitada (atienden solicitudes mientras están en funcionamiento) y, por lo tanto, nunca se completa, solo se detiene cuando se termina (a veces llamado "cancelado"): la tarea de un servidor nunca termina.
Historia
El término "job" tiene un significado tradicional como "pieza de trabajo", del inglés medio "jobbe of work", y se usa como tal en la fabricación, en la frase " job production ", que significa "producción a medida", donde se contrasta con la producción por lotes (muchos artículos a la vez, un paso a la vez) y la producción en flujo (muchos artículos a la vez, todos los pasos al mismo tiempo, por artículo). Cabe señalar que estas distinciones se han desdibujado en la informática, donde se encuentra el término oximorónico " batch job ", que se usa tanto para un trabajo único como para una ronda de " procesamiento por lotes " (el mismo paso de procesamiento aplicado a muchos artículos a la vez, originalmente tarjetas perforadas ).
En este sentido de "trabajo", una computadora programable realiza "trabajos", ya que cada uno puede ser diferente del anterior. El término "trabajo" también es común en la investigación operativa , anterior a su uso en la informática, en aplicaciones como la programación de talleres (véase, por ejemplo, Baker y Dzielinski (1960) y referencias de la década de 1950, incluyendo varios " Informe del Departamento de Investigación de Sistemas " del Centro de Investigación de IBM). Esta analogía se aplica a los sistemas informáticos, donde los recursos del sistema son análogos a las máquinas en un taller , y el objetivo de la programación es minimizar el tiempo total desde el principio hasta el final ( makespan ). El término "trabajo" para el trabajo informático data de mediados de la década de 1950, como en este uso de 1955:
"El programa para una tarea individual se escribe entonces, llamando a estas subrutinas por su nombre donde sea necesario, evitando así tener que reescribirlas para problemas individuales". [ 1 ]
El término se siguió utilizando ocasionalmente, como en el caso del IBM 709 (1958), y se popularizó a principios de la década de 1960, por ejemplo, con el IBM 7090 , y su uso se extendió a partir del lenguaje de control de trabajos del sistema operativo OS/360 (anunciado en 1964). Un uso inicial habitual de "trabajo" se refiere a la compilación de un programa a partir del código fuente, ya que se trata de una tarea única. El programa compilado puede ejecutarse posteriormente con lotes de datos.
Véase también
Lecturas adicionales
- Baker; Dzielinski (1960). "Simulación de un taller de trabajo simplificado". Management Science . 6 (3): 311– 323. doi : 10.1287/mnsc.6.3.311 .
Referencias
- ↑ Armour Research Foundation , ed. (1955). (Título desconocido) . Aplicaciones informáticas. Vol. 2. Macmillan. pág. 68 .
- Terminología informática
- Programación de trabajos