ES2228607T3 - Gestion de la carga de trabajo en un entorno informatico. - Google Patents

Gestion de la carga de trabajo en un entorno informatico.

Info

Publication number
ES2228607T3
ES2228607T3 ES00962734T ES00962734T ES2228607T3 ES 2228607 T3 ES2228607 T3 ES 2228607T3 ES 00962734 T ES00962734 T ES 00962734T ES 00962734 T ES00962734 T ES 00962734T ES 2228607 T3 ES2228607 T3 ES 2228607T3
Authority
ES
Spain
Prior art keywords
partition
resources
logical
cpu
group
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
ES00962734T
Other languages
English (en)
Inventor
Jeffrey Kubala
Jeffrey Nick
Peter IBM United Kingdom Limited YOCOM
Catherine Eilert
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US09/407,212 external-priority patent/US6587938B1/en
Priority claimed from US09/407,391 external-priority patent/US7007276B1/en
Priority claimed from US09/408,470 external-priority patent/US7051188B1/en
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Application granted granted Critical
Publication of ES2228607T3 publication Critical patent/ES2228607T3/es
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Debugging And Monitoring (AREA)
  • Hardware Redundancy (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

Un método para administrar carga de trabajo en un entorno de ordenador, comprendiendo dicho método: determinar que se ha ajustado una asignación de recursos de CPU a una partición de dicho entorno de ordenador; y ajustar dinámicamente dicha asignación a través de dicha partición y otra partición de dicho entorno de ordenador; en el que dicha partición comprende una o más clases de servicio de trabajo, y en el que dicha determinación está caracterizada porque comprende: proyectar un efecto en una clase de servicio seleccionada de dichas una o más clases de servicio de aumentar un peso de procesador asociado con dicha partición (600); proyectar un efecto en una o más clases de servicio de dicha otra partición de disminuir un peso de procesador de dicha otra partición (604), y determinar si el beneficio a dicha clase de servicio seleccionada anula un impacto negativo para el trabajo de dicha otra partición (606), en que el ajuste ha de hacerse cuando el beneficio anule el impacto negativo.

Description

Gestión de la carga de trabajo en un entorno informático.
El invento se refiere, en general, a administrar o gestionar cargas de trabajo dentro de un sistema de ordenadores, y, en particular, a administrar cargas de trabajo en un sistema con particiones.
La constitución de particiones lógicas permite el establecimiento de una pluralidad de imágenes de sistema dentro de una única máquina física o complejo de procesador central (CPC). Cada imagen del sistema es capaz de funcionar como si fuera un sistema de ordenador separado. Es decir, cada partición lógica puede ser reiniciada independientemente, cargada inicialmente con un sistema operativo que puede ser diferente para cada partición lógica, y hecha funcionar con diferentes programas de software usando diferentes dispositivos de entrada/salida (E/S).
Ejemplos de los sistemas de ordenador con particiones lógicas están descritos, por ejemplo, en el documento US 4.564.903, concedido el 14 de Enero de 1986; el documento US 4.843.541, concedido el 27 de Junio de 1989; y el documento US 5.564.040, concedido el 8 de Octubre de 1996, y el documento EP-A2-0917056 que describe un sistema de ordenador con una pluralidad de particiones que proporciona capacidades de migración de recursos y escalabilidad.
Las realizaciones comerciales de sistemas con particiones lógicas incluyen, por ejemplo, procesadores IBM S/390® con la característica de Administrador™ de Recursos de Procesador/Sistemas (PR/SM™), que está descrito, por ejemplo, en la publicación de IBM Guía de Planificación de Administrador de Recursos de Procesador/Sistemas, GA22-7236-04, Marzo de 1999.
Un aspecto importante de un sistema con particiones lógicas es la administración de cargas de trabajo que se ejecutan dentro de las particiones de ese sistema. En sistemas S/390, por ejemplo, se usan administradores de cargas de trabajo para administrar la carga de trabajo dentro y entre las particiones. Los administradores de cargas de trabajo intentan equilibrar la carga de trabajo de las particiones moviendo trabajo a los recursos físicos del sistema. A fin de mover el trabajo, sin embargo, es importante asegurar que los datos necesitados por el trabajo cambiado de sitio están en la situación movida. Esta necesidad a menudo restringe el movimiento de trabajo. Así, es deseable mejorar más la administración de cargas de trabajo en sistemas de ordenador.
Por consiguiente, el invento proporciona un método, sistema y programa de ordenador como se ha definido en las reivindicaciones adjuntas.
En una realización, el método incluye la administración de cargas de trabajo a través de dos o más particiones de una pluralidad de particiones del entorno de ordenador, en el que la administración incluye ajustar dinámicamente la asignación de un recurso que se puede compartir de al menos una partición de las dos o más particiones, de tal modo que los objetivos de la carga de trabajo de las dos o más particiones estén siendo equilibradas.
En otra realización del presente invento, un método de administrar carga de trabajo de un entorno de ordenador incluye la administración de carga de trabajo a través de dos o más particiones de una pluralidad de particiones del entorno de ordenador, en el que dos o más particiones comparten al mismo tiempo un recurso que se puede compartir. La administración incluye ajustar dinámicamente la asignación del recurso que se puede compartir de al menos una partición de las dos o más particiones.
Una realización preferida del invento permite la redistribución dinámica de recursos que se pueden compartir a través de particiones lógicas bajo la dirección de un administrador de carga de trabajo. Estos recursos incluyen, por ejemplo, recursos de CPU, recursos de procesador lógico, recursos de E/S, coprocesadores, recursos de canal, adaptadores de red, y recursos de memoria. Típicamente, el ajuste dinámico de recursos físicos, de acuerdo con objetivos de carga de trabajo, es proporcionado a través de un administrador de carga de trabajo (WLM), sysplex e integración PR/SM sin requerir compartir datos de sysplex paralelos.
Adicionalmente, en la realización preferida, se ha previsto la administración dinámica WLM de recursos CPU a través de particiones lógicas (LPAR); así como la administración dinámica (CHPID) de trayecto de canal a través de los LPAR; formación de colas de prioridad de E/S basadas en WLM en el subsistema de canal; y administración dinámica del WLM de memoria a través de los LPAR. En una puesta en práctica, los grupos de LPAR permiten compartir recurso a través de la asignación de recursos basada en la prioridad.
Otra realización del invento proporciona un método de administrar grupos de particiones de un entorno de ordenador, incluyendo la identificación de un grupo de una pluralidad de particiones del entorno de ordenador. El método incluye además determinar un recurso que se puede compartir para ser asignado al grupo, en el que al menos una parte del recurso que se puede compartir es asignado a la pluralidad de particiones del grupo.
Otra realización proporciona un método de administrar grupos de particiones de un entorno de ordenador, que incluye determinar que un grupo del entorno de ordenador ha sido modificado, en el que el grupo incluye una pluralidad de las particiones del entorno de ordenador; y ajustar dinámicamente, dentro de la asignación de grupo, un recurso del grupo, en respuesta a la determinación.
En la realización preferida, se consideran recursos para los grupos a fin de determinar qué recursos han a ser asignados a un grupo particular y forzar la asignación de aquellos recursos. Considerar proporciona un manejo en los recursos que están asignados para cambiar, de modo que el WLM puede tomar propias decisiones de lo que hay que hacer a continuación. Considerar permite que subconjuntos de recursos estén previstos en la máquina de tal manera que la máquina pueda comprender lo que quiere hacer el software y el software comprenda la configuración de la máquina.
Otra realización preferida del invento proporciona un método para administrar recursos de una unidad de tratamiento central (CPU) dentro de un entorno de ordenador, incluyendo determinar que una asignación de recursos de CPU a una partición del entorno de ordenador ha de ser ajustada, y ajustar dinámicamente la asignación a través de la partición y otra partición del entorno de ordenador.
Preferiblemente, el ajuste dinámico es en respuesta a objetivos de carga de trabajo de al menos la partición, y es realizado a través de una pluralidad de particiones del entorno de ordenador.
En la realización preferida, un administrador de carga de trabajo distribuye recursos de CPU a través de particiones lógicas ajustando dinámicamente los pesos del procesador CPU asociados con las particiones lógicas. El WLM comprende, por ejemplo, cuando una carga de trabajo importante está retrasada porque el peso de la partición que está siendo ejecutada dentro es muy bajo. El WLM puede ayudar a esta carga de trabajo, por ejemplo aumentando el peso de esta partición y disminuyendo el peso de otra partición, proporcionando por ello una capacidad de CPU adicional a la carga de trabajo importante. Esto permite que los recursos de CPU sean movidos dinámicamente a las particiones necesitadas, cuando los requisitos de carga de trabajo cambian.
El presente invento proporciona además programas de ordenador para poner en práctica los métodos anteriores. Tales programas de ordenador comprenden generalmente instrucciones ejecutables por una máquina, que están codificadas en un medio utilizable por ordenador o dispositivo de almacenamiento de programa legible por una máquina, y pueden ser incluidos como una parte de un sistema de ordenador o vendidos de forma separada (posiblemente por transmisión sobre una red).
El presente invento también proporciona sistemas que corresponden a los métodos anteriores, formados típicamente por la combinación de un programa de ordenador para poner en práctica un método con hardware apropiado.
Se apreciará que tales programas de ordenador y sistemas se beneficiarán de las mismas características preferidas que los métodos del invento.
A continuación se describirán diferentes realizaciones preferidas del invento en detalle sólo a modo de ejemplo con referencia a los dibujos siguientes:
La fig. 1a representa un ejemplo de un entorno de ordenador;
La fig. 1b representa otra realización de un entorno de ordenador;
La fig. 2 representa componentes adicionales de un entorno de ordenador;
La fig. 3 representa un ejemplo de grupos de partición lógica;
Las figs. 4a-4b representan un ejemplo de la lógica asociada con una partición que une un grupo;
La fig. 5 representa una realización de la lógica asociada con retirar o eliminar una partición de un grupo;
La fig. 6 representa una realización de la lógica asociada con la determinación de si un peso de partición puede ser aumentado para ayudar a una clase de servicio receptor de la partición;
La fig. 7 representa una realización de la lógica asociada ajustando dinámicamente la configuración de procesadores lógicos;
La fig. 8 representa una realización de un subsistema de canal;
La fig. 9 representa una realización de la lógica asociada con la selección de una operación de E/S que ha de ser procesada;
La fig. 10 representa una realización de la lógica asociada con la determinación de si una configuración de E/S ha de ser ajustada;
La fig. 11 representa una realización de la lógica asociada con el agrupamiento de datos de la fig. 10.
La fig. 12 representa una realización de la lógica asociada con la comprobación de equilibrio de la fig. 10;
Las figs. 13a-13b representan una realización de la lógica asociada con la corrección de un desequilibrio de una configuración de E/S;
La fig. 14 representa una realización de la lógica asociada con la determinación de los subsistemas afectados;
La fig. 15 representa una realización de la lógica asociada con el ajuste de un objetivo de velocidad E/S explícito; y
Las figs. 16a-22c representan distintos ejemplos de configuraciones de E/S usadas en la determinación de entropía.
Hay previstas capacidades de administración de carga de trabajo que permiten el ajuste dinámico de la asignación de recursos de un entorno de ordenador para equilibrar la carga de trabajo de ese entorno. En un ejemplo, el entorno de ordenador incluye una pluralidad de particiones lógicas y la carga de trabajo es administrada a través de dos o más de las particiones.
Se ha descrito una realización de un entorno de ordenador usando capacidades de administración de carga de trabajo con referencia a la fig. 1a. Un entorno de ordenador 100 está basado, por ejemplo, en la Arquitectura de Sistemas de Empresa (ESA)/390 ofrecida por International Business Machines Corporation, Armonk, Nueva York. La ESA/390 está descrita en una publicación de IBM titulada "Arquitectura de Sistemas de Empresa/390 Principios de Funcionamiento," Publicación IBM nº SA22-7201-04, Junio de 1997. Un ejemplo de un entorno de ordenador basado en ESA/390 es el Servidor de Empresa Paralelo 9672 ofrecido por International Business Machines Corporation.
El entorno de ordenador 100 incluye, por ejemplo, un complejo procesador central (CPC) 102 que tiene uno o más procesadores centrales 106 (por ejemplo, CP1-CP4), una o más particiones 108 (por ejemplo, particiones lógicas (LP1-LP4)), y al menos un administrador de partición lógica 110, cada uno de los cuales está descrito más adelante.
Los procesadores centrales 106 son recursos de procesador físico que están asignados a las particiones lógicas. En particular, cada partición lógica 108 tiene uno o más procesadores lógicos (mostrados no por separado para mayor claridad), cada uno de los cuales representa todo o una parte de un procesador físico 106 asignado a la partición. Los procesadores lógicos de una partición particular 108 pueden estar o bien dedicados a la partición (de modo que el recurso de procesador subyacente 106 esté reservado para esa partición) o bien compartidos con otra partición (de modo que el recurso de procesador subyacente esté potencialmente disponible para otra partición).
En el ejemplo particular mostrado, cada una de las particiones lógicas LP1-LP4 funcionan como un sistema separado que tiene un sistema operativo residente 112 (que puede diferir para cada partición lógica) y una o más aplicaciones 114. En una realización, el sistema operativo 112 es el OS/390™ o el sistema operativo MVS/EGA™ ofrecido por International Business Machines Corporation.
Adicionalmente, cada sistema operativo (o un subconjunto del mismo) incluye un administrador de carga de trabajo 116 para administrar la carga de trabajo dentro de una partición y entre particiones. Un ejemplo de un administrador de carga de trabajo es el WLM ofrecido por International Business Machines Corporation. El WLM está descrito, por ejemplo, en el documento US-5.473.773, concedido el 5 de Diciembre de 1995; y el documento US-5.675.739, concedido el 7 de Octubre de 1997.
Las particiones lógicas 108 son administradas por un administrador 110 de particiones lógicas puesto en práctica por un microcódigo que funciona en procesadores 106. Las particiones lógicas 108 (LP1-LP4) y el administrador 110 de particiones lógicas comprenden cada uno, uno o más programas que residen en partes respectivas del almacenamiento central asociado con los procesadores centrales. Un ejemplo del administrador 110 de particiones lógicas es el PR/SM.
En otra realización de un entorno de ordenador, dos o más complejos de procesador central son acoplados entre sí para formar un sysplex, como se ha representado en la fig. 1b. Como ejemplo, un complejo de procesador central (CPC) 102 está acoplado a uno o más CPC 120 mediante, por ejemplo, de una instalación de acoplamiento 122.
En el ejemplo mostrado, el CPC 120 incluye una pluralidad de particiones lógicas 124 (por ejemplo, LP1-LP3), que son administradas por un administrador 126 de particiones lógicas. Una o más de las particiones lógicas incluye un sistema operativo, que puede tener un administrador de carga de trabajo y uno o más programas de aplicación (no mostrados en este ejemplo por claridad). Adicionalmente, el CPC 120 incluye una pluralidad de procesadores centrales 128 (por ejemplo, CP1-CP3), cuyos recursos están asignados entre la pluralidad de particiones lógicas. En particular, los recursos están asignados entre uno o más procesadores lógicos 130 de cada partición. (En otras realizaciones, cada CPC puede tener una o más particiones lógicas y uno o más procesadores centrales).
La instalación de acoplamiento 122 (a.k.a., un procesador de almacenamiento exterior estructurado (SES)) contiene memoria accesible por los complejos procesadores centrales y realiza operaciones solicitadas por programas en los CPC. La instalación de acoplamiento es usada para compartir información de estado usada para tomar decisiones de redistribución de recursos compartidos. (En una realización, cada complejo de procesador central está acoplado a una pluralidad de instalaciones de acoplamiento). Los aspectos del funcionamiento de una instalación de acoplamiento están descritos en detalle en referencias tales como Elko y col., US-5.317.739, concedida el 31 de Mayo de 1994; US-5.561.809, concedida el 1 de Octubre de 1996; US-5.706.432, concedida el 6 de Enero de 1998; y las patentes y solicitudes referidas a ellas.
En una realización, uno o más de los procesadores centrales están acoplados al menos a un subsistema de canal, que es usado en comunicación con dispositivos de E/S. Por ejemplo, un procesador central 200 (fig. 2) está acoplado a un almacenamiento principal 202 y al menos a un subsistema de canal 204. El subsistema de canal 204 está además acoplado a una o más unidades de control 206. Las unidades de control están a continuación acopladas a uno o más dispositivos de E/S 208.
El subsistema de canal dirige el flujo de información entre los dispositivos de entrada/salida y la memoria principal. Alivia las unidades de tratamiento central de la tarea de comunicar directamente con los dispositivos de entrada/salida y permite procesar datos para proseguir al mismo tiempo con el tratamiento de entrada/salida. El subsistema de canal usa uno o más trayectos de canal 214 como enlaces de comunicación en la administración del flujo de información a o desde los dispositivos de entrada/salida 208.
Cada trayecto de canal 214 incluye, por ejemplo, un canal 210 de subsistema de canal 204, una unidad de control 206 y un enlace 212 entre el canal y la unidad de control. En otras realizaciones, un trayecto de canal puede tener múltiples canales, unidades de control, y/o enlaces. Además, en otro ejemplo, es también posible tener uno o más cambios dinámicos como parte del trayecto de canal. Un cambio dinámico está acoplado a un canal y a una unidad de control y proporciona la capacidad de interconectar físicamente cualesquiera dos enlaces que están unidos al cambio. Se han descrito otros detalles relativos a subsistemas de canal en el documento US-5.526.484, concedido el 11 de Junio de 1996.
En una realización preferida del presente invento, distintos recursos físicos son redistribuidos dinámicamente a través de particiones lógicas de un entorno de ordenador bajo la dirección de uno o más administradores de carga de trabajo. Esta redistribución dinámica es transparente a los subsistemas de aplicación. Como ejemplos, los recursos físicos que han de ser redistribuidos incluyen recursos de CPU, recursos de procesador lógico, recursos de E/S, coprocesadores, recursos de canal, adaptadores de red, y recursos de memoria. Como un ejemplo, un coprocesador es un microprocesador (distinto de una CPU) dentro de un CPC que sirve para a una función particular. Ejemplos de coprocesadores incluyen, por ejemplo, subsistemas de canal, tarjetas de adaptador de red y coprocesadores criptográficos. Los recursos físicos anteriores son ofrecidos solamente como ejemplos; otros recursos que se pueden compartir pueden también ser redistribuidos.
A fin de facilitar la redistribución dinámica de recursos, en una realización, son agrupadas juntas particiones lógicas a fin de compartir los recursos entre las particiones del grupo. Cada grupo puede variar de tamaño desde 1 partición a n particiones. (En un ejemplo, uno o más de los grupos incluyen una o más particiones, pero menos que todas las particiones del entorno de ordenador). En particular, cada grupo incluye, por ejemplo, una o más imágenes de sistema operativo que funcionan en dominios independientes de una máquina, que son administrados por una función administradora de carga de trabajo común para distribuir cargas de trabajo y recursos. En un ejemplo, estos dominios son particiones lógicas que funcionan en un modo compuesto por particiones lógicas y los sistemas operativos OS/390 que funcionan en las particiones lógicas. Las particiones lógicas de un grupo pueden ser un subconjunto de las particiones de un sistema (por ejemplo, un CPC) o un sysplex, un sistema entero o sysplex, o pueden ser particiones de sysplex o sistemas diferentes (en, por ejemplo, un único CPC).
Una realización de dos grupos de particiones lógicas (o agrupaciones) de un complejo procesador central está representada en la fig. 3. Como se ha mostrado, hay un Grupo de Partición Lógica A 300 y un Grupo de Partición Lógica B 302, cada uno de los cuales incluye una o más particiones lógicas. El agrupamiento de particiones lógicas permite compartir recursos entre las particiones de un grupo a través de la asignación de recursos (por ejemplo, asignación de recursos basada en la prioridad).
Como ejemplos, los recursos que han de ser compartidos incluyen recursos de CPU, recursos de E/S, y memoria, así como coprocesadores o cualesquiera otros recursos que se pueden compartir que la máquina podría proporcionar. Un grupo particular de particiones lógicas puede o no tener acceso a todos los recursos de una máquina particular. De hecho, múltiples grupos de particiones lógicas podrían ser definidos para funcionar al mismo tiempo en una sola máquina. A fin de administrar efectivamente cada grupo de particiones lógicas, los recursos que constituyen un grupo particular de particiones lógicas son efectivamente considerados de ese grupo.
La delimitación incluye identificar qué recursos son asignables a cada grupo. En particular, la delimitación define qué recursos están restringidos al grupo y pueden ser administrados para el grupo. Las particiones lógicas que forman un grupo de particiones lógicas pueden ser conceptuadas como un contenedor de los recursos. Estos contenedores existen dentro de los límites de un conjunto total de recursos disponible para las particiones lógicas. En un ejemplo, este es el conjunto total de recursos disponible en un CPC particular.
Las particiones lógicas que forman un grupo particular de particiones lógicas (por ejemplo, Grupo de Particiones Lógicas A) están asignadas a una parte particular del recurso total que se puede compartir. Por ejemplo, supóngase que el recurso compartible es un recurso de CPU. Con recursos de CPU compartidos, las particiones lógicas que están incluidas en el Grupo de Particiones Lógicas A están asignadas a una parte particular del recurso de CPU de complejo de procesador central total. Estos recursos están siendo compartidos por las particiones lógicas dentro de un grupo particular, así como, potencialmente, con particiones lógicas en otros grupos de particiones lógicas y particiones lógicas no incluidas en ninguno de los grupos de particiones lógicas. Así, un administrador de carga de trabajo que está intentando tomar decisiones sobre recursos que se mueven dentro de un grupo (desde, por ejemplo, una partición en el grupo de particiones lógicas a otra partición en el grupo) es tener una comprensión de los recursos que comprende el grupo, así como una comprensión de qué contiene el mayor contenedor (por ejemplo, el CPC). Realimentación de mediciones (por ejemplo, estado de la información almacenada en la instalación de acoplamiento) usada para tomar decisiones sobre la administración de recursos de carga de trabajo debe ser suficiente para comprender los contenedores definidos por el cliente como antes.
Una vez se ha establecido esta comprensión, los cambios dirigidos por el administrador de carga de trabajo a las asignaciones de recursos en las particiones lógicas de un grupo dado son típicamente hechos de tal manera que conserven el tamaño del contenedor constante (es decir, los recursos asignados al grupo de particiones lógicas). Por ejemplo, supóngase que el recurso que ha de ser administrado es el recurso de CPU, y supóngase además que cada partición lógica está asignada a un peso de tratamiento de CPU que indica prioridad. A fin de administrar los pesos relativos a la CPU, la suma de los pesos relativos para las particiones lógicas en un grupo dado ha de permanecer constantes antes y después del cambio dirigido, por medio, por ejemplo, de un administrador de carga de trabajo. Esto mantiene la asignación especificada por el cliente de los recursos a los grupos y otras particiones lógicas presentes en la máquina.
A pesar de lo anterior, en algunos casos, puede ser deseable y posible que el grupo de particiones utilice recursos mayores que el contenedor definido, cuando los recursos no están siendo usados por sus propietarios designados. Sin embargo, tan pronto como ocurre discusión para los recursos, los recursos son administrados por el administrador (LPAR) de la partición lógica de acuerdo con los tamaños del contenedor definido (por ejemplo, pesos de tratamiento en este ejemplo). Puede haber, sin embargo, otros casos cuando el grupo no debe ser dejado expandirse más allá de su contenedor. Esto es también posible con delimitación. Otros recursos pueden necesitar ser completamente delimitados a un único grupo a fin de conseguir una imagen exacta de uso de los recursos. La limitación de este modo impide que particiones lógicas fuera de un grupo dado accedan a ese recurso.
Además de lo anterior, se ha prestado también consideración al efecto de cambios externos en la disponibilidad de recursos dentro de un grupo de particiones lógicas. Por ejemplo, un usuario puede cambiar la asignación de recursos mediante algún medio externo (no bajo dirección del administrador de carga de trabajo). Esto podría hacerse debido a un cambio en cargas de trabajo reales que están en una máquina o un desplazamiento en prioridades de negocio entre grupos y/o otras particiones lógicas. Cuando se han hecho estos cambios, estos cambios han de ser comprendidos por el administrador de carga de trabajo y los efectos de estos cambios han de ser distribuidos racionalmente. Los cambios podrían ocurrir cuando una partición lógica es añadida o retirada de un grupo; cuando alguna otra partición lógica exterior al grupo es añadida o retirada; o simplemente, cuando un cambio de peso de tratamiento es efectuado a través de medios externos. Cuando estos cambios externos son realizados, el tamaño del recipiente puede cambiar y el administrador de carga de trabajo es ahora el administrador de ese contenedor dimensionado de nuevo.
Cuando recursos atribuidos a una partición lógica particular de un grupo son cambiados externamente, puede ser necesaria una redistribución de recursos dentro de un grupo. Por ejemplo, cuando una partición lógica es eliminada de un grupo, el peso de tratamiento asociado con la partición lógica es eliminado del grupo. Si el peso asignado por el administrador de carga de trabajo corriente a la partición lógica es mayor que el peso de la partición lógica que está siendo eliminada (es decir, el peso de tratamiento asociado con la partición lógica inicialmente), la diferencia de peso es añadida a otras particiones lógicas en el grupo. Esto es hecho, por ejemplo, en proporción a la distribución existente de pesos en las otras particiones lógicas en el grupo. Si el peso asignado por el administrador de carga de trabajo corriente es menor que el peso inicial de la partición lógica, la diferencia de peso es restada de las otras particiones lógicas en el grupo. De nuevo, esto es hecho en proporción a las otras asignaciones de peso de la partición lógica, como un ejemplo.
Como se ha descrito antes, un grupo está delimitado con el fin de obtener un manejo sobre los recursos que son asignados a un grupo y los recursos que son permitidos que cambien, de manera que el administrador de carga de trabajo pueda tomar decisiones apropiadas de qué hacer a continuación. El marco identifica los grupos y proporciona información de nuevo al programa que el programa puede comprender. Cuando un grupo es modificado, los recursos son dinámicamente ajustados para satisfacer la modificación.
En una realización, puede haber grupos separados (agrupaciones) para cada recurso. Por ejemplo, el Grupo A de Particiones Lógicas puede ser para recursos de CPU, mientras el Grupo B de Particiones Lógicas puede ser para recursos de E/S. Sin embargo, en otras realizaciones, es también posible que un grupo de particiones lógicas es para un subconjunto o la totalidad de los recursos.
A fin de establecer el marco del grupo LPAR, en un ejemplo, las particiones lógicas se identifican a sí mismas a uno o más grupos de particiones. Una realización de la lógica asociada con la unión de un grupo está descrita con referencia a las figs. 4a-4b. Por ejemplo, para unir un grupo de particiones lógicas, el sistema operativo (por ejemplo, OS/390) que funciona en una partición lógica indica al administrador del LPAR de qué grupo de LPAR la partición lógica ha de ser parte, OPERACIÓN 400. Como ejemplo, una instrucción es usada para pasar el nombre del grupo LPAR al administrador de LPAR. El sistema operativo especifica un nombre para cada tipo de recurso que ha de ser administrado dentro de los grupos LPAR. Así, si hay otros recursos, PREGUNTA 402, entonces otros nombres son especificados. Por ejemplo, se da un nombre de grupo para recursos de la CPU y se da otro nombre para recursos de E/S. El mismo nombre de grupo LPAR puede ser especificado para cada tipo de recurso, si se desea.
Esta declaración por OS/390 o bien establece un nuevo grupo LPAR sobre la máquina (si la partición lógica es la primera partición lógica que usa ese nombre) o hace que esta partición lógica se una a un grupo LPAR existente del mismo nombre para ese tipo de recurso. Por ejemplo, una vez que se ha especificado el nombre del grupo, OPERACIÓN 404 (fig. 4b), se toma una determinación como si es un nuevo nombre, PREGUNTA 406. Si es así, un nuevo grupo es creado, OPERACIÓN 408. De otro modo, un grupo existente es unido, OPERACIÓN 410. Después de ello, los recursos son delimitados al grupo, OPERACIÓN 412.
En particular, los recursos del tipo de grupo que están limitados al grupo LPAR son ahora hechos disponibles para que la partición lógica los utilice, si el WML que funciona en el grupo LPAR determina que debe y cuando lo haga. Los recursos de un tipo particular para un grupo de LPAR que necesita delimitación incluyen al menos dos variedades: recursos aditivos y recursos fijos.
Recursos aditivos: En algunos casos, unir un grupo de LPAR inherentemente añade recursos al grupo de LPAR que justo ha unido la parte lógica. Un ejemplo de esto es el peso de tratamiento de la CPU, que es, por ejemplo, asignada por el cliente a una partición lógica en una consola de hardware. El peso de tratamiento corriente (en uso) de la partición lógica es inicializado desde este peso asignado por el cliente, cuando la partición lógica es activada. Cuando la partición lógica une un grupo de LPAR para recursos de CPU, el peso de tratamiento asignado por el cliente para esa partición lógica resulta parte del peso de tratamiento total disponible para usar dentro del grupo de LPAR, y así, puede ser reasignada dentro del grupo de LPAR por el WML. La partición lógica que justo ha unido el grupo de LPAR ahora tiene el potencial para usar el conjunto mayor de recursos del grupo de LPAR, al que se hizo justo una contribución.
Recursos Fijos: es algunos casos, un conjunto de recursos es predefinido como perteneciente a un grupo particular de LPAR. Un ejemplo de esto son los trayectos de canal administrados (flotante). Un trayecto de canal administrado es un trayecto de canal cuyos recursos pueden ser reasignados para ayudar a conseguir objetivos de carga de trabajo. El conjunto de los trayectos de canal administrados para usar por un grupo de LPAR particular es inicialmente definido mediante un proceso de definición de configuración de E/S que asocia trayectos de canal (CHPID) con un grupo de LPAR. Cuando una partición lógica se una a este grupo de LPAR, es ahora permitido acceder a este conjunto de trayectos de canal. La partición lógica por sí misma no contribuye a nada a este grupo común de recursos. (Este grupo común de recursos puede ser aún cambiado dinámicamente, pero el punto es que los recursos no vengan y vayan como particiones lógicas que se unen y dejan un grupo de LPAR).
El marco de LPAR puede también ser hecho efectivo de modo diferente para recursos que dependen del tipo de recurso.
Recursos Aditivos: El sistema operativo en un grupo de LPAR es capaz de preguntar al conjunto completo de recursos de este tipo para el grupo de LPAR. Como ejemplo, para pesos de tratamiento de la CPU, esto es llevado a cabo mediante una instrucción. El sistema operativo aprende el conjunto total de este tipo de recurso dentro del grupo de LPAR, la asignación de los recursos a las particiones lógicas en el grupo, y el tamaño completo del grupo común de recursos disponible en la máquina corriente. Todos estos componentes son usados para comprender cuánta parte del recurso físico total ha de ser asignada a una partición lógica. El sistema operativo actualiza entonces las asignaciones a las particiones lógicas en el grupo de LPAR para reasignar recursos dentro del grupo. El sistema operativo no es dejado, en un ejemplo, que cambie la cantidad total de recurso asignado al grupo de LPAR. El administrador de LPAR hace efectivo esto asegurando que todas las partes del grupo de LPAR son tenida en cuenta para ello en una actualización y particiones no lógicas fuera del grupo de LPAR tengan sus recursos afectados.
Recursos Fijos: El sistema operativo en un grupo de LPAR pregunta el conjunto de recursos que es asociado con su grupo de LPAR para este tipo de recurso. Por ejemplo, con trayectos de canal administrados, una lista de trayectos de canal administrados que son definidos para un grupo particular de LPAR puede ser recuperado desde el administrador de LPAR mediante una instrucción. El administrador de LPAR también protege estos recursos para estar seguro de que son solo utilizados por el grupo de LPAR apropiado. Para canales administrados, esto significa permitir sólo que un trayecto de canal administrado sea configurado en línea a una partición lógica que ha declarado un nombre de grupo de LPAR que coincide con el definido para el trayecto de canal administrado.
Cuando una partición lógica que es parte de un grupo de LPAR es reinicio, re-Ipled, o desactivación del sistema, cualquier afiliación que tenía la partición lógica con uno o más grupos de LPAR es eliminada. Una realización de la lógica asociada con la eliminación de una partición lógica desde un grupo está descrita con referencia a la fig. 5. Como parte del reinicio, el administrador de la partición lógica elimina un nombre o nombres de grupo de partición de LPAR declarados desde la partición lógica, OPERACIÓN 500. A continuación, una o más acciones distintas son realizadas para completar la retirada de asignación de recurso del grupo de LPAR para la partición lógica, dependiendo del recurso, PREGUNTA 502.
Si el recurso es un recurso aditivo, entonces sucede lo siguiente: recursos tales como este, que fueron añadidos a un grupo de LPAR cundo una partición lógica es unida al grupo de LPAR, son eliminados del grupo de LPAR, OPERACIÓN 504. Esto puede implicar un ajuste en la asignación real de este tipo de recurso a los miembros restantes del grupo de LPAR. Por ejemplo, en el caso de pesos de tratamiento, el peso de tratamiento inicial para la partición lógica que deja el grupo es ahora eliminado del marco del grupo de LPAR. Si el WML ha cambiado el peso de tratamiento real para la partición lógica, se necesita hacer ajustes. Si el peso de tratamiento corriente de la partición lógica es mayor que su peso de tratamiento inicial, la diferencia entre los dos es redistribuida a los miembros restantes del grupo de LPAR en proporción a sus pesos de tratamiento corriente. Si el peso de tratamiento corriente de la partición lógica es menor que su peso de tratamiento inicial, la diferencia entre los dos es eliminada de los miembros restantes del grupo de LPAR en proporción a sus pesos de tratamiento corrientes. El resultado de estos ajustes reestablece el contenedor de peso de tratamiento para el grupo de LPAR resultante.
Por otro lado, si el recurso es un recurso fijo, entonces ocurre lo siguiente: recursos tales como estos son simplemente eliminados de la configuración de la partición lógica que es reiniciada, OPERACIÓN 506. Por ejemplo, para trayectos de canal administrados, los trayectos de canal son desconfigurados de la partición lógica que es reiniciada. Esto reestablece de nuevo que solo los miembros del grupo de LPAR tienen acceso al recurso del grupo de LPAR.
Debe observarse también que algunos recursos administrados por el WML en un entorno de grupo de LPAR pueden no tener una necesidad para el marco del grupo. Un ejemplo de tal recurso es el número de procesadores centrales lógicos (CP) en línea para una partición lógica. El comportamiento efectivo de una partición lógica particular en un grupo de LPAR puede estar significativamente influenciado por el número de CP lógicos que están en línea con la partición lógica. El número de CP lógicos que una partición lógica puede tener definido y/o en línea es una característica de una partición lógica si está o si no está en un grupo de LPAR, así este recurso no forma parte realmente de un grupo común mayor de recursos. Su efecto en un grupo de LPAR sin embargo es que puede cambiar qué tipo de carga de trabajo puede ser hecha funcionar efectivamente en un miembro del grupo de LPAR frente a otra.
En un ejemplo, un recurso que ha de ser compartido entre una pluralidad de particiones lógicas es un recurso de CPU. El administrador de carga de trabajo del OS/390 redistribuye recursos de CPU a través de particiones lógicas ajustando dinámicamente uno o más pesos relativos de procesador asociados con las particiones lógicas. El WML comprende cuando una carga de trabajo importante es retrasada porque el peso de la partición que está funcionando dentro es muy bajo. El WML puede ayudar a esta carga de trabajo aumentando el peso de esta partición y disminuyendo el peso de otra partición, proporcionando por ello capacidad de CPU adicional a la carga de trabajo importante. Los recursos de CPU se mueven dinámicamente a las particiones donde son necesarios, cuando cambian los requerimientos de carga de trabajo.
En una realización, el marco de la administración WML de pesos de partición lógica es un grupo de particiones lógicas. Como ejemplo, el WLM ajusta los pesos de partición lógica, pero mantiene constante la suma de los pesos de las particiones en el grupo. Manteniendo constante la suma, conserva el mismo recurso de CPU completo asignado al grupo con relación a otros grupos independientes en el mismo ordenador físico. Por ello, cuando el WML aumenta el peso de una partición, disminuye el peso de otra partición en el mismo grupo.
La administración de pesos de partición lógica es una mejora de las técnicas de asignación de recursos orientados a objetivos del WML, que están descritas, por ejemplo, en el documento US 5.473.773, concedido el 5 de Diciembre de 1995; y en el documento US 5.675.739 concedido el 7 de Octubre de 1997.
Como se ha descrito en esas patentes, el WML controla la asignación de recursos de CPU dentro de una partición lógica ajustando las prioridades de expedición de CPU. Las prioridades de expedición de CPU son asignadas para trabajar a un nivel de clase de servicio. Sin embargo, hay distintas situaciones en las que el ajuste de las prioridades de expedición no ayudan a la clase de servicio. Por ejemplo:
1)
La clase de servicio está ya sola en la mayor prioridad de expedición de la CPU permitida para trabajar sin sistema.
2)
Cambiar las prioridades de expedición de la CPU para ayudar a la clase de servicio tendrá un impacto negativo demasiado grande en otras clases de servicios que son de la misma o mayor importancia.
Así, cuando el WML encuentra que una clase de servicio está fallando sus objetivos debido al retraso de la CPU, que no puede ser ayudada ajustando prioridades de la CPU, el WML considera ajustar el peso de la partición asociada con la clase de servicio que falla.
La clase de servicio a la que el WML está considerando asignar recursos adicionales es denominada la clase de servicio receptora. Cuando el WML ha encontrado una clase de servicio receptora que falla objetivos debido al retraso de la CPU en una partición dada que no puede ser ayudada por una de las razones enumerada antes, el WML considera aumentar ese peso de la partición. Una realización de la lógica seguida por el WML para determinar si un peso de partición puede ser incrementado para ayudar a la clase de servicio receptora es descrita como sigue, con referencia a la fig. 6:
1)
Proyectar el efecto en la clase receptora de aumentar el peso de la partición, OPERACIÓN 600. Aumentar el peso de la partición aumenta la capacidad de CPU de la partición. Como la demanda de CPU del trabajo en la clase receptora se ha supuesto que es constante, aumentar la capacidad de CPU de la partición disminuye el porcentaje de esta capacidad que demanda la clase de servicio receptora. La proyección del beneficio a la clase de servicio receptora está basada en esta disminución en el porcentaje de capacidad de CPU disponible tanto de la clase de servicio receptora como del otro trabajo en la demanda del sistema.
2)
Encontrar otra partición en el grupo de particiones lógicas para ser una candidata a ver su peso reducido, OPERACIÓN 602. Esta partición es conocida como la partición donante candidata. La partición donante candidata es elegida, por ejemplo, buscando la partición en la que el trabajo menos importante ha de ser probablemente impactado disminuyendo el peso de la partición.
3)
Proyectar el efecto en todas las clases de servicios con trabajo funcionando en la partición donante candidata de reducir su peso, OPERACIÓN 604. Disminuir el peso de la partición donante candidata disminuye la capacidad de CPU de la partición donante candidata. Esta disminución en la capacidad de CPU significa que aumentará la demanda de CPU de las clases de servicio con trabajo funcionando en el donante candidato como un porcentaje de la capacidad del donante candidato. La proyección del efecto negativo de reducir el peso de donante candidato está basada en este aumento en el porcentaje de capacidad de CPU disponible que demandan estas clases de servicio.
4)
Determinar si este cambio en peso tiene valor neto, PREGUNTA 606. Es decir, el beneficio a la clase de servicio receptora anula el impacto negativo a trabajar en la partición donante candidata basada en los objetivos e importancia de las clases de servicio implicadas.
5)
Si ajustar los pesos tiene valor neto, poner en práctica el cambio propuesto para los pesos de la partición, OPERACIÓN 608. Si no hay valor neto, entonces se hace una determinación de si hay más particiones donantes candidatas, PREGUNTA 610. Si es así, es elegida otra partición donante candidata, OPERACIÓN 612, y el tratamiento continua en la operación 3, OPERACIÓN 604. Si no hay más particiones donantes candidatas, entonces el tratamiento finaliza, OPERACIÓN 614.
Para permitir que funcione el WML en una partición para hacer una proyección sobre el efecto de cambiar pesos de partición en el trabajo que funciona en otra partición, cada partición tiene acceso a una estructura de datos compartida que contiene datos de prestaciones acerca de cada partición lógica en el grupo. Estos datos de prestaciones del nivel de partición incluyen, por ejemplo:
\bullet Requerimientos de CPU de trabajo que funcionan en la partición por clase de servicio;
\bullet Como lo está haciendo de bien cada clase de servicio hacia su objetivo en la partición;
\bullet Uso de CPU por prioridad de expedición de CPU para la partición.
En una realización preferida del presente invento puesta en práctica en un sistema OS/390, esta estructura de datos compartida es construida y mantenida en una instalación de acoplamiento. Sin embargo, otros intentos de compartir datos podrían ser usados para poner en práctica esta estructura de datos tales como mensajes o disco compartido.
Lo descrito antes es una capacidad para redistribuir dinámicamente recursos de CPU de un entorno de ordenador. Los recursos son redistribuidos a través de particiones lógicas, como ejemplo, ajustando dinámicamente los pesos de la partición lógica.
Además para ajustar dinámicamente los recursos de CPU de un entorno de ordenador, los recursos del procesador lógico pueden también ser ajustados dinámicamente.
Una partición lógica está configurada con uno o más procesadores lógicos, que están distribuidos en las unidades de tratamiento central físicas de complejos de procesador central para ejecutar el trabajo. Para permitir que una partición consuma su capacidad de CPU asignada, procesadores lógicos suficientes han de estar configurados a la partición lógica. Por ejemplo, considérese el caso de la Partición Lógica A que funciona en un CPC con diez CPU. Si un administrador de carga de trabajo asigna a la Partición Lógica A el 50% de la capacidad del CPC, la Partición Lógica A necesita al menos cinco procesadores lógicos que estén configurados para ello. (Cinco procesadores lógicos podrían funcionar en cinco de las CPU o 50% de la capacidad de los CPC). Debe asignársele a la Partición Lógica A posteriormente el 95% de la capacidad de los CPC, la Partición Lógica A sería entonces configurada con diez procesadores lógicos. Como el WML puede ajustar dinámicamente la capacidad asignada a la Partición Lógica A con una configuración de procesador lógica definida estáticamente, diez procesadores lógicos son configurados a la Partición Lógica A con el fin de acomodar todas las asignaciones de capacidad posibles. Sin embargo, a la Partición Lógica A debe asignársele, por ejemplo, solo el 20% de la capacidad de los CPC, se plantean dos problemas desde los procesadores lógicos definidos estáticamente: 1) Cada uno de los diez procesadores lógicos, por término medio, será habilitado para consumir recursos físicos de la CPU a la velocidad de sólo 0,2 de una capacidad física de la CPU (20% de diez CPU dividido por diez procesadores lógicos es igual a 0,2 CPU por procesador lógico). Esto puede restringir severamente cargas de trabajo cuyo caudal es controlado por una sola tarea, ya que esa sola tarea será solamente capaz de ejecutar a 0,2 de la capacidad física de la CPU - esto es denominado a menudo como el efecto de motor corto; 2) La eficiencia de software y hardware es reducida significativamente cuando hay que administrar diez procesadores lógicos, cuando solo se requieren dos procesadores lógicos.
A fin de acceder a las deficiencias anteriores, la configuración de una partición lógica no es definida estáticamente, sino que en vez de ello es ajustada dinámicamente. En un ejemplo, es el WML el que administra la partición y hace el ajuste dinámico. El WML puede hacer esto para cada partición lógica de un entorno de ordenador (o dentro de un grupo de LPAR). Una realización de la lógica asociada con el ajuste dinámico de la configuración de los procesadores lógicos está descrita con referencia a la fig. 7.
Inicialmente, una partición lógica está configurada con el número mínimo de procesadores lógicos requeridos para permitirla consumir la capacidad asignada a la partición lógica por el administrador de carga de trabajo (o la capacidad que es usada realmente, si es mayor), OPERACIÓN 700. Cuando la asignación de capacidad de la partición lógica (o uso de capacidad) cambia, PREGUNTA 702, se hace una evaluación para determinar si el número de procesadores lógicos configurado a la partición lógica debe ser alterado, OPERACIÓN 704. En un ejemplo, el número de procesadores lógicos configurado a una partición lógica permanece próximo al número de CPU físicas necesario para proporcionar la capacidad de CPC asignada a (o usada por) una partición lógica. Así, cada procesador lógico ejecuta próximo a la capacidad de una CPU física y el número de procesadores lógicos a administrar es minimizado.
Con el fin de hacer la evaluación de si cambiar la configuración lógica, se usa la siguiente ecuación en un ejemplo:
L= piso[max(W,U)xP+1.5]
\hskip0.5cm
sujeto a un máximo de L=P,
donde
L=número de procesadores lógicos configurados a una partición lógica;
W=porcentaje de capacidad de CPC asignada a la partición lógica;
U=porcentaje de la capacidad de CPC que es usada corrientemente por la partición lógica; y
P=número de CPU físicas en un CPC, OPERACIÓN 705.
L es evaluado por el administrador de carga de trabajo basado en los valores corrientes de P, W y U a, por ejemplo, intervalos regulares y frecuentes (por ejemplo cada 10 segundos). Se usan umbrales para determinar si el valor real de L (L-act) para la partición lógica debe ser aumentado o disminuido. Si el valor de L calculado de nuevo (L-calc) es mayor que el valor corriente de L-act, PREGUNTA 706, luego L-act es aumentado a L-calc, OPERACIÓN 708. De otro modo, si L-calc es un valor inferior en dos o más al de L-act, PREGUNTA 710, luego L-act es ajustado a un valor de L-calc menos uno, OPERACIÓN 712. Si L-calc es igual a L-act o solamente un valor inferior en uno a L-act, no se hace cambio en el valor de L-act para la partición lógica, OPERACIÓN 714. Mediante el uso de estos umbrales, se evitan cambios innecesarios de L-act debidos a pequeñas fluctuaciones de carga de trabajo, mientras aún se responde a demandas de cargas de trabajo de capacidad rápidamente creciente.
Para más ilustración, considérese el siguiente ejemplo: Supóngase P=10 W=U=24%. Una configuración estática de procesadores lógicos requeriría L(estática)=10 para manejar el caso W debe crecer a más del 90%. Sin embargo, en una realización preferida del presente invento: L(Dinámica)=piso[max)(.24,.24)x10+1,5]x3. Así, en este ejemplo, L(estática) se restringiría a ejecutar una única tarea a 0,24 de una CPU física, mientras que L(Dinámica) permite ejecutar una sola tarea a 0,80 de una CPU física, proporcionando con ello un incremento del 233% en caudal para cargas de trabajo controladas por prestación de una sola tarea. Adicionalmente, la eficiencia de software y hardware es significativamente mejorada ya que, en este ejemplo, solamente se administran 3 procesadores lógicos en vez de los diez procesadores lógicos necesarios para L(estática).
Otro recurso que puede compartirse de un entorno de ordenador que ha de ser administrado es un recurso asíncrono, tal como un recurso de E/S. En particular, han de ser administradas operaciones o solicitudes de E/S dentro de un coprocesador (por ejemplo un subsistema de canal). Esta administración incluye la priorización de las operaciones de E/S, de tal modo que las operaciones de E/S con una mayor prioridad resulten procesadas más rápido, y/o a las operaciones de E/S con una mayor prioridad le son asignadas más ancho de banda del canal.
En sistema de ordenadores multiprogramados de gran escala contemporáneos, la iniciación y ejecución de largos procesos de funcionamiento, tales como operaciones de E/S para leer, escribir, y controlar dispositivos de E/S unidos, es típicamente realizada mediante el uso de varios elementos de ordenador que funcionan de modo independiente (véase fig. 8). Por ejemplo, un programa que se ejecuta en un procesador central 800 puede requerir una operación de E/S con un dispositivo unido 804; sin embargo, la iniciación y ejecución reales de la operación de E/S con el dispositivo unido es realizada por uno o más procesadores separados y que ejecutan independientemente que trabajan juntos, típicamente llamados un subsistema de canal 802. La metodología de tratamiento asíncrona de E/S es empleada generalmente a fin de optimizar y usar eficientemente el procesador central para otro trabajo al mismo tiempo que la ejecución de los dispositivos de E/S de ejecución relativamente larga. Es decir, para minimizar el tiempo de tratamiento total de exceso del procesador, y el tiempo de espera del procesador que de otro modo sería requerido a fin de acceder y de leer/escribir en los dispositivos de E/S unidos. Tal metodología está diseñada para conseguir un solapamiento, o concurrencia de ejecución máximos de operaciones de E/S con la ejecución de otro trabajo de procesador en un gran sistema multiprogramado.
En tales sistemas de tratamiento asíncrono de E/S, el procesador central inicia la ejecución de una operación de E/S solicitada por programa mediante el uso de una instrucción de E/S, tal como la instrucción S/390 START SUBCHANNEL. Tal instrucción es típicamente responsable de:
1.
Poner en cola (añadir) la solicitud de operación de E/S en una cola de trabajo de E/S de subsistema de canal; y
2.
Señalar el subsistema de canal de ejecución asincrónicamente para procesar la cola de trabajo de E/S.
Subsiguientemente, el procesador central es libre de realizar otro trabajo/instrucciones y no está implicado directamente en la ejecución real de las operaciones de E/S solicitadas con el dispositivo de E/S.
Debido a 1) la naturaleza asíncrona del proceso anterior, 2) el funcionamiento independiente del procesador central y de los procesadores de subsistema de canal, 3) el tiempo de ejecución relativamente largo de operaciones de E/S en comparación con la velocidad de ejecución de los procesadores centrales, y 4) el hecho de que algunos de los recursos de subsistema de canal o todos, tales como los trayectos de canal que conectan el dispositivo al subsistema de canal, pueden estar ocupados realizando otras operaciones cuando es solicitada una operación de E/S mediante un programa, es muy probable que múltiples solicitudes de E/S sean puestas en cola al mismo tiempo en las colas de trabajo de E/S del subsistema de canal. Es decir, la instrucción START SUBCHANNEL es ejecutada por los procesadores centrales a una mayor velocidad que la capacidad del subsistema de canal de realizar las operaciones de E/S solicitadas, causando de modo continuo por ello colas de trabajo de E/S profundas de nivel N de solicitudes de operaciones de E/S pendientes.
A fin de procesar las solicitudes de E/S pendientes, los microprocesadores que comprenden el subsistema de canal inspeccionan sus respectivas colas de trabajo de E/S (véase fig. 8), retiran de la cola una o más solicitudes de E/S de estas colas e intentan iniciar las solicitudes de E/S retiradas de las colas con sus respectivos dispositivos de E/S. La iniciativa para esta actividad depende del microprocesador y de las colas de trabajo en cuestión dentro del subsistema de canal. Por ejemplo, el procesador de E/S del subsistema de canal que interactúa con el procesador central podría iniciar este proceso periódicamente cuando no está ocupado realizando otra tarea, como resultado de una o más señales de START SUBCHANNEL del procesador central, o una combinación de ambas.
Un ejemplo de las distintas colas de trabajo de un subsistema de canal están descritas con referencia a la fig. 8. Como se ha mencionado previamente, las solicitudes de E/S son puestas en cola en una cola de trabajo 806 de procesador de E/S por ejemplo, por la instrucción START SUBCHANNEL. Las solicitudes de E/S son a continuación retiradas de la cola de la cola de trabajo del procesador de E/S por un procesador 808 de E/S. Las solicitudes que son retiradas de la cola del procesador de E/S son puestas en cola por el procesador de E/S sobre una cola de trabajo 810 del procesador de canal. Después de ello, esas solicitudes son retiradas de la cola por un procesador de canal 812 y puestas de nuevo en cola sobre una cola de trabajo 814 de una unidad de control. El procesador de canal retira entonces de las colas las solicitudes de la cola de trabajo de la unidad de control para que sean enviadas a través del trayecto de canal a la unidad de control y posteriormente al dispositivo de E/S.
Corrientemente, dentro de la familia de sistemas de productos S/390, se realizan procesos de retirada de la cola de subsistema de canal e iniciación de trabajo sobre la base de Primero en llegar, Primero en salir (FIFO). Este proceso el lógicamente el más simple de poner en práctica, y está destinado a optimizar el caudal, y ha sido en el pasado, una estrategia aceptable para la transferencia de trabajo entre los distintos elementos de tratamiento asíncrono dado que la profundidad media de la cola de trabajo pendiente es relativamente somera y que los tiempos pendientes de trabajo de E/S siguen siendo de una duración relativamente corta (es decir, que el número medio de solicitudes de E/S pendientes en las distintas colas de trabajo de E/S no causan un alargamiento significativo del tiempo total de respuesta de E/S para operaciones de E/S asociadas con programas críticos de elevada importancia y/o en tiempo real).
Sin embargo, en sistemas operativos que proporcionan funciones de priorización de aplicación/programa a fin de soportar las demandas de usuario para el tratamiento en el tiempo de un trabajo crítico o dependiente del tiempo, una estrategia de tratamiento FIFO para solicitudes de E/S pendientes resulta cada vez menos aceptable, ya que la profundidad media de las colas de trabajo de FIFO aumenta. Por ejemplo, volúmenes de acceso paralelo usados en unión con el Servidor de Almacenamiento de Empresa de IBM aumentan la profundidad media de la cola en el subsistema de canal. Esto es típicamente debido al hecho de que solicitudes de E/S de menor importancia o menos críticas de tiempo pueden ser puestas en cola delante de las solicitudes más importantes en las colas de trabajo de FIFO y por ello serían iniciadas antes de las solicitudes de E/S más críticas. Frecuentemente, el trabajo menos crítico realiza E/S que vincula recursos durante largos periodos de tiempo, aumentando el retraso encontrado para un trabajo más importante. Esto da como resultado típicamente una probabilidad incrementada de retraso para las solicitudes de E/S más importantes.
Un incremento en el tiempo de retraso, también llamado tiempo pendiente de E/S (que podría ser o bien retraso total en tiempo real o bien retraso en tiempo relativo cuando es comparado con la velocidad del procesador central) es a menudo debido a la incapacidad del subsistema de canal y de los dispositivos unidos para mantener una velocidad de ejecución de E/S que no impacte en la terminación temporalmente de las solicitudes críticas de E/S. (Dicho de modo diferente, la incapacidad de mantener una velocidad de ejecución que no da como resultado un alargamiento inaceptable del tiempo de ejecución de los programas críticos de alta importancia/tiempo). Como se ha establecido antes, la probabilidad de un alargamiento inaceptable en el tiempo total de respuesta de E/S para solicitudes críticas de E/S aumenta generalmente cuando se usa una metodología de tratamiento de trabajo FIFO. Esta probabilidad de retraso es además ampliada cuando la velocidad y número de procesadores centrales aumenta a un régimen mayor que el aumento de velocidad de los dispositivos de E/S unidos y otros elementos de subsistema de canal requeridos, tales como los trayectos de canal a los que están unidos los dispositivos. En general, la disparidad en el régimen del incremento de velocidad del procesador central de E/S sobre el régimen de incremento de velocidad de E/S continúa creciendo en entornos de sistemas grandes contemporáneos dando como resultado una probabilidad crecientemente mayor de retrasos en colas y mayores tiempo de respuesta de E/S (bien en tiempo real en tiempo relativo) para trabajo crítico.
A fin de minimizar la frecuencia de tiempos de respuesta de E/S alargados para operaciones de E/S de gran importancia y críticas de tiempo, como ejemplos, debido a los retrasos en las colas en el subsistema de canal, se ha definido una técnica de manejo de la prioridad para procesar una o más de las colas de trabajo de E/S pendientes del subsistema de canal.
Ejemplos de la puesta en práctica de una técnica de tratamiento de prioridades entre dos procesadores o procesos que se ejecutan de modo independiente incluyen lo siguiente:
1.
Un procesador (o proceso) de puesta en cola añade solicitudes de E/S a una cola de trabajo de E/S de subsistema de canal (la cola particular depende de la fase de tratamiento) usando una técnica de secuencia de prioridades basada en un número de prioridad especificado por programa (por ejemplo por WLM). El subsistema de canal elimina subsiguientemente la primera solicitud de E/S de mayor prioridad de la cola de trabajo, usando una técnica de FIFO; o
2.
Un procesador (o proceso) de puesta en cola añade solicitudes de E/S a la parte inferior de la cola de trabajo de E/S, usando una técnica de puesta en cola de FIFO. El subsistema de canal, usando una técnica de selección de prioridades, busca subsiguientemente todos los elementos de solicitud de E/S en la cola de trabajo y elimina y procesa la solicitud de E/S con el mayor número de prioridad especificado por programa.
La técnica de puesta en cola de FIFO (técnica # 2) requiere menos instrucciones, y por ello, permite que el procesador central complete el proceso de programación de solicitud de E/S más rápidamente. Esto libera al procesador central para realizar otro trabajo más rápidamente. Para el proceso de puesta en cola/retirada de cola entre los distintos microprocesadores que constituyen el subsistema de canal, la técnica para elegir depende típicamente de cuál de los procesadores participantes es el más restringido con respecto a su capacidad de tratamiento y requisitos de temporalidad. El decir, si el procesador de puesta en cola es el más restringido o limitado entonces se elige la segunda técnica. Si el procesador de retirada de cola, es el más restringido o limitado, entonces se elige típicamente la primera
técnica.
Independientemente de cuál de estas técnicas se emplee, el resultado es que el subsistema de canal da preferencia a la iniciación y ejecución de solicitudes de E/S pendientes basado en una metodología de priorización, no en una metodología de tiempo de llegada o FIFO.
Además, en una realización, independientemente de las técnicas de puesta en cola y selección empleadas, se usan distintos criterios para priorizar y/o seleccionar una solicitud que ha de ser procesada. En un ejemplo, estos criterios incluyen lo siguiente:
1.
La selección de solicitudes de E/S pendientes basada en un número de prioridad especificado por programa en el que cada número diferente corresponde a un único nivel de prioridad. Por ejemplo, un intervalo de números únicos consecutivos ha de ser previsto y el intervalo de números total ha de ser igual o mayor que el número total de categorías de trabajo distintas que requieren diferenciación por prioridad. Por ejemplo, si el sistema proporciona la capacidad de ejecutar al mismo tiempo N sistemas operativos diferentes, tal como es posible con un sistema típico S/390, entonces las técnicas de prioridad de subsistema de canal han de ser previstas para N o más niveles de prioridad distintos. Cada nivel de prioridad, desde el menor a mayor nivel o viceversa, estaría representado por un único número en el intervalo de 0 a N-1.
2.
La selección de prioridad de solicitudes de E/S pendientes usando una técnica que aplica también "equidad" a todas las solicitudes puestas en cola independientemente de su prioridad. Esto se desea típicamente a fin de minimizar la probabilidad de que solicitudes de menor prioridad no sean procesadas durante períodos extendidos de tiempo lo que podría ocurrir, por ejemplo, debido a un número desproporcionadamente grande de solicitudes de mayor prioridad que son presentadas al subsistema de canal durante un periodo extendido de tiempo. La selección por equidad también podría aplicarse a solicitudes pendientes de igual prioridad dependiendo de otras consideraciones. Por ejemplo, para proporcionar equidad para solicitudes pendientes que han sido ya retiradas de colas, iniciadas de modo insatisfactorio, y vueltas a poner en cola uno o más veces con otras solicitudes de igual prioridad que no han sido aún seleccionadas. Tal técnica está descrita con referencia a la fig. 9. Esta técnica se aplica tanto a la prioridad como a equidad a una pluralidad de categoría diferentes de solicitudes pendientes.
3.
Controles externos de usuario/operador para:
1.
Habilitar/inhabilitar globalmente las técnicas de tratamiento por prioridad. Este control puede ser requerido a fin de forzar el tratamiento por FIFO de las solicitudes pendientes, si las técnicas de prioridad son innecesarias o incapaces de acomodar adecuadamente un entorno de ejecución de programa atípico.
2.
Para sistemas que proporcionan la ejecución al mismo tiempo de múltiples particiones lógicas, un control externo que permite que el usuario especifique un valor de prioridad "por defecto" para solicitudes de E/S asociadas con una partición lógica dada. Esto es usado cuando el sistema operativo que se ejecuta en la partición lógica no esta diseñado para especificar un valor de prioridad para sus solicitudes de E/S, pero que es sin embargo para competir satisfactoriamente con otros sistemas operativos que se ejecutan en otras particiones lógicas que especifican priorización de E/S.
3.
Para sistemas que proporcionan la ejecución al mismo tiempo de múltiples particiones lógicas, un control externo que permite que el usuario especifique un intervalo mínimo y máximo de valores de prioridad de subconjunto para cada partición lógica, a partir del conjunto total de valores proporcionados por el subsistema de canal. Este control es usado cuando múltiples sistemas operativos que se ejecutan en particiones lógicas separadas usan priorización de E/S independientemente y sin conocimiento de lo que usan otras particiones. Es decir, para permitir una segregación basada en prioridad de las solicitudes iniciadas por cada partición que usa.
Para los artículos 3.2 y 3.3 anteriores, en una realización, el procesador central asigna implícitamente el valor de prioridad por defecto especificado por el usuario o la prioridad mínima/máxima permitida especificada por el usuario para el programa que se ejecuta en la partición lógica de una manera que sea transparente al programa que funciona en la partición. En sistemas S/390, esto puede conseguirse al mismo tiempo por el gestor de partición lógica (hipervisor) y la instrucción START SUBCHANNEL del procesador central.
Cuando el programa que funciona en la partición lógica ejecuta START SUBCHANNEL, a fin de iniciar una operación de E/S, la ejecución interpretativa de la instrucción START SUBCHANNEL en el procesador central adquiere implícitamente tanto el número de prioridad por defecto como los números de prioridad mínimo/máximo permitidos a partir de una tabla de descripción de estado (SD) de Ejecución Interpretativa de Inicio (SIE). Esta tabla es creada y cargada al procesador central por el hipervisor de partición lógica, cuando ejecuta la instrucción de SIE a fin de colocar la partición en un Estado de Ejecución. La ejecución interpretativa de START SUBCHANNEL usa entonces los valores de prioridad por defecto de tabla de descripción de estado de SIE y mínimo/máximo para ajustar implícitamente el valor de prioridad apropiado a la solicitud de E/S sin implicación por el programa que funciona en la partición lógica
Cuando un valor de prioridad no es especificado por el programa que se ejecuta en la partición lógica, la interpretación de START SUBCHANNEL asigna el valor de prioridad por defecto especificado por el usuario a la solicitud de E/S. Cuando el programa que se ejecuta en una partición lógica especifica un número de prioridad cuando ejecuta START SUBCHANNEL, la ejecución interpretativa de START SUBCHANNEL compara el valor de prioridad especificado por el programa con los valores de prioridad mínimo/máximo especificados por el hipervisor en la tabla de descripción de estado. Cuando la prioridad especificada por el programa es menor que el valor mínimo especificado por el hipervisor, el valor mínimo a partir de la tabla de descripción de estado sustituye implícitamente al valor especificado por el programa. Cuando el valor de prioridad especificado por el programa es mayor que la prioridad máxima especificada por el hipervisor, el valor de prioridad máximo a partir de la tabla de descripción de estado sustituye al valor especificado por el programa.
Una técnica de selección de prioridad puede ser considerada usando cero o más de los criterios anteriores. Una realización de una técnica para seleccionar una solicitud que ha de ser procesada, que usa al menos alguno de los criterios anteriores está descrita con referencia a la fig. 9.
Inicialmente, es accedida una cola de trabajo pendiente, OPERACIÓN 900. Por ejemplo o bien la cola de trabajo del procesador de E/S, la cola de trabajo del procesador de canal o bien la cola de trabajo de la unidad de control es accedida. Después de ello, el cómputo de solicitudes pendientes retiradas de la cola es incrementado en 1 (por ejemplo, DQCOUNT=DQCOUNT+1), OPERACIÓN 902.
Subsiguientemente, se toma una determinación en cuanto a que categoría de solicitudes pendientes ha de ser tratada, OPERACIÓN 904. En un ejemplo, la categoría seleccionada es igual a DQCount MODULUS el número de categorías. Así, como en este ejemplo hay cuatro categorías, la categoría seleccionada es igual a DQCount MODULUS 4. Si el resaltado es 0, entonces es retirada de la cola la primera solicitud de cualquier prioridad, OPERACIÓN 906. Sin embargo si la categoría seleccionada es 1, entonces la primera solicitud de mayor prioridad no retirada previamente de la cola es seleccionada, OPERACIÓN 908. Además, si la categoría seleccionada es dos, entonces la primera solicitud de mayor prioridad retirada de la cola previamente e iniciada insatisfactoriamente es seleccionada, OPERACIÓN 910. Sin embargo, si el resultado es 3, entonces la primera solicitud de cualquier prioridad no retirada de la cola previamente es seleccionada, OPERACIÓN 912. Después de ello, la solicitud seleccionada es retirada de la cola y tratada, OPERACIÓN 914.
Descrito en detalle antes, hay un mecanismo de priorización para solicitudes asíncronas dentro de un coprocesador. Aunque los ejemplos están descritos con referencia a solicitudes de E/S y subsistemas de canal, estos son solamente ejemplos. La aproximación es igualmente aplicable a otras solicitudes asíncronas y coprocesadores. Además, aunque el ejemplo descrito antes está descrito con referencia a formación de colas, puede usarse un mecanismo de priorización similar para ajustar la asignación de recursos (por ejemplo ancho de banda) en el canal, que es capaz de ejecutar de modo concurrente múltiples operaciones, dando más del recurso de canal a las operaciones de mayor prioridad, en vez de ejecutarlas todas ellas de igual modo.
Además, aunque se han descrito aquí distintos ejemplos lo han sido con referencia a un sistema dividido de modo lógico, las capacidades de prioridad de E/S son utilizables dentro de un sistema que no tiene o soporta particiones lógicas.
Como otro beneficio, la configuración de E/S (por ejemplo, la configuración de trayecto de canal) de un entorno de ordenador puede ser cambiada dinámicamente a fin de mover el recurso de canal disponible a donde se necesita o para eliminar el recurso de canal excesivo, sin intervención humana. Esto reduce las experiencias requeridas para configurar E/S, mejora la total disponibilidad del sistema, maximiza la utilización de canales instalados y usa las prioridades relativas de cargas de trabajo para distribuir la capacidad E/S disponible. En una realización, son tenidos en cuenta uno o más factores antes de hacer un cambio, a fin de determinar el "mejor" cambio a hacer. Estos factores incluyen, por ejemplo, el impacto al tiempo de respuesta, o velocidad E/S; el impacto al tiempo de respuesta para conseguir objetivos de carga de trabajo específicos; estando ocupado el puerto de destino; las características de disponibilidad resultantes (por ejemplo, añadir trayectos sin puntos únicos de fallo en común); y la complejidad resultante (o entropía) de la configuración de E/S.
Se ha descrito en detalle una realización de la lógica asociada con ajustar dinámicamente una configuración E/S con referencia a las figs. 10-14. Inicialmente, el tratamiento de equilibrio de base es invocado, por ejemplo, por un componente administrador de carga de trabajo del entorno de ordenador al comienzo de intervalos de tiempo programados regularmente, por ejemplo, cada 10 segundos. La función del tratamiento de equilibrio de base es equilibrar continuamente la velocidad de E/S uniformemente a través de los subsistemas (por ejemplo, unidades de control lógico) (con canales definidos flotantes (es decir, administrados)); asegurar que todos los dispositivos pueden ser accedidos a través de dos o más trayectos, preferiblemente sin puntos únicos de fallo en común; y reequilibrar subsistemas después de un fallo de hardware. Este tratamiento incluye dos componentes: recogida de datos, OPERACIÓN 1000 (fig. 10) y comprobación del equilibrio, OPERACIÓN 1002. La recogida de datos es puesta en marcha una vez que cada intervalo dentro de cada partición lógica del entorno (suponiendo que el entorno está compuesto por particiones lógicas o dentro de cada sistema si no se dividió en particiones lógicamente); y la comprobación de equilibrio es realizada sólo una vez por intervalo por LPAR agrupado (de nuevo, suponiendo agrupamiento).
La puesta en serie de parte de la recogida de datos del tratamiento es obtenida por el hecho de que el WLM sólo invoca la técnica de equilibrio de base una vez por intervalo en cualquier sistema. Adicionalmente, se ha usado la comprobación del número de versión cuando se actualiza la información recogida. Por ejemplo, bloques de control almacenados dentro de la instalación de acoplamiento son puestos en serie para actualizar la información recogida. Estos bloques de control permiten una recogida de datos a nivel de grupo, que permite la administración de canales a través de miembros de un grupo en el mismo CPC.
A fin de poner en serie la comprobación del equilibrio, se usa la puesta en serie con un marco de grupo específicamente para este propósito. Típicamente, cuando el equilibrio es solicitado inmediatamente después de la recogida de datos, se solicita la puesta en serie del ancho de grupo. Si la puesta en serie es obtenida, prosigue la comprobación del equilibrio; si no, entonces la comprobación del equilibrio tiene lugar dentro del LPAR agrupado, y no se necesita ejecutar de nuevo durante este intervalo.
El tratamiento de recogida de datos de la fig. 10 está además descrito con referencia a la fig. 11. En una realización, los datos de medición son recogidos y actualizados, para cada subsistema (por ejemplo, unidad de control lógico) definido, OPERACIÓN 1100. La medición de datos incluye, por ejemplo, el tiempo de conexión, el tiempo pendiente, la ocupación del subsistema, la ocupación del dispositivo, el tiempo de ocupación del puerto de destino, y las cuentas de ocupación del puerto de destino. Los datos de medición actualizados son almacenados en bloques de control en la memoria del procesador, junto con bloques de control dentro de la memoria compartida, tales como la instalación de acoplamiento.
Después de actualizar los datos de medición, es calculada una velocidad de E/S de objetivo por defecto para cada subsistema, OPERACIÓN 1102. La velocidad de E/S indica si un ancho de banda de canal adicional es necesario o deseado. Como ejemplo, la velocidad de E/S de objetivo por defecto es ponderada por el tiempo de conexión. A fin de realizar este cálculo, son realizadas las operaciones siguientes, en un caso: Para cada subsistema administrado por DCM, es obtenida la velocidad corriente o real, junto con la cantidad de tiempo de conexión suministrada por ese subsistema durante el intervalo pasado. La velocidad de E/S es luego multiplicada por el tiempo de conexión para obtener un resultado. Los resultados para los subsistemas son a continuación sumados juntos para obtener una suma. La suma es a continuación dividida por el tiempo de conexión total a fin de determinar una velocidad de E/S de objetivo por defecto ponderada por el tiempo de conexión.
Volviendo a la fig. 10, después de realizar la acumulación de datos, es realizada la comprobación del equilibrio como se ha descrito aquí, OPERACIÓN 1002. Se ha descrito una realización de la lógica asociada con comprobación del equilibrio con referencia a la fig. 12. Inicialmente, la puesta en serie es realizada para determinar si la comprobación del equilibrio debe ser realizada en este caso, PREGUNTA 1200. Si el intento de colocar en serie el ancho de grupo no es satisfactorio, a continuación la lógica de comprobación de equilibrio no es realizada, OPERACIÓN 1202. Sin embargo, si la puesta en serie es obtenida, a continuación los subsistemas son buscados para aquellos que están fuera de su intervalo objetivo, OPERACIÓN 1204.
Por ejemplo, la velocidad de E/S real es obtenida para todos los subsistemas y a continuación se hace un promedio. (En un ejemplo, sólo aquellos subsistemas administrados por administración dinámica CHPID (DCM) están incluidos en el promedio). Una vez que se ha determinado el promedio, es creado un intervalo. En un ejemplo, el intervalo es, por ejemplo, más o menos del 5% del valor del promedio. Después de ello, la velocidad de E/S objetivo de cada subsistema es comparada con el intervalo objetivo. Si no se ha especificado velocidad de E/S objetivo, a continuación es usada la velocidad de E/S objetivo por defecto. Como resultado de las comparaciones, son creadas dos listas, OPERACIÓN 1206. Una de las listas incluye aquellos subsistemas que exceden del intervalo objetivo y la otra incluye aquellos subsistemas que no coinciden dentro del intervalo. En cada caso, los subsistemas que han sido modificados recientemente (por ejemplo, en los últimos 10 segundos) son excluidos de las listas.
Después de ello, la lista de objetivos errados es clasificada, OPERACIÓN 1208. En un ejemplo, el WLM es usado para clasificar esta lista, ya que el WLM está en la posición para determinar qué subsistemas son más importantes. Así, el WLM ordena los subsistemas en el orden en el que al WLM le gustaría que fueran atendidos o se les diera servicio.
Después de la clasificación de la lista, se da servicio a uno o más de los subsistemas de la lista, por ejemplo, desplazando la capacidad desde los subsistemas infrautilizados a los subsistemas suprautilizados, OPERACIÓN 1210. Como muchos de los subsistemas a los que se les puede dar servicio en el tiempo asignado son ajustados.
Una realización de la lógica asociada ajustando la capacidad se ha descrito con referencia a las figs. 13a-13b. Inicialmente, es seleccionado un subsistema de la lista, OPERACIÓN 1300 (fig. 13a). En un ejemplo, es el primer subsistema en la lista que es seleccionada. Después de ello, se toma una determinación de si el problema es la ocupación del puerto de destino, OPERACIÓN 1302. En particular, se toma una determinación de si la contención es elevada (por ejemplo, tiempo de ocupación del puerto de destino), y si lo es, varía con respecto a los diferentes enlaces que se conectan a él. Si la ocupación del puerto de destino es elevada en todos los enlaces, entonces significa que se necesita añadir otro trayecto de canal. Sin embargo, si esta es elevada sólo en un enlace, entonces un trayecto de canal es movido a otro enlace, OPERACIÓN 1304. Así, un trayecto existente es movido desde el enlace con excesivo tiempo de ocupación del puerto de destino a otro enlace, y el tratamiento continúa poniendo en práctica el cambio, OPERACIÓN 1306 (fig. 13b). Ejemplos de cómo llevar a cabo el cambio están descritos en el documento US-5.527.379, concedida en Octubre de 1993; el documento US-5.257.368, concedida en Octubre de 1993; y el documento U.S. 5.220.654, concedida en Junio de 1993.
Después de haber realizado el cambio, se toma una determinación sobre si hay otros sistemas que no están en el intervalo objetivo, PREGUNTA 1308. Si no, entonces se completa el tratamiento de la corrección de desequilibrio. Sin embargo, si otros subsistemas no están dentro del intervalo, entonces el tratamiento continua con la OPERACIÓN 1300 "SELECCIONAR EL SIGUIENTE SUBSISTEMA EN LA LISTA" (fig. 13a).
Volviendo a la PREGUNTA 1302, si el problema no es debido a la contención, entonces el tratamiento continúa, como se ha descrito aquí.
En particular, en un ejemplo, los trayectos de canal posibles que han de ser añadidos a los subsistemas han sido determinados, OPERACIÓN 1310. Esta determinación incluye la comprobación dentro de la topología física de todos los canales que pueden pertenecer al subsistema particular, y a continuación para cada canal, determinar caminos (trayectos) posibles que pertenezcan al subsistema. Un trayecto es una permutación de conectividad a través de los elementos del hardware que conectan tanto el canal como el subsistema. Todos estos trayectos (o un subconjunto, si se desea) están incluidos en los trayectos posibles.
Similarmente, se toma una determinación para eliminar los trayectos posibles, OPERACIÓN 1312. Como un ejemplo, si hay múltiples subsistemas en el mismo canal, a continuación uno de los trayectos conectados al subsistema de que se comparte es considerado un candidato a eliminar.
Después de ello, se toma una determinación en cuanto a qué subsistemas serán impactados por el cambio, OPERACIÓN 1314. Además, también se ha determinado un índice de entropía que indica la complejidad de una configuración que ha de ser cambiada, como se ha descrito más adelante.
Se ha descrito una realización de la lógica asociada con la determinación de los subsistemas verificados con referencia a la fig. 14. Inicialmente, un lista de bloque de control de subsistema (SSCB) para subsistemas y una lista CHPID para canales son retiradas para su uso más adelante, OPERACIÓN 1400. Después de ello, un id de trayecto de canal es recuperado desde un bloque de selección de decisión (DSB) asociado con el canal propuesto y es añadido a la lista CHPID, OPERACIÓN 1402. En particular, cada trayecto tiene un bloque de selección de decisión asociado con él. El bloque de selección de decisión es un bloque de control que incluye información diferente, incluyendo, por ejemplo, el id del trayecto de canal (CHPID), un puntero de bloque de control de subsistema (SSCB) que indica la unidad de control lógico asociada con el trayecto de canal, y una disposición de SSCB verificados. Cada SSCB incluye todos los canales conectados al subsistema.
Después de ello, todos los CHPID asociados con el SSCB que han de ser asistidos son también añadidos a la lista de CHPID, OPERACIÓN 1404. En particular, el puntero SSCB es recuperado desde el DSB que indica el SSCB que ha de ser asistido. Todos los CHPID en el SSCB son a continuación añadidos a la lista de CHPID.
Después de ello, para cada CHPID en la lista, los SSCB asociados con el trayecto de canal son añadidos a la lista SSCB, OPERACIÓN 1406. En un ejemplo, esta información es obtenida desde una tabla de trayecto de canal que indica los SSCB conectados a cada CHPID.
Subsiguientemente, se toma una determinación en cuanto a si se añadieron cualesquiera SSCB a la lista, PREGUNTA 1408. Si es así, entonces para cada SSCB en la lista, los CHPID no son ya añadidos en la lista CHPID, OPERACIÓN 1410, como se ha descrito antes con la OPERACIÓN 1404.
Después de ello, se toma otra determinación en cuanto a si se añadieron cualesquiera CHPID, PREGUNTA 1412. Si se añadieron más CHPID a la lista, luego continúa el tratamiento con la OPERACIÓN 1406. Sin embargo, si no hay SSCB o CHPID añadidos a las listas, PREGUNTAS 1408, 1412, entonces para cada SSCB en la lista, es creado un elemento de disposición DSB, OPERACIÓN 1414. Es decir, cada uno de los SSCB son añadidos a la disposición de SSCB verificados. Adicionalmente, cada uno de los elementos de disposición es actualizado con velocidades de E/S real y objetivo, el delta corriente entre las velocidades de E/S objetivo y real, y un puntero SSCB, OPERACIÓN 1416.
Volviendo a la fig. 13a, en añadidura a lo anterior, es calculado el índice de disponibilidad para cada trayecto, OPERACIÓN 1316. En un ejemplo, el índice de disponibilidad es un número que indica cuántos puntos únicos de fallo tiene el trayecto propuesto en común con trayectos existentes al subsistema. Si un trayecto de canal ha de ser añadido, a continuación se desea no tener puntos únicos de fallo. Si un trayecto de canal ha de ser borrado, entonces el trayecto con el mayor número de puntos únicos de fallo es típicamente cambiado.
Subsiguientemente, se proyecta el impacto a los sistemas verificados, OPERACIÓN 1318. En particular, en un ejemplo, la carga de corriente en cada subsistema es observada para determinar como será de diferente si se hace el cambio. Usando esta información, se selecciona la mejor opción, OPERACIÓN 1320. A fin de seleccionar la mejor opción, pueden considerarse diferentes factores incluyendo, por ejemplo, los siguientes:
-
¿Que opción mueve el subsistema más cerca del objetivo?
-
¿Que opción proporciona la mejor disponibilidad?
-
¿Que opción proporciona la mejor simetría (menos entropía)?
-
¿Reducirá esta opción el número total de trayectos por debajo de dos?
-
¿Violará esta opción alguno objetivo explícito (WLM puede proporcionar objetivos explícitos para ser usados en vez de los objetivos por defecto)?
-
¿Violará esta opción algún límite de arquitectura?
-
¿Violará esta opción la configuración como se ha definido por la instalación?
-
¿Alcanzará esta opción a usar recursos que no están disponibles normalmente?
En un ejemplo particular, inicialmente, son eliminados cualesquiera bloques de selección de decisión (DSB) que no pueden ser puestos en práctica bajo ninguna circunstancia. Esto incluiría, por ejemplo, aquellos que violan los límites de la arquitectura, aquellos que reducen el número total de trayectos por debajo de dos, aquellos que violan la configuración como se ha definido por la instalación (por ejemplo, usar más que el número máximo de trayectos de canal flotante permitidos en la definición) y aquellos que intentan usar recursos que no están disponibles normalmente (por ejemplo, aquellos que intentan usar puertos que no están disponibles). (Esta función podría moverse más pronto en el tratamiento, de manera que el índice de disponibilidad y el impacto proyectado a los subsistemas no están calculados para los DSB que nunca podrían ser seleccionados).
Si corrientemente sólo hay un trayecto al subsistema (posible poco tiempo después de que comience el subsistema o después de un fallo), seleccione un trayecto con el mejor índice de disponibilidad. Si más de uno tiene índices de disponibilidad equivalente, seleccione el trayecto que tiene el menor índice de entropía que moverá el subsistema objetivo dentro del objetivo de velocidad de E/S objetivo. Si hay más de uno, seleccione aquel cuyo delta total proyectado ("\Sigma de Delta Proyectado" a partir del DSB) es menor.
Si hay corrientemente más de un trayecto al subsistema, encuentre el conjunto de DSB con el mejor índice de disponibilidad. Busque ese conjunto para opciones que tengan el subsistema objetivo dentro de la tolerancia de la velocidad de E/S objetivo y tengan el menor índice de entropía. Si hay más de uno, seleccione aquel cuyo delta total proyectado ("\Sigma de Delta Proyectado" a partir del DSB) es menor.
Si no hay tal opción, encuentre el conjunto de trayectos con el siguiente mejor índice de disponibilidad, e inténtelo de nuevo.
Si no hay opciones que tengan el subsistema dentro de la tolerancia, seleccione el que tiene el subsistema más próximo al objetivo, independientemente de su índice de disponibilidad o índice de entropía. (La técnica descrita antes para seleccionar la mejor opción es solo un ejemplo. Pueden hacerse distintas sumas, eliminaciones y modificaciones, y cualesquiera otras técnicas adecuadas pueden ser usadas para seleccionar la mejor opción.)
Después del intento por seleccionar la mejor opción, se toma una determinación en cuanto a si el nuevo objetivo puede ser alcanzado sin impactar en subsistemas con objetivos explícitos, PREGUNTA 1322. En otras palabras, es la mejor opción la que va a impactar negativamente en los subsistemas con objetivos explícitos que fueron ajustados por el WML. Si es así, entonces el administrador de carga de trabajo es invocado para elegir el trayecto apropiado, OPERACIÓN 1324. Específicamente el administrador de carga de trabajo toma el trayecto y selecciona nuevos objetivos para el donante.
Subsiguientemente, o si el nuevo objetivo puede ser alcanzado sin impactar negativamente en los subsistemas con objetivos explícitos, el cambio es llevado a cabo, OPERACIÓN 1306, y el tratamiento continúa con una determinación en cuanto a si existen otros subsistemas que no están en el intervalo objetivo, PREGUNTA 1308.
Como se ha establecido antes, el WML puede ajustar un objetivo de velocidad de E/S explícito, que ha de ser usado en vez del objetivo de velocidad de E/S promedio por defecto. En una realización, el WML ajusta un objetivo explícito, cuando el WML encuentra que la clase de servicio no está satisfaciendo sus objetivos. Una realización de la lógica asociada con el ajuste del objetivo de velocidad de E/S del subsistema explícito está descrita con referencia a la fig. 15.
Inicialmente, se toma una determinación en cuanto a si la E/S está provocando el mayor retraso, PREGUNTA 1500. Si no es así, entonces con propósitos actuales el tratamiento está completo. Sin embargo, si la E/S están provocando el mayor retraso, entonces se intenta el ajuste de prioridad de E/S, OPERACIÓN 1502. Después de ello, se toma una determinación en cuanto a si la clase de servicio está satisfaciendo sus objetivos, PREGUNTA 1504. Si la clase de servicio está ahora satisfaciendo sus objetivos, entonces el tratamiento está completo. Sin embargo, si la clase de servicio no está aún satisfaciendo sus objetivos, entonces se realiza una búsqueda para subsistemas que están siendo usados por la clase de servicio y tienen una velocidad de E/S baja, OPERACIÓN 1506. Para uno o más subsistemas que están localizados, se ajustan nuevos objetivos de velocidad de E/S del subsistema. En un ejemplo, se ha ajustado aumentando el objetivo corriente por una cantidad definida y entonces proyectando el impacto sobre el subsistema. Si el impacto es suficiente, (por ejemplo, por encima de un valor receptor), entonces el tratamiento está completo. Si no, el objetivo es aumentado otra vez, y el tratamiento es repetido.
Descrita antes en detalle está la administración CHPID dinámica (DCM) que proporciona ajuste dinámico de configuraciones de E/S. El DCM está ventajosamente integrado con el WML, que permite que se tomen decisiones con una comprensión de cargas de trabajo y objetivos. Además, el DCM permite la administración de canales a través de particiones múltiples (por ejemplo, de un grupo de particiones). Esto permite la suma de recursos cuando son necesarios, así como la eliminación de recursos en exceso.
Como se ha descrito antes, con la administración CHPID dinámica (DCM), el "mejor" canal es seleccionado para añadir a (o eliminar de) un subsistema. Con el fin de hacer esto, son examinados uno o más atributos, incluyendo, por ejemplo, la complejidad (o entropía) de la configuración de E/S resultante.
La entropía incrementada provoca que la configuración de E/S resulte demasiado complicada, dando como resultado un tiempo excesivo en el tratamiento de los DCM, resultados inexactos debido a números excesivos de subsistemas que son impactados, complejidad en informe de prestaciones y complejidad en la determinación del problema. Así, en una realización preferida del presente invento, hay prevista una capacidad para determinar la entropía relativa de elecciones diferentes, de manera que la entropía relativa pueda ser considerada junto con otras consideraciones, tales como la velocidad y la disponibilidad de E/S, cuando se hace una elección de cómo ha de ser ajustada una configura-
ción.
Determinando la entropía relativa, es calculado un índice de entropía. Por ejemplo, en el caso en que un trayecto está siendo añadido, el índice de entropía es la suma de canales y subsistemas en la configuración resultante. Además, en el caso en que un trayecto está siendo borrado, el índice de entropía refleja el conjunto de canales y subsistemas interconectados al subsistema objetivo después de que se haya borrado el trayecto. No incluye canales y subsistemas que no estarán ya en el conjunto.
Para calcular el grado de entropía para cada opción, se usa el número de canales y subsistemas que están conectados a la vez, suponiendo que la decisión es llevada a cabo. Una premisa básica de la técnica de la entropía es calcular un índice que permita una comparación de dos o más topologías propuestas y una determinación de cual es más simétrica, o tiene menos entropía. El propósito de esto es evitar grandes topologías interconectadas, lo que se sospecha que hará la técnica de velocidad de E/S menos exacta, y hará más duro para la gente analizar los problemas de prestaciones después del hecho, debido a la topología excesivamente compleja.
Una realización de la técnica de determinación de entropía está descrita con referencia a distintos ejemplos. Por ejemplo, la fig. 16a representa un ejemplo de una configuración 1600 que incluye dos canales 1602 conectados a dos subsistemas 1604. Si el subsistema 22 necesita un recurso adicional, puede obtenerlo al menos de dos sitios. Puede o bien recibirlo desde el canal 1 o desde el canal 3. Si lo obtiene desde el canal 3, la configuración resultante tiene ahora tres canales y dos subsistemas (fig. 16b). Esto da a la configuración un índice de entropía de cinco (3+2). Si, sin embargo, el subsistema 22 recibe el recurso adicional desde el canal 1 (fig. 16c), la configuración resultante no tiene más canales o subsistemas de los que tenía originalmente, y el índice de entropía resultante es dos. En este ejemplo, la segunda opción tiene la entropía menor.
Considérese otro ejemplo. En el ejemplo representado en la fig. 17a, el subsistema 23 necesita un recurso adicional. Puede obtenerse desde el canal 2 o 4. Si el canal 2 es usado, (fig. 17b) el índice de entropía resultante es cinco (es decir, tres canales interconectados a dos subsistemas en una configuración; el canal 4 no es contado, ya que no está conectado.) Si el canal 4 es usado (fig. 17c), el índice resultante es tres. Así, la segunda opción tiene la entropía
menor.
A continuación, considérense casos e los que la configuración está dividida, para determinar como esto afecta a la entropía.
Con referencia a la fig. 18a, si el subsistema 23 tiene exceso de capacidad, el canal 2 o 3 podría ser eliminado. Si el canal 2 es eliminado (fig. 18b), la configuración es dividida, y el índice de entropía de ambas configuraciones desciende. Si el canal 3 es eliminado (fig. 18c) hay aún una configuración, pero con un índice de entropía inferior que el índice original. Parece que la decisión que rompe la configuración, hacia la mitad, da como resultado dos redes menos complicadas, y es la mejor elección, en una realización.
En un borrado o eliminación, si el índice de la configuración existente (fig. 19a) es conocido, así como el índice de la configuración propuesta que contiene el subsistema a mano (lado derecho de la fig. 19b), el índice de la otra configuración (lado izquierdo de la fig. 19b) puede ser calculado por substracción. En este ejemplo, el índice de la otra configuración es igual a 2 (4-3=1 y 2-1=1, así 1+1=2). Si la substracción da como resultado cero para el número de subsistemas o canales, como en la fig. 19c, entonces la entropía ha sido reducida sin dividir la configuración. (Por ejemplo, 2 subsistemas - 2 subsistemas = 0). La división es preferida, en una realización.
En el siguiente ejemplo, el subsistema 23 tiene exceso de recursos (fig. 20a). Los canales 2 o 3 pueden ser eliminados. Si el canal 3 es eliminado (fig. 20b), el índice de entropía resultante es 7. Si el canal 2 es eliminado (fig. 20c), la configuración es dividida en dos configuraciones con la configuración a mano (configuración con subsistema 23) teniendo un índice de entropía de 5 y teniendo la segunda configuración resultante un índice de entropía en 3. En una realización, se prefiere dividir la configuración.
Otros ejemplos son ahora considerados para determinar si solo se desea un borrado o eliminación para buscar una división, no el valor de entropía resultante.
En el ejemplo representado en la fig. 21a, el subsistema 23 tiene demasiado ancho de banda. Cualquier canal 2 o 4 puede ser eliminado. Si el canal 2 es eliminado (fig. 21b), se obtiene un nuevo índice de entropía de 6, con el índice de entropía de la segunda configuración resultante en 3. Si el canal 4 es eliminado (fig. 21c), se obtiene un nuevo índice de entropía de 5, con el índice de entropía de la segunda configuración resultante en 4. La configuración con índices de entropía de 5 y 4 es la mejor elección. Así el tipo de división es el objeto, en una realización.
En el ejemplo representado en la fig. 22a, el subsistema 23 necesita un recurso adicional. El subsistema 21 puede ser eliminado desde el canal 2 (fig. 22b), dando al subsistema 23 todos los recursos del canal 2; o el subsistema 25 puede ser eliminado desde el canal 4 (fig. 22c), dando 23 todos los recursos del canal 4.
Si el subsistema 21 es eliminado desde el canal 2, el índice de entropía resultante es 7, y el de la segunda configuración resultante es 2. Si el subsistema 25 es eliminado desde el canal 4, el índice de entropía resultante es ahora 6, y la segunda configuración resultante es 3. La segunda elección parece mejor, en una realización, porque la división está más cerca de ser igualada.
Con el fin de calcular qué opción está más próxima a estar en la mitad (es decir "igualada"), se determina la diferencia en el número de canales y subsistemas entre el nuevo índice de entropía y el de la segunda configuración resultante. En este ejemplo, la primera elección resulta en índices de entropía de 7 y 2, así la diferencia es 5 (es decir, el índice de simetría). La segunda selección da como resultado índices de entropía de 6 y 3, así la diferencia es 3. Aquel con la menor diferencia es la mejor elección en esta realización.
Para concluir, en una realización, han de eliminarse opciones que no mueven el subsistema más cerca de la velocidad de E/S objetivo. Además, el índice de entropía es calculado añadiendo el número total de canales y subsistemas que están interconectados en la configuración resultante. Si el índice de entropía no cambia, el cambio es simétrico. La configuración con el menor índice de entropía es típicamente seleccionada. Evítese seleccionar una configuración con más de ocho canales, incluso si ello significa seleccionar uno con un índice de entropía más elevado. Si no hay alternativa, selecciónese una configuración con más de ocho canales, y con un poco de suerte en el siguiente intervalo la configuración será dividida.
Aunque se han descrito variaciones de las realizaciones anteriores con referencia a configuraciones de E/S, las capacidades descritas aquí son igualmente aplicables a otras redes, tales como redes de área de almacenamiento, así como a otras.
Lo descrito antes son distintos mecanismos para administrar recursos de un entorno de ordenador. Los recursos compartibles físicos son administrados a través de particiones lógicas de un entorno de ordenador. Las particiones lógicas son agrupadas para permitir compartir recursos a través, por ejemplo, de asignaciones de recursos basados en la prioridad. Este hecho de compartir recursos incluye, por ejemplo, administración dinámica de recursos de CPU a través de las LPAR; administración CHPID dinámica a través de las LPAR; poner en cola la prioridad de E/S en el subsistema de canal; y administración dinámica de la memoria a través de las LPAR.
En un ejemplo, el administrador de carga de trabajo del sistema es al menos parcialmente responsable de esta administración. Los recursos compartibles son redistribuidos dinámicamente a través de las LPAR bajo la dirección del administrador de carga de trabajo transparente a los subsistemas de aplicación. Los recursos son proporcionados a las particiones necesarias basados en la actividad de vigilancia y los objetivos de los clientes. Adicionalmente, el ajuste dinámico de recursos físicos de acuerdo con objetivos de carga de trabajo a través, por ejemplo, del WLM, sysplex e integración PR/SM, es realizado sin necesidad de compartir datos de sysplex paralelos.
En la realización descrita antes, se han descrito distintos entornos de ordenador y sistemas. Se apreciará que estos son solamente ejemplos y no están destinados a limitar el marco del presente invento. De modo similar, los diagramas de flujo representados aquí son solo ejemplares. Puede haber muchas variaciones a estos diagramas o las operaciones. Por ejemplo, las operaciones pueden cuando sea apropiado ser realizadas en un orden diferente, o pueden añadirse, borrarse o modificarse operaciones, dentro del marco de las reivindicaciones adjuntas.

Claims (13)

1. Un método para administrar carga de trabajo en un entorno de ordenador, comprendiendo dicho método: determinar que se ha ajustado una asignación de recursos de CPU a una partición de dicho entorno de ordenador; y ajustar dinámicamente dicha asignación a través de dicha partición y otra partición de dicho entorno de ordenador; en el que dicha partición comprende una o más clases de servicio de trabajo, y en el que dicha determinación está caracterizada porque comprende: proyectar un efecto en una clase de servicio seleccionada de dichas una o más clases de servicio de aumentar un peso de procesador asociado con dicha partición (600); proyectar un efecto en una o más clases de servicio de dicha otra partición de disminuir un peso de procesador de dicha otra partición (604), y determinar si el beneficio a dicha clase de servicio seleccionada anula un impacto negativo para el trabajo de dicha otra partición (606), en que el ajuste ha de hacerse cuando el beneficio anule el impacto negativo.
2. Un método según reivindicación 1ª, en el que dicho ajuste dinámico es en respuesta a objetivos de carga de trabajo de al menos dicha partición.
3. Un método según la reivindicación 1ª o 2ª, en el que dicho ajuste dinámico comprende modificar un primer peso de procesador de CPU asignado a dicha partición y un segundo peso de procesador de CPU asignado a dicha otra partición.
4. Un método según la reivindicación 3ª, en el que dicha modificación comprende: aumentar dicho primer peso de procesador de CPU; y disminuir dicho segundo peso de procesador de CPU.
5. Un método según la reivindicación 4ª, en el que dicho primer peso de procesador de CPU es aumentado en una cantidad igual a la disminución de dicho segundo peso de procesador de CPU, en el que una suma de dicho primer peso de procesador de CPU y dicho segundo peso de procesador de CPU permanecen constantes.
6. Un método según una cualquiera de las reivindicaciones 1ª a 5ª, en el que dicha partición y dicha otra partición están dentro de un grupo de particiones.
7. Un método según una cualquiera de las reivindicaciones 1ª a 6ª, en el que dicha selección está basada en la importancia del trabajo que ha de ser ejecutado en dicha otra partición.
8. Un producto de programa de ordenador que comprende un código de programa de ordenador almacenado en un medio de almacenamiento legible por ordenador, que cuando es ejecutado en un sistema de tratamiento de datos, instruye al sistema de tratamiento de datos para poner en práctica el método según la reivindicación 1ª.
9. Un sistema de administración de carga de trabajo en un entorno de ordenador, comprendiendo dicho sistema (116): medios para determinar que ha de ajustarse una asignación de recursos de CPU a una partición de dicho entorno de ordenador; y medios para ajustar dinámicamente dicha asignación a través de dicha partición y otra partición de dicho entorno de ordenador; y en el que dicha partición comprende una o más clases de servicio de trabajo, y caracterizado porque dichos medios de determinación comprenden: medios para proyectar un efecto en una clase de servicio seleccionada de dichas uno o más clases de servicio de aumentar un peso de procesador asociado con dicha partición (600); medios para proyectar un efecto en una o más clases de servicio de dicha otra partición de disminuir un peso de procesador de dicha otra partición (604); y medios para determinar si el beneficio para dicha clase de servicio anula un impacto negativo para el trabajo de dicha otra partición (606), en el que ha de hacerse el ajuste cuando el beneficio anula el impacto negativo.
10. Un sistema según la reivindicación 9ª, en el que dichos medios para ajustar dinámicamente responden a objetivos de carga de trabajo de al menos dicha partición.
11. Un sistema según la reivindicación 8ª o 9ª, en el que dichos medios para ajustar dinámicamente comprenden: medios para modificar un primer peso de procesador de CPU asignado a dicha otra partición.
12. Un sistema según la reivindicación 11ª, en el que dichos medios de modificación comprenden: medios para aumentar dicho primer peso de procesador de CPU; y medios para disminuir dicho segundo peso de procesador de CPU.
13. Un sistema según una cualquiera de las reivindicaciones 9ª a 13ª, que comprende además: medios para seleccionar dicha otra partición, en los que dicha selección está basada en la importancia del trabajo que ha de ser ejecutado en dicha otra partición.
ES00962734T 1999-09-28 2000-09-28 Gestion de la carga de trabajo en un entorno informatico. Expired - Lifetime ES2228607T3 (es)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US408470 1999-09-28
US09/407,212 US6587938B1 (en) 1999-09-28 1999-09-28 Method, system and program products for managing central processing unit resources of a computing environment
US407212 1999-09-28
US09/407,391 US7007276B1 (en) 1999-09-28 1999-09-28 Method, system and program products for managing groups of partitions of a computing environment
US407391 1999-09-28
US09/408,470 US7051188B1 (en) 1999-09-28 1999-09-28 Dynamically redistributing shareable resources of a computing environment to manage the workload of that environment

Publications (1)

Publication Number Publication Date
ES2228607T3 true ES2228607T3 (es) 2005-04-16

Family

ID=27410700

Family Applications (1)

Application Number Title Priority Date Filing Date
ES00962734T Expired - Lifetime ES2228607T3 (es) 1999-09-28 2000-09-28 Gestion de la carga de trabajo en un entorno informatico.

Country Status (14)

Country Link
EP (1) EP1256039B1 (es)
JP (1) JP3872343B2 (es)
CN (1) CN100397341C (es)
AT (1) ATE283512T1 (es)
AU (1) AU7437600A (es)
BR (1) BRPI0014350B1 (es)
CA (1) CA2382017C (es)
CZ (1) CZ20021093A3 (es)
DE (1) DE60016283T2 (es)
ES (1) ES2228607T3 (es)
HU (1) HU228286B1 (es)
IL (2) IL148728A0 (es)
PL (1) PL365894A1 (es)
WO (1) WO2001023974A2 (es)

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4292693B2 (ja) * 2000-07-07 2009-07-08 株式会社日立製作所 計算機資源分割装置および資源分割方法
US7203719B2 (en) * 2001-08-22 2007-04-10 International Business Machines Corporation Method and system to measure distributed system's relative size
JP2003067351A (ja) * 2001-08-28 2003-03-07 Nec System Technologies Ltd 分散型コンピュータの構成制御システム
US6694419B1 (en) 2002-04-12 2004-02-17 Barsa Consulting Group, Llc Method and system for automatically measuring partition memory needs in a partitioned computer system
US6968441B1 (en) 2002-04-12 2005-11-22 Barsa Consulting Group, Llc Method and system for managing interdependent resources of a computer system
US6738886B1 (en) 2002-04-12 2004-05-18 Barsa Consulting Group, Llc Method and system for automatically distributing memory in a partitioned system to improve overall performance
US7290260B2 (en) 2003-02-20 2007-10-30 International Business Machines Corporation Dynamic processor redistribution between partitions in a computing system
JP2005165813A (ja) * 2003-12-04 2005-06-23 Matsushita Electric Ind Co Ltd 分散計算機システム管理方法
JP2006079495A (ja) * 2004-09-13 2006-03-23 Hitachi Ltd ストレージシステム及び論理区画の設定方法
JP4503470B2 (ja) * 2005-03-17 2010-07-14 富士通株式会社 サーバ管理装置及び計算機サーバ
DE102005014717B4 (de) 2005-03-31 2022-09-29 Fujitsu Technology Solutions Intellectual Property Gmbh Computersystem und Verfahren zur Aufteilung und Zuteilung von Rechenleistung innerhalb eines Computersystems
US7844709B2 (en) * 2006-09-20 2010-11-30 International Business Machines Corporation Method and apparatus for managing central processing unit resources of a logically partitioned computing environment without shared memory access
US20090055831A1 (en) * 2007-08-24 2009-02-26 Bauman Ellen M Allocating Network Adapter Resources Among Logical Partitions
US8209687B2 (en) 2007-08-31 2012-06-26 Cirba Inc. Method and system for evaluating virtualized environments
US7734900B2 (en) 2008-01-11 2010-06-08 International Business Machines Corporation Computer configuration virtual topology discovery and instruction therefore
US7739434B2 (en) 2008-01-11 2010-06-15 International Business Machines Corporation Performing a configuration virtual topology change and instruction therefore
US7487506B1 (en) 2008-01-16 2009-02-03 International Business Machines Corporation Autonomous management of system throughput
CN101778428B (zh) * 2009-01-14 2013-07-24 电信科学技术研究院 一种确定时频资源的方法、系统和装置
CN101819540B (zh) * 2009-02-27 2013-03-20 国际商业机器公司 在集群中调度任务的方法和系统
CN101706743B (zh) * 2009-12-07 2012-09-05 北京航空航天大学 一种多核环境下的虚拟机调度方法
US8869160B2 (en) * 2009-12-24 2014-10-21 International Business Machines Corporation Goal oriented performance management of workload utilizing accelerators
US8589941B2 (en) * 2010-04-23 2013-11-19 International Business Machines Corporation Resource affinity via dynamic reconfiguration for multi-queue network adapters
US8959220B2 (en) 2010-11-02 2015-02-17 International Business Machines Corporation Managing a workload of a plurality of virtual servers of a computing environment
US8984109B2 (en) 2010-11-02 2015-03-17 International Business Machines Corporation Ensemble having one or more computing systems and a controller thereof
US9081613B2 (en) 2010-11-02 2015-07-14 International Business Machines Corporation Unified resource manager providing a single point of control
US9253016B2 (en) 2010-11-02 2016-02-02 International Business Machines Corporation Management of a data network of a computing environment
US8966020B2 (en) 2010-11-02 2015-02-24 International Business Machines Corporation Integration of heterogeneous computing systems into a hybrid computing system
CN102063331B (zh) * 2011-01-07 2013-04-17 同济大学 用于空间计算并行化的自适应负载平衡方法
CN103974149A (zh) * 2013-02-01 2014-08-06 鼎点视讯科技有限公司 分配带宽方法及装置
CN103279389B (zh) * 2013-04-28 2016-06-22 中国工商银行股份有限公司 一种主机批量负载的调度方法以及调度系统
US9715268B2 (en) 2015-05-08 2017-07-25 Microsoft Technology Licensing, Llc Reducing power by vacating subsets of CPUs and memory
US10034407B2 (en) * 2016-07-22 2018-07-24 Intel Corporation Storage sled for a data center
CN106371922A (zh) * 2016-08-29 2017-02-01 成都支付通卡友电子商务有限公司 动态负载平衡批量处理系统
US10452436B2 (en) * 2018-01-03 2019-10-22 Cisco Technology, Inc. System and method for scheduling workload based on a credit-based mechanism
US10922139B2 (en) * 2018-10-11 2021-02-16 Visa International Service Association System, method, and computer program product for processing large data sets by balancing entropy between distributed data segments

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2682770B2 (ja) * 1992-05-15 1997-11-26 富士通株式会社 仮想計算機システムのcpu制御方式
CA2100540A1 (en) * 1992-10-19 1994-04-20 Jonel George System and method for performing resource reconfiguration in a computer system
JPH0991257A (ja) * 1995-09-25 1997-04-04 Nec Corp Cpu管理方式
US5925102A (en) * 1997-03-28 1999-07-20 International Business Machines Corporation Managing processor resources in a multisystem environment in order to provide smooth real-time data streams, while enabling other types of applications to be processed concurrently
JP4634548B2 (ja) * 1997-11-04 2011-02-16 ヒューレット・パッカード・カンパニー マルチプロセッサコンピュータシステム及びその動作方法
US6647508B2 (en) * 1997-11-04 2003-11-11 Hewlett-Packard Development Company, L.P. Multiprocessor computer architecture with multiple operating system instances and software controlled resource allocation

Also Published As

Publication number Publication date
IL148728A0 (en) 2002-09-12
HUP0301326A2 (en) 2003-08-28
IL148728A (en) 2007-08-19
HU228286B1 (en) 2013-02-28
JP2003514270A (ja) 2003-04-15
DE60016283T2 (de) 2005-12-01
EP1256039B1 (en) 2004-11-24
WO2001023974A3 (en) 2002-09-12
CA2382017A1 (en) 2001-04-05
BRPI0014350B1 (pt) 2017-03-21
PL365894A1 (en) 2005-01-10
BR0014350A (pt) 2003-07-29
CN100397341C (zh) 2008-06-25
CA2382017C (en) 2007-06-26
DE60016283D1 (de) 2004-12-30
EP1256039A2 (en) 2002-11-13
CN1391671A (zh) 2003-01-15
AU7437600A (en) 2001-04-30
CZ20021093A3 (cs) 2002-06-12
WO2001023974A2 (en) 2001-04-05
ATE283512T1 (de) 2004-12-15
JP3872343B2 (ja) 2007-01-24

Similar Documents

Publication Publication Date Title
ES2228607T3 (es) Gestion de la carga de trabajo en un entorno informatico.
JP3813056B2 (ja) 優先順位に基づくチャネル・サブシステム保留入出力作業キューの処理
JP3807916B2 (ja) コンピュータ環境の区画のグループを管理する方法およびシステム
JP3672236B2 (ja) コンピュータ環境の中央処理装置を管理する方法、システム、およびプログラム製品
JP3659324B2 (ja) コンピュータ環境の論理プロセッサを管理する方法、システム、およびプログラム製品
US11036556B1 (en) Concurrent program execution optimization
US7051188B1 (en) Dynamically redistributing shareable resources of a computing environment to manage the workload of that environment
US6519660B1 (en) Method, system and program products for determining I/O configuration entropy
EP3253027B1 (en) Resource allocation method and apparatus for virtual machines
RU2569805C2 (ru) Виртуальная архитектура неоднородной памяти для виртуальных машин
US7568052B1 (en) Method, system and program products for managing I/O configurations of a computing environment
US10686721B2 (en) Storage device access mediation
JP2010097566A (ja) 情報処理装置、及び情報処理システムにおけるバッチ処理の割り当て方法
CN116057513A (zh) 指令分派路由