# Workload Manager

El 'Workload Manager' (WLM) es un gestor de cargas de trabajo que forma parte integral del sistema operativo [z/OS] para [Computadora central|ordenadores centrales] (Mainframe) de [IBM]. Su objetivo es gestionar el acceso a [Recurso](informática)[recursos] del [Sistema operativo|sistema] para cualquier tipo de carga ejecutada en [z/OS], basándose en objetivos definidos por el [Administrador de sistemas|administrador]. Además, WLM permite disponer de datos que se pueden utilizar para repartir cargas dentro de un [Sysplex Paralelo].

## Características

En ordenadores centrales una gran cantidad de aplicaciones diferentes con muy distintos requerimientos se ejecutan simultáneamente, teniendo la necesidad de un acceso a recursos del sistema con un nivel de privilegio diferenciado, siempre según las exigencias del administrador del sistema sobre como repartir estos recursos. Por eso WLM es un componente constitutivo del sistema operativo para garantizar duraciones de ejecución fiables y acordes con las necesidades de la instalación.
WLM controla el reparto de recursos basándose en clases de servicio (Service Classes). Un mecanismo de clasificación permite asociar unidades de trabajo o aplicaciones a clases de servicio. El administrador del sistema lleva a cabo tal clasificación mediante atributos que son aplicables a los distintos programas existentes para z/OS: atributos pueden ser nombres de usuarios, nombres de transacciones, clases de transacciones o nombres de programas que se utilicen en aplicaciones. Paso siguiente, el administrador define un objetivo (Goal) para las classes de servicio. Como objetivo se puede entender o bien el tiempo medio de respuesta de las unidades de trabajo que son ejecutadas en una clase, o un porcentaje de las unidades de trabajo que necesitan finalizar dentro de un tiempo definido o un objetivo basado en la velocidad de ejecución. El tipo de objetivo adecuado para una clase de servicio depende de la cantidad de información acerca de las aplicaciones que esté a disposición del Workload Manager. Aparte del objetivo, a cada clase de servicio se la adjudica una importancia (Importance), mediante la cual se fija que clases deben ser favorecidas y cuales serán las perjudicadas siempre y cuando recursos del sistema escaseen.
El mecanismo de regulación de WLM controla el acceso a los recursos del sistema durante el tiempo de ejecución. En primer lugar se recogen datos del sistema operativo z/OS: información sobre unidades de trabajo en estado de espera, la cantidad de unidades de trabajo en estado de ejecución y la duración de estas últimas. Los datos se agrupan según las clases de servicio que corresponden a la clasificación realizada por el administrador del sistema. Estas informaciones sirven para calcular hasta que nivel se ha conseguido alcanzar el objetivo de una clase de servicio. Si es necesario, WLM ajusta el acceso a recursos del sistema para esta clase, siempre sujeto tanto a la importancia de la clase como a hasta que grado esta haya cumplido su objetivo. En concreto, la clase con mayor importancia que falle su objetivo por margen más amplio será la primera en beneficiarse de recursos adicionales (Receiver), mientras que clases con menor importancia serán más propensas a donar recursos (Donor), siempre que utilicen los mismos recursos y estos escaseen. El mecanismo de regulación en z/OS se repite cada 10 segundos, mientras que todo el tiempo intermedio es aprovechado para acumular datos para el próximo intervalo de cálculos. Un intervalo de cálculos concluirá en cuanto se pueda ejecutar un ajuste en beneficio de una clase de servicio.
WLM controla el acceso a procesadores, unidades de entrada/salida del sistema, el acceso a memoria y el suministro de espacios de direcciones de memoria (Address Spaces) para programas. Concretamente, el acceso a procesadores es controlado a través de prioridades de ejecución (Dispatch Priorities). Para ello se adjudica la misma clase de servicio a todas las unidades de trabajo sin que esta clasificación de prioridades necesite coincidir con la importancia de la clase de servicio, sino que sus determinantes son la utilización actual del sistema así como las exigencias de la clase y el cumplimiento de su objetivo. Esta estrategia del WLM en z/OS, que se podría denominar como gestión de cargas de trabajo orientada a objetivos, contrasta con otras que optan por dar acceso por partes iguales o fijas a los recursos del sistema y que predominan en gestores de cargas en sistemas Unix.
Otra distinción fundamental de WLM en z/OS es su alto grado de colaboración con las aplicaciones y los programas existentes para el sistema operativo z/OS; una comunicación continua entre WLM y las aplicaciones permite reconocer transacciones iniciadas por las aplicaciones para poder controlarlas adecuadamente por WLM. Hasta el día de hoy esto es una característica única de WLM en z/OS, mientras que el control en otros sistemas está restringido a procesos.
Aparte del control de recursos, WLM en z/OS también pone a disposición una multitud de interfaces para componentes destinadas a la repartición de cargas, de modo que estas reciban informaciones del sistema para poder repartir cargas inteligentemente entre un o varios sistemas. Además, WLM en z/OS gestiona entornos de Sysplex Paralelos en los que varios sistemas z/OS pueden ser combinados, y por lo tanto ofrece una imagen uniforme de los sistemas hacia el exterior.
Finalmente, WLM en z/OS dispone de rutinas para el apoyo del balanceo de cargas entre varios sistemas lógicos ubicados en un solo sistema físico y para el control de acceso a sistemas de almacenamiento en función del trabajo que lo requiera.