Articulo de referencia

Control de trabajos (informática)

En informática , el control de trabajos se refiere al control automatizado de la ejecución de tareas : garantizar que cada trabajo tenga acceso a los recursos adecuados para fun...

En informática , el control de trabajos se refiere al control automatizado de la ejecución de tareas : garantizar que cada trabajo tenga acceso a los recursos adecuados para funcionar correctamente, evitar que la competencia por recursos limitados provoque un bloqueo , resolver estas situaciones cuando se produzcan y finalizar los trabajos que, por cualquier motivo, no se ejecuten como se espera. Incluso con una automatización sofisticada, la mayoría de los sistemas, como los sistemas tipo Unix , permiten operaciones manuales como interrumpir, pausar y reanudar trabajos, y ejecutarlos en primer plano (de forma interactiva) en lugar del modo habitual en segundo plano (por lotes) para una ejecución totalmente automatizada.

El control de trabajos, también conocido como procesamiento por lotes, se lleva a cabo en su mayor parte sin intervención humana. [ 1 ] El control de trabajos es configurado por programadores que deciden detalles como:

  • Cuándo ejecutar un trabajo
  • ¿En qué condiciones se puede omitir un paso?
  • Qué archivos y/o dispositivos utilizar para la entrada/salida
  • Si un archivo debe conservarse o eliminarse
  • La cantidad máxima de almacenamiento que se puede utilizar

Historia

El control de tareas ha evolucionado desde los inicios de la informática, cuando los operadores eran responsables de configurar, supervisar y controlar las tareas, hasta los sistemas modernos que se encargan de la mayor parte del trabajo.

Los primeros desarrolladores de computadoras se percataron de que estas pasaban la mayor parte del tiempo inactivas porque el software tenía que esperar a que un periférico relativamente lento completara una operación, como leer o escribir datos. El almacenamiento en búfer proporcionó una solución parcial, pero eventualmente un búfer de salida ocuparía toda la memoria disponible o un búfer de entrada se vaciaría, y el sistema tendría que esperar a que un dispositivo relativamente lento completara su tarea.

Una solución más general es la multitarea . Un ordenador ejecuta varios programas simultáneamente cargando un programa en un proceso que puede pausarse cuando el tiempo del procesador se puede utilizar mejor para un proceso que no está esperando. El contexto del proceso se almacena en caché en la memoria y se utiliza el contexto de otro proceso para reanudar la ejecución de ese proceso. El software responsable del intercambio de contextos se llama planificador y trabaja con los controladores de dispositivos periféricos para suspender la ejecución del proceso activo si el dispositivo no puede completar una operación de inmediato, y el planificador coloca el proceso en su cola de trabajos inactivos. Cuando el periférico completa la operación, el proceso está disponible para ser reanudado por el planificador. Una suspensión y reanudación similares se aplican a cualquier operación que pueda implicar espera, incluida la comunicación asíncrona entre procesos .

Sin embargo, esta planificación tiene inconvenientes. Un proceso que rara vez espera (es decir, que no utiliza periféricos) acapararía el procesador hasta que finalizara o fuera interrumpido. Otros procesos se verían entonces privados de recursos del procesador y podrían ralentizarse. Esto se puede solucionar mediante la multitarea preventiva , también conocida como división de tiempo, en la que cada proceso intercambia el procesador tras haberlo utilizado durante un periodo determinado. Además, se puede asignar una prioridad a un proceso para que tenga mayor acceso al mismo en comparación con los procesos de menor prioridad.

Idioma

Lote

Los primeros sistemas operativos y monitores residentes en las computadoras eran relativamente primitivos y no permitían una asignación sofisticada de recursos. Por lo general, estas decisiones de asignación las tomaba el operador de la computadora o el usuario que enviaba una tarea. El procesamiento por lotes era común, mientras que los sistemas informáticos interactivos eran escasos y costosos. Los lenguajes de control de tareas se desarrollaron como instrucciones primitivas, generalmente perforadas en tarjetas al inicio de una plataforma que contenía datos de entrada, solicitando recursos como asignación de memoria, números de serie o nombres de bobinas de cinta magnética que debían estar disponibles durante la ejecución, o la asignación de nombres de archivo o dispositivos a los números de dispositivo a los que hacía referencia la tarea. Un ejemplo típico de este tipo de lenguaje, que aún se utiliza en las computadoras centrales, es el Lenguaje de Control de Tareas (JCL) de IBM . Si bien el formato de los primeros JCL estaba diseñado para su uso en tarjetas perforadas , sobrevivió a la transición al almacenamiento en archivos de computadora en disco.

BANG y otros JCL que no son de IBM

Los sistemas de procesamiento por lotes de mainframes que no eran de IBM tenían algún tipo de lenguaje de control de trabajos, ya fuera con ese nombre o no; su sintaxis era completamente diferente a la de las versiones de IBM, pero generalmente proporcionaban capacidades similares. Los sistemas interactivos incluyen " lenguajes de comandos ": los archivos de comandos (como los archivos ".bat" de PCDOS) se pueden ejecutar de forma no interactiva, pero estos generalmente no proporcionan un entorno tan robusto para ejecutar trabajos desatendidos como JCL. En algunos sistemas informáticos, el lenguaje de control de trabajos y el lenguaje de comandos interactivo pueden ser diferentes. Por ejemplo, TSO en sistemas z/OS utiliza CLIST o Rexx como lenguajes de comandos junto con JCL para el procesamiento por lotes. En otros sistemas, estos pueden ser los mismos.

El JCL que no pertenece a IBM de lo que en un momento se conoció como BUNCH (Burroughs, Univac/Unisys, NCR, Control Data, Honeywell), excepto Unisys , es parte del BANG [ 2 ] [ 3 ] que ha sido silenciado.

Interactivo

Con el desarrollo de los sistemas de tiempo compartido, surgió el control interactivo de tareas. Un usuario final en un sistema de tiempo compartido podía enviar una tarea de forma interactiva desde su terminal remota ( entrada remota de tareas ), comunicarse con los operadores para advertirles sobre requisitos especiales y consultar al sistema sobre su progreso. Podía asignar una prioridad a la tarea y finalizarla si lo deseaba. También podía, naturalmente, ejecutar una tarea en primer plano, donde podría comunicarse directamente con el programa en ejecución. Durante la ejecución interactiva, podía interrumpir la tarea y dejar que continuara en segundo plano o finalizarla. Este desarrollo de la computación interactiva en un entorno multitarea condujo al desarrollo del shell moderno .

Sistemas de archivos e independencia de dispositivos

La capacidad de no tener que especificar parte o la totalidad de la información sobre un archivo o dispositivo que va a utilizar un programa determinado se denomina independencia del dispositivo .

Computación en tiempo real

La multitarea preventiva con control de tareas garantiza que un sistema funcione de manera oportuna la mayor parte del tiempo . En algunos entornos (por ejemplo, al operar maquinaria costosa o peligrosa), una restricción de diseño importante del sistema es la entrega de resultados puntuales en todas las circunstancias. En tales casos, el control de tareas es más complejo y la planificación adquiere mayor importancia.

Dado que los sistemas en tiempo real realizan una programación basada en eventos para todas las operaciones en tiempo real, "la secuencia de estas operaciones en tiempo real no está bajo el control inmediato de un operador o programador informático". [ 4 ]

Sin embargo, un sistema puede tener la capacidad de intercalar tareas en tiempo real y otras menos críticas en cuanto al tiempo, donde la línea divisoria podría ser, por ejemplo, la respuesta requerida dentro de una décima de segundo. [ 4 ] : p.1 En el caso de los sistemas Xerox RBM (Real-time/Batch Monitor), [ 5 ] [ 6 ] [ 7 ] por ejemplo, existían otras dos capacidades: [ 4 ] : p.2

  • comandos del operador informático ("introducción de teclas no solicitada");
  • flujos de trabajo en segundo plano ( trabajos por lotes ).
  • Conceptos básicos del control de trabajos

Véase también

Referencias

  1. ^ "Mainframe trabajando fuera del horario laboral: Procesamiento por lotes" .
  2. ^ lo que Xerox Data Systems y su compra de SDS llamaron su signo de exclamación "Lista de sistemas operativos" .
  3. ^ la barra inclinada de su JCL, llamada SLANT SLANT por algunos. El resto de esta nota al pie es un recordatorio, dedicado a la primera persona de quien escuché SLANT SLANT, el difunto operador informático sénior y oficial militar retirado que impartió muchas lecciones orientadas a las personas. Que esto se añada a sus citas.
  4. ^ a b c Xerox Real-Time Batch Monitor (RBM), Sigma 2/3 Computers, Guía del usuario (PDF) . Xerox Corporation . Consultado el 16 de febrero de 2017 .
  5. ^ una familia: Scientific Data Systems SDS Sigma 2 y 3, renombrados/combinados como Xerox Data Systems, Xerox 530, adquirida por Xerox.
  6. ^ Las impresoras SDS Sigma 5, 6 y 7 se convirtieron en la Xerox 560.
  7. ^ XOs SIGMR 5/7 MONITOR DE LOTES EN TIEMPO REAL (RBM-2) (PDF) . Consultado el 16 de febrero de 2017 .
Obtenido de " https://en.wikipedia.org/w/index.php?title=Job_control_(computing)&oldid=1328415234 "