ES2305216T3 - Metodo para establecer niveles de prioridad en un sistema de computo de multiprogramacion con planificacion por prioridades, sistema de computo de multiprogramacion y programa para esto. - Google Patents
Metodo para establecer niveles de prioridad en un sistema de computo de multiprogramacion con planificacion por prioridades, sistema de computo de multiprogramacion y programa para esto. Download PDFInfo
- Publication number
- ES2305216T3 ES2305216T3 ES02711528T ES02711528T ES2305216T3 ES 2305216 T3 ES2305216 T3 ES 2305216T3 ES 02711528 T ES02711528 T ES 02711528T ES 02711528 T ES02711528 T ES 02711528T ES 2305216 T3 ES2305216 T3 ES 2305216T3
- Authority
- ES
- Spain
- Prior art keywords
- priority
- threads
- execution
- level
- time
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 129
- PWPJGUXAGUPAHP-UHFFFAOYSA-N lufenuron Chemical compound C1=C(Cl)C(OC(F)(F)C(C(F)(F)F)F)=CC(Cl)=C1NC(=O)NC(=O)C1=C(F)C=CC=C1F PWPJGUXAGUPAHP-UHFFFAOYSA-N 0.000 title 1
- 230000008569 process Effects 0.000 claims abstract description 99
- 230000003247 decreasing effect Effects 0.000 claims description 13
- 230000003292 diminished effect Effects 0.000 claims description 8
- 238000004590 computer program Methods 0.000 claims description 3
- 238000004422 calculation algorithm Methods 0.000 description 6
- 230000008859 change Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 230000007423 decrease Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 206010049976 Impatience Diseases 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000012885 constant function Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000001627 detrimental effect Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
- Computer And Data Communications (AREA)
- Electrically Operated Instructional Devices (AREA)
Abstract
Método para establecer niveles de prioridad en un sistema de cómputo de multiprogramación (1) con planificación por prioridades, en el cual hilos (15, 16, 17) de ejecución de cada proceso (13, 14) tienen un nivel de prioridad estándar, que comprendo medir el uso relativo de uno o más procesadores (2) en el sistema (1) por los hilos (15, 16, 17) de ejecución de un proceso (13, 14), caracterizado en que los niveles de prioridad de uno o más hilos (15, 16, 17) de ejecución son bajados si su uso relativo medido excede cierto umbral de escalamiento durante la duración de un período de tiempo de escalamiento (DeltaT1).
Description
Método para establecer niveles de prioridad en
un sistema de cómputo de multiprogramación con planificación por
prioridades, sistema de cómputo de multiprogramación y programa para
esto.
La invención está relacionada con un método para
establecer niveles de prioridad en un sistema de cómputo de
multiprogramación con planificación por prioridades, con un sistema
de cómputo de multiprogramación con planificación por prioridades,
y con un programa de cómputo cargable en un sistema de cómputo de
multiprogramación con planificación por prioridades.
Un sistema de cómputo de multiprogramación es un
sistema de cómputo que es capaz de cambiar hacia adelante y hacia
atrás entre múltiples programas cargados en memoria. El sistema
operativo de tal ordenador consta de un planificador, una parte que
escoge cuál de dos o más hilos de ejecución que ya están listos para
ser ejecutados debería ser ejecutado a continuación. Para asegurar
que ciertos hilos tienen mejor probabilidad de ser seleccionados
que otros, los hilos tienen un nivel de prioridad asignado a
ellos.
Aunque los sistemas operativos comunes tienen
mecanismos para cambiar niveles de prioridad, el establecimiento
básico del nivel de prioridad para los procesos y/o los hilos que
son creados cuando un programa de aplicación es ejecutado, no es
realizado por el sistema operativo. El nivel es establecido lo mismo
por el proveedor de un programa de aplicación, o es establecido por
un administrador de sistema. Esto puede conducir a problemas cuando
la ejecución de un cierto programa requiere una cantidad grande de
capacidad del procesador. El establecimiento de nivel de prioridad
alto conducirá a una situación donde el hilo o los hilos de
ejecución de este programa consumen todos los recursos disponibles
de procesamiento. Esto es perjudicial para el rendimiento de otros
procesos simultáneamente en ejecución en el sistema de cómputo. En
situaciones donde usuarios diferentes ejecutan programas de
aplicación en un sistema, un proceso iniciado por uno de ellos puede
causar que los otros procesos respondan muy lentamente a los
comandos introducidos por otro usuario.
WO 99/21081 revela un sistema y método para
realizar operaciones de procesamiento por ordenador en un sistema
de procesamiento de datos incluyendo un procesador
multi-hilo y lógica de alternado de hilos. El
procesador multi-hilo es capaz de alternar entre
dos o más hilos de instrucciones que pueden ser ejecutados
independientemente. Cada hilo tiene un estado correspondiente en un
registro de estados de hilos que depende de su estado de ejecución.
La lógica de alternado de hilos contiene un registro de control de
alternado de hilos para almacenar los estados en los cuales un hilo
ocurrirá. La lógica de alternado de hilos contiene un registro de
tiempo de espera que fuerza un alternado de hilo cuando la
ejecución del hilo en ejecución en el procesador
multi-hilo excede un período de tiempo programable.
La lógica de alternado de hilos también tiene un registro de conteo
de progreso hacia delante para impedir alternado repetitivo de hilo
entre hilos en el procesador multi-hilo. La lógica
de alternado de hilos también es receptiva a un administrador de
software capaz de cambiar la prioridad de los diferentes hilos y
así reemplazar eventos de alternado de hilo.
EP 880 095 revela un método de planificación de
trabajos para ser ejecutado por un recurso en un sistema de cómputo
en donde los trabajos son agrupados en clases, las clases de trabajo
compitiendo por la atención del recurso estando dispuestas en una
jerarquía. Cada clase de trabajo tiene un valor en función del
tiempo que controla cuando la clase de trabajo es seleccionada por
el recurso si el tiempo de procesamiento se tiene disponible. En un
nivel particular de la jerarquía, planificar prioridades es definido
por una o más funciones basadas en el tiempo, cada una de las
cuales puede ser constante o variable dinámicamente. Cuando son
usadas funciones constantes basadas en el tiempo, cada clase de
trabajo tiene un valor de planificación que permanece fijo en el
tiempo. Cuando son usadas funciones dinámicas basadas en el tiempo,
los valores en función del tiempo de las clases de trabajo son
modificados para alterar el momento en el cuál la clase de trabajo
adquiere el recurso.
Es un objetivo de la invención proporcionar un
método, sistema de cómputo de multiprogramación y programa de
cómputo según el preámbulo de reivindicaciones 1, 10 y 11,
respectivamente que puede usarse para aliviar los problemas de
rendimiento causados por un hilo de ejecución de procesamiento
intensivo.
Consecuentemente, la invención proporciona un
método para establecer niveles de prioridad en un sistema de
cómputo de multiprogramación con planificación por prioridades, en
el cual los hilos de ejecución de cada proceso tienen un nivel de
prioridad estándar, que comprende medir el uso relativo de uno o más
procesadores en el sistema por los hilos de ejecución de un
proceso, en donde los niveles de prioridad de uno o más hilos de
ejecución son disminuidos si su uso relativo medido excede un cierto
umbral de escalamiento durante la duración de un período de tiempo
de escalamiento.
De esta manera, será detectado un hilo de
procesamiento intensivo. Recibirá una prioridad relativa inferior a
los otros hilos de ejecución. El planificador en el sistema
operativo asignará por consiguiente menos ranuras de tiempo a ese
hilo. Se harán más ranuras de tiempo disponibles a los otros hilos
de ejecución.
Preferentemente, el grado de prioridad de todos
los hilos, de ejecución que forman parte de un proceso es
disminuido si el uso relativo total por los hilos de ese proceso
excede un umbral de escalamiento en la duración del período de
tiempo de escalamiento.
Por lo tanto, en un sistema de cómputo capaz
para ejecutar código multi-hilo un proceso con
muchos más hilos de ejecución que los otros no evadirá la
detección. Los usuarios generalmente sólo notan si un proceso se
comporta lento. Disminuyendo la prioridad de todo los hilos de
ejecución de un proceso cuando la capacidad de procesamiento total
usada por ellos excede un umbral hará a los otros procesos respondan
mejor.
Preferentemente, el grado de prioridad de al
menos un hilo es disminuido al nivel más bajo dentro de un rango de
valores posibles.
Por lo tanto, el efecto es instantáneo. No hay
que reducir la prioridad gradualmente sobre varios períodos de
tiempo. En combinación con el uso de un período de tiempo de
escalamiento, el método es estable, suficientemente receptivo como
para evitar impaciencia de parte de los usuarios.
Preferentemente, los niveles de prioridad
disminuidos son devueltos al nivel de prioridad estándar si el uso
relativo está más abajo de un umbral de prueba durante un período de
tiempo de prueba.
El método por consiguiente se mantiene efectivo
sobre un intervalo de tiempo extendido, dado que no es posible que
el nivel de prioridad de cada proceso sea disminuido por turnos
hasta que todos estén en el nivel más bajo.
En una realización preferida, es registrada una
incidencia de cambio de nivel de prioridad.
Es por tanto posible detectar procesos
"hambrientos de CPU" (unidad central de procesamiento, por sus
siglas en inglés). Este conocimiento puede usarse para obtener
provecho, por ejemplo en ejecución tales procesos en la noche.
Según un aspecto de la invención, es
proporcionado un sistema de cómputo de multiprogramación con
planificación por prioridades, capaz de o adaptado para ejecutar un
método según cualquiera de las reivindicaciones desde la 1 hasta la
9.
El sistema de cómputo, que también podría ser un
sistema de cómputo multiusuario, responde a los comandos del
usuario, aun cuando muchos procesos estén siendo ejecutados
simultáneamente.
Según un aspecto más de la invención, un
programa de cómputo cargable en un sistema de cómputo de
multiprogramación con planificación por prioridades, como este,
cuando se ejecuta, el sistema de cómputo es capaz de ejecutar un
método según es proporcionado en cualquiera de las reivindicaciones
desde la 1 hasta la 9.
Este programa puede usarse para aliviar
problemas causados por un proceso reclamando demasiada capacidad de
procesamiento. En particular, asegura que otros procesos continúen
en ejecución en un ritmo aceptable para los usuarios del sistema de
cómputo.
La invención será ahora descrita con más
detalle, con referencia a los dibujos acompañantes.
La figura 1 muestra un diagrama muy esquemático
de algunos componentes de un sistema de cómputo simple.
La figura 2 muestra un diagrama muy esquemático
de procesos e hilos con niveles diferentes de prioridad.
La figura 3 muestra una gráfica de la cantidad
relativa de potencia de procesamiento de CPU usada por un
proceso.
La figura 1 muestra un diagrama muy esquemático
de algunos componentes básicos de un sistema de cómputo, puramente
para ilustrar el propósito de la invención. El sistema comprende una
unidad central de proceso (CPU 2) (CPU por sus siglas en inglés),
con una caché 3, conectados mediante un bus de caché 4. Un chip de
puente 5 conecta la CPU 2 a la memoria del sistema 6 y un
controlador de disco 7 mediante un bus local 8 y un bus de sistema
9 y un bus principal 10, respectivamente. El controlador del disco
proporciona acceso a un disco duro 10 sobre un bus de dispositivo
periférico 12.
Aunque el sistema de la figura 1 tiene un solo
CPU 2, la invención no está limitada a sistemas de cómputo de un
solo procesador. Ciertamente, no sólo puede ser usado en conexión
con un ordenador multiprocesador sino también en un sistema de
cómputo distribuido que comprenda varios nodos interconectados,
donde cada nodo comprende un sistema parecido a ese de la figura 1.
En tal sistema distribuido, el método según la invención puede ser
implementado en cada nodo separadamente, o en el sistema entero.
El método de la invención está ejecutado a los
sistemas de multiprogramación. En lo siguiente, las referencias
serán hechas a la figura 2 para explicar algunos conceptos en un
sistema de multiprogramación.
Uno o más programas, algoritmos expresados en
alguna notación adecuada, son almacenados en el disco duro 10.
Cuando un programa es va a ser ejecutado, uno o más procesos son
ejecutados en el sistema de cómputo. Un proceso en el contexto de
la aplicación presente es una actividad de alguna clase. Un proceso
tiene una entrada, una salida y un estado. Usualmente, hay un
proceso para cada programa de aplicación que está siendo ejecutado,
pero ocasionalmente el programa de aplicación inicia otros
procesos.
En la figura 2 un primer proceso 13 y un segundo
proceso 14 son esquemáticamente representados. Cada proceso 13, 14
tiene algún espacio de direcciones en la memoria del sistema 6
reservado para él, una lista de posiciones de memoria que un
proceso puede leer y escribir. Cuando uno de los procesos 13, 14
debe ser ejecutado, los contenidos del espacio de direcciones son
cargados en el registro de la CPU, y las instrucciones, también
almacenadas en el espacio de direcciones de cada proceso, son
efectuadas.
El sistema de la figura 1 es un sistema de
multiprogramación, significa que el primer y el segundo proceso 13,
14 pueden estar en la memoria del sistema 6 concurrentemente. El
sistema alterna entre los procesos 13, 14 de tal manera que parece
al usuario que los procesos 13, 14 se ejecutan simultáneamente. Si
ambos procesos 13, 14 están listos para ser ejecutados, un
algoritmo de planificación en el sistema operativo es utilizado para
decidir cuál debería ser ejecutado.
En un sistema multi-hilo, cada
proceso puede tener uno o más hilos de ejecución. En el ejemplo de
la figura 2, el primer proceso 13 en la figura 2 tiene un primer
hilo 15 y un segundo hilo 16. El segundo proceso 14 también tiene
dos hilos 17. Un hilo de ejecución es una entidad programada para la
ejecución en la CPU 2. Cada uno de los hilos 15, 16, 17 tiene un
contador de programa, que indica su progreso, registros almacenando
sus variables actuales de funcionamiento, y una pila. Los hilos 15,
16 de ejecución del primer proceso 13 comparten el espacio de
direcciones de ese proceso 13, abren archivos y otros recursos. Lo
mismo se cumple para los hilos 17 del segundo proceso 14.
En un sistema de multiprogramación que soporta
multiprocesamiento, el sistema alterna entre los hilos de ejecución
del 15 al 17. Otra vez, el algoritmo de planificación decide cuál de
los hilos del 15 al 17 debería ser ejecutado, cuando más de uno
está listo. La invención será explicada en el contexto de un sistema
de multiprogramación que soporta multiprocesamiento. La persona
experta, sin embargo, entenderá que en un sistema que no soporta
multiprocesamiento, cada proceso tendrá exactamente un hilo de
ejecución. En tal sistema la invención todavía puede ser aplicada.
Los términos hilo y proceso puede ser usados de forma
intercambiable.
La mayoría de los sistemas operativos modernos
usan una forma de algoritmo de planificación por prioridades.
Varias variantes existen, y la invención no está limitada a ser
usada con alguna variante en particular. Sin embargo, la invención
será explicada en el contexto de una variante desplegada en un
sistema operativo ampliamente usado, el cual también soporta
multiprocesamiento. En lo referente a la figura 2, un arreglo 18 de
niveles de prioridad es mostrado. Cada uno de los hilos de
ejecución del 15 al 17 tiene un nivel de prioridad dentro de un
rango de niveles de prioridad de usuario disponibles. En el ejemplo,
P_{0} denota el nivel disponible mínimo, P_{1} el más alto. El
arreglo 18 también comprende un rango de niveles de prioridad de
sistema 20 en un rango desde P_{1} para P_{2}. Los niveles de
prioridad de sistema están reservados para hilos de los procesos
del sistema operativo.
En el sistema operativo usado aquí para explicar
la invención, existen varias clases de prioridades de procesos y
varias clases de prioridades de hilos. Cada uno de los hilos del 15
al 17 tiene un nivel de prioridad básico, determinado por la clase
de prioridad de hilo asignado a este y la clase de prioridad de
proceso asignada al proceso del cual forma parte. Por lo tanto, el
primer hilo 15 del primer proceso 13 está en una clase de prioridad
de hilo superior que el segundo hilo 16. El primer hilo 15 está por
consiguiente en un nivel de prioridad de usuario más alto 13 que el
segundo hilo 16.
El tiempo de procesamiento en la CPU 2 está
dividido en quanta, típicamente entre 20 y 200 ms. El planificador
entra en acción cuando cualquiera de uno de tres eventos ocurren: un
quantum de tiempo ha acabado, un hilo se bloquea (esto es, no puede
continuar en ejecución porque necesita una entrada que no está
disponible inmediatamente), u ocurre una interrupción. En ese
momento, el planificador seleccionará primero el hilo de más alto
nivel de prioridad. Cuando varios hilos están en un nivel de
prioridad, es usada una cola de espera, a fin de que cada uno de
los hilos en ese nivel sea seleccionado en turno.
La prioridad básica de un hilo no es variada por
el sistema operativo. Comienza en un nivel estándar; un nivel
determinado por el programa o por el administrador del sistema que
es normalmente mantenido a lo largo de la ejecución del hilo.
El sistema operativo puede añadir un valor al
nivel de prioridad básica. En el sistema operativo de ejemplo, el
nivel de prioridad de un hilo puede ser temporalmente aumentado
añadiendo un factor al nivel de prioridad básica. Otros sistemas
operativos añaden a la prioridad básica una cantidad que varía en el
tiempo, de modo que el nivel total de prioridades disminuya cuando
el hilo es ejecutado y que aumente cuando no.
Ha sido encontrado que ni el incremento temporal
ni la adición de un factor que varia en el tiempo al nivel de
prioridad básica evita adecuadamente los problemas causados por los
hilos o los procesos con uno nivel de prioridad básica demasiado
alto. Tal hilo es continuamente seleccionado para ejecutar, la
mayoría de las veces usando el quantum de tiempo entero. En el
sistema operativo usado aquí como ejemplo, un nivel bajo de
prioridad de usuario es sólo incrementado durante la duración de uno
o dos quanta de tiempo. Esto es suficiente para que un comando sea
introducido a dicho proceso, pero no suficiente para que el proceso
haga mucho con la orden. El momento en que ha acabado el incremento
temporal, el hilo con el nivel de prioridad básica más alto tomará
posesión otra vez. En una escala macroscópica de tiempo varias
órdenes de magnitud mayor que el quanta de tiempo, la CPU ejecutará
predominantemente los hilos con el nivel de prioridad básica más
alto.
\newpage
Problemas severos pueden ser el resultado,
especialmente en sistemas de cómputo que comprenden servidores de
red de gama alta y estaciones de trabajo usados por varios usuarios.
Si, por ejemplo, un usuario ejecuta una aplicación de procesamiento
de imágenes con un nivel de prioridad básica alto, otros usuarios
notarán que sus aplicaciones se vuelven más lentas y de menos
rendimiento al responder. Típicamente, un usuario se quejará a un
administrador de sistema, quien retrasará la prioridad básica de los
hilos de la aplicación de procesamiento de imágenes a mano.
La invención proporciona un programa que es
capaz de ajustar automáticamente niveles de prioridad básica, de
modo que no son ya necesarios tales ajustes por un administrador de
sistema. Es medido el uso relativo de la CPU 2 por los hilos 15,
16, 17 de ejecución. El grado de prioridad básico de un hilo de
ejecución es disminuido de su nivel estándar si el uso relativo
excede un cierto umbral de escalamiento durante un período de
tiempo de escalamiento de una cierta duración. Como se mencionó
anteriormente, el nivel estándar es el nivel por defecto en el cual
el hilo es normalmente ejecutado.
Por lo tanto, en el sistema de ejemplo, es
medido el uso relativo del procesador por los hilos 15, 16 de
ejecución del primer proceso 13, como lo es el uso relativo por los
hilos 17 de ejecución del segundo proceso 14. En un sistema que
soporta multiprocesamiento, el mirar individualmente a cada uno de
los hilos de ejecución no es aconsejable desde el punto de vista de
un usuario. Una aplicación de procesamiento de imágenes con muchos
hilos de ejecución podría escapar a la atención, dado que cada hilo
individual no gastará una gran parte del tiempo de procesamiento.
Tomados en conjunto, sin embargo, los hilos de un proceso podrían
impedir completamente que sean ejecutados los hilos de otros
procesos.
Por consiguiente, en un sistema que soporta
multiprocesamiento, los grados de prioridad de todos los hilos de
ejecución que forman parte de un proceso son disminuidos si el uso
relativo total por los hilos de ese proceso excede un cierto umbral
de escalamiento durante un cierto período de tiempo.
En el sistema de ejemplo, esto puede ser logrado
fácilmente disminuyendo la clase de prioridad de proceso, por
ejemplo a través de una llamada de sistema al sistema operativo.
En lo referente a la figura 3, es mostrado el
uso relativo de la CPU 2 por el primer proceso 13. La gráfica es
derivada de un sistema que usa el método según la invención. El uso
relativo es expresado como un porcentaje del tiempo de
procesamiento, pero en principio pudo ser usada alguna otra medida
como el número de operaciones. El umbral de escalamiento ha sido
colocado en este ejemplo en el 80%. En un punto T_{0} en el
tiempo, el uso relativo del procesador por el primer proceso 13
excede el umbral de escalamiento. De hecho está sustancialmente al
100%. Debido a que el uso relativo permanece por encima del 80% a lo
largo de un intervalo de tiempo \DeltaT_{1}, el primer proceso
13 es movido a una clase inferior de prioridad de proceso. El nivel
de prioridad de ambos los hilos 15, 16 del proceso 13, incluyendo
el hilo "hambriento de CPU" es consecuentemente también
disminuido. Como resultado el uso relativo desciende a alrededor del
95%, lo cual es suficiente para dejar que el segundo proceso proceda
sin mucho obstáculo.
El largo del intervalo de tiempo \DeltaT_{1}
depende mayormente de la cantidad de tolerancia de los usuarios del
sistema de cómputo. Según es obvio de la gráfica de la figura 3, es
posible que los otros procesos sean eficazmente excluidos de
ejecutar durante el intervalo de tiempo \DeltaT_{1}. Por
supuesto, si después de aminorar el nivel de prioridad del primer
proceso 13, el nivel de prioridad del hilo "hambriento de CPU"
es todavía más alto que de todos los hilos del segundo proceso 14,
nada ocurrirá hasta que otro espacio de tiempo de longitud
\DeltaT_{1} haya transcurrido. Esto sería inaceptable.
Consecuentemente, el grado de prioridad es
disminuido al nivel más bajo dentro de un rango de valores
permitidos en T_{1}. En el sistema de ejemplo, la clase de
prioridad del proceso es disminuida al nivel mínimo posible. Dentro
del alcance de la invención, sin embargo, la clase de prioridad de
hilo de todos los hilos del proceso adicionalmente podría ser
disminuida al nivel mínimo posible. Ambos hilos 15, 16 del primer
proceso 13 estarían entonces en el nivel P_{0}.
A menudo, un proceso o hilo sólo temporalmente
consume demasiada capacidad del procesador. Una situación de
ejemplo es una en donde dos usuarios ejecutan una aplicación de
procesamiento de texto en una máquina. Cada uno de los dos procesos
está en el mismo nivel de prioridad básica. Un usuario podría
decidir ejecutar una macro. En ese momento, su proceso podría usar
tanta capacidad del procesador que el otro proceso sea efectuado.
El grado de prioridad del proceso que ejecuta una macro será
disminuido. Si en un punto posterior el otro usuario ejecuta una
macro, la prioridad de su proceso será disminuida. Ambos procesos
ahora estarán en el nivel mínimo de prioridad. Ningún otro remedio
queda si un proceso comienza a dominar otra vez.
Esta situación indeseable es evitada, porque los
niveles de prioridad disminuidos son devueltos al nivel de
prioridad estándar si el uso relativo es más bajo que un umbral de
prueba. En la figura 3, el umbral de prueba es colocado en el
40%.
Por supuesto, el uso de la CPU temporalmente
podría descender por debajo del umbral de prueba. Si los niveles de
prioridad fueran devueltos al nivel de prioridad estándar
inmediatamente, entonces el resultado sería un sistema muy
inestable, en que los niveles de prioridad básica son cambiados casi
cada segundo.
Esto es evitado con sólo devolver los niveles de
prioridad al nivel de prioridad estándar si el uso relativo es
menor que el umbral de prueba durante un período de tiempo de prueba
de un cierto \DeltaT_{2} de largo. Por lo tanto, en la figura
3, el nivel de prioridad de los hilos 15, 16 del primer proceso 13
es devuelto a sus niveles estándar en T_{3}.
\global\parskip0.900000\baselineskip
El método según la invención coexiste con el
algoritmo de planificación del sistema operativo. Es proporcionado
como un programa separado que ejecuta en el espacio del usuario. El
planificador del sistema operativo se ejecuta en el espacio del
núcleo, usando las prioridades básicas determinadas establecidas por
el programa de la invención.
El planificador del sistema operativo y el
método de la invención prestan servicios diferentes pero
complementarios. El planificador primordialmente asegura que sea
hecho un uso eficiente de los recursos de los recursos del sistema
de cómputo, por ejemplo que responda a los comandos del teclado y
otras formas de entrada y salida. Los parámetros del planificador
son por consiguiente dependientes de la plataforma.
El método de la invención asegura proporcionar
una mejor experiencia de usuario. Los parámetros por consiguiente
están basados en preferencias del usuario, como cuánto tiempo una
persona está preparada para esperar por que un proceso se reanude.
Es por consiguiente ventajoso ejecutar el método en el espacio del
usuario a fin de que el programa pueda ser ejecutado en sistemas
diferentes con sistemas operativos diferentes o pueda ser exportado
a sistemas operativos.
Aunque el planificador del sistema operativo y
el programa de la invención ambos ajustan niveles de prioridad,
hacen eso en una escala de tiempo diferente. El planificador del
sistema operativo trabaja en la escala de tiempo determinada por el
quanta de tiempo, típicamente 10-100 ms. El programa
de la invención opera en el período de tiempo establecido por la
longitud del período de tiempo de escalamiento \DeltaT_{1}. La
longitud del período de tiempo de escalamiento es mayor que 1 s.
Más usualmente, es aún mayor, por ejemplo 2 s o 5 s. El programa de
la invención por lo tanto no interferirá en el algoritmo de
planificación de tal manera que el sistema de cómputo se vuelva
inestable.
El programa de la invención se pretende como una
solución para los problema comúnmente encarados por administradores
de sistema. Los libera de la carga de tener que ajustar los niveles
de prioridad básica de los hilos o procesos manualmente. También
proporciona dos características adicionales.
En primer lugar, es registrada una incidencia de
cambio de un nivel de prioridad. Una entrada es hecha una entrada
en una bitácora en T_{1} y en T_{3}. La entrada identifica al
menos el proceso culpable. Un administrador de sistema usa la
bitácora para decidir disminuir el nivel estándar de prioridad de un
proceso o ejecutar el proceso en un momento más conveniente, por
ejemplo en la noche. Dado que una entrada es hecha cuando el grado
de prioridad es disminuido y cuando es aumentado, se logra
determinar cuánto tiempo un proceso realiza demandas excesivas en
la potencia del procesador de la CPU 2.
Como una segunda característica el administrador
de sistema puede ajustar al menos uno de los umbrales y/o longitudes
de período de tiempo \DeltaT_{1}, \DeltaT_{2}, pero
preferentemente todos ellos. Él así puede poner a punto el
rendimiento del sistema en todo momento.
Cambios al umbral de escalamiento pueden ser
hechos para tener en cuenta el número de procesos en ejecución. El
95% podría ser realmente aceptable cuando sólo dos procesos se
ejecutan, porque el restante 5% será realmente adecuado. Si varios
centenares de procesos se ejecutan, entonces el 5% podría ser
demasiado poco para que todos ellos se ejecuten a un paso
aceptable. Cambios en el umbral de prueba podrían usarse
similarmente para tener en cuenta el número de procesos en
ejecución.
Un incremento pequeño en el período de tiempo de
escalamiento \DeltaT_{1} podría, por ejemplo, es útil cuando un
proceso está caracterizado por varias ráfagas de CPU cada una de una
duración que es ligeramente más larga que el \DeltaT_{1} de
período de tiempo de escalamiento normal. El incremento en
\DeltaT_{1} impediría cambios frecuentes en el nivel de
prioridad básica.
Será aparente para esos expertos en la técnica
que la invención no está limitada a la realización descrita arriba,
sino que puede ser variada dentro del alcance de las
reivindicaciones. A este respecto, es notado que algunos sistemas
operativos hacen uso de niveles de prioridad negativos. Los procesos
o los hilos en un nivel de prioridad de un valor inferior (esto es
más negativo) tienen precedencia sobre esos con un valor superior.
En la aplicación presente, un nivel de prioridad más alto debería
ser leído como un nivel de prioridad que posibilitará a un proceso
o hilo en ese nivel tener precedencia sobre procesos en un nivel
inferior.
\vskip1.000000\baselineskip
\bullet WO 9921081 A
\bullet EP 880095 A
\global\parskip1.000000\baselineskip
Claims (11)
1. Método para establecer niveles de prioridad
en un sistema de cómputo de multiprogramación (1) con planificación
por prioridades, en el cual hilos (15, 16, 17) de ejecución de cada
proceso (13, 14) tienen un nivel de prioridad estándar, que
comprendo medir el uso relativo de uno o más procesadores (2) en el
sistema (1) por los hilos (15, 16, 17) de ejecución de un proceso
(13, 14), caracterizado en que los niveles de prioridad de
uno o más hilos (15, 16, 17) de ejecución son bajados si su uso
relativo medido excede cierto umbral de escalamiento durante la
duración de un período de tiempo de escalamiento
(\DeltaT_{1}).
2. Método según la reivindicación 1, en donde el
nivel de prioridad de todos los hilos (15, 16, 17) de ejecución que
forman parte de un proceso (13, 14) es disminuido si el uso total
relativo por los hilos (15, 16, 17) de ese proceso (13, 14) excede
un umbral de escalamiento durante la duración del período de tiempo
de escalamiento (\DeltaT_{1}).
3. Método según la reivindicación 1 ó 2, en
donde el grado de prioridad de al menos un hilo es disminuido al
nivel más bajo dentro de un rango de valores posibles (19).
4. Método según cualquiera de las
reivindicaciones desde la 1 hasta la 3, en donde los niveles de
prioridad disminuidos son devueltos al nivel de prioridad estándar
si el uso relativo está por debajo de un umbral de prueba.
5. Método según la reivindicación 4, en donde
los niveles de prioridad disminuidos son devueltos al nivel de
prioridad estándar si el uso relativo está por debajo de un umbral
de prueba durante la duración de un período de tiempo de prueba
(\DeltaT_{2}).
6. Método según cualquiera de las
reivindicaciones precedentes, en donde los niveles de prioridad son
variados por un programa que se ejecuta en el espacio de usuario, y
las prioridades son usadas por un planificador de sistema
operativo.
7. Método según cualquiera de las
reivindicaciones precedentes, en donde es registrada una incidencia
de cambio de un nivel de prioridad.
8. Método según cualquiera de las
reivindicaciones precedentes, en donde el período de tiempo de
escalamiento (\DeltaT_{1}) es más largo que un segundo.
9. Método según cualquiera de las
reivindicaciones precedentes, en donde al menos uno del (de los)
umbral(es) y/o período(s) de tiempo (\DeltaT_{1},
\DeltaT_{2}) es ajustado en valor por un administrador del
sistema de cómputo (1).
10. Sistema de cómputo de multiprogramación con
planificación por prioridades, capaz o adaptado para ejecutar un
método según cualquiera de las reivindicaciones de la 1 a la 9.
11. Programa de cómputo cargable en un sistema
de cómputo de multiprogramación (1) con planificación por
prioridades, de modo que, cuando se ejecuta, el sistema de cómputo
(1) es capaz de ejecutar un método según cualquiera de las
reivindicaciones de la 1 a la 9.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/NL2002/000070 WO2003065214A1 (en) | 2002-01-30 | 2002-01-30 | Method of setting priority levels in a multiprogramming computer system with priority scheduling, multiprogramming computer system and program therefor |
Publications (1)
Publication Number | Publication Date |
---|---|
ES2305216T3 true ES2305216T3 (es) | 2008-11-01 |
Family
ID=27656496
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ES02711528T Expired - Lifetime ES2305216T3 (es) | 2002-01-30 | 2002-01-30 | Metodo para establecer niveles de prioridad en un sistema de computo de multiprogramacion con planificacion por prioridades, sistema de computo de multiprogramacion y programa para esto. |
Country Status (11)
Country | Link |
---|---|
US (1) | US7565652B2 (es) |
EP (1) | EP1474744B1 (es) |
JP (1) | JP2005516303A (es) |
AT (1) | ATE392662T1 (es) |
AU (1) | AU2002230272B2 (es) |
CA (1) | CA2474477C (es) |
DE (1) | DE60226176T2 (es) |
DK (1) | DK1474744T3 (es) |
ES (1) | ES2305216T3 (es) |
NZ (1) | NZ534314A (es) |
WO (1) | WO2003065214A1 (es) |
Families Citing this family (58)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7657893B2 (en) * | 2003-04-23 | 2010-02-02 | International Business Machines Corporation | Accounting method and logic for determining per-thread processor resource utilization in a simultaneous multi-threaded (SMT) processor |
US7290261B2 (en) * | 2003-04-24 | 2007-10-30 | International Business Machines Corporation | Method and logical apparatus for rename register reallocation in a simultaneous multi-threaded (SMT) processor |
US20040216101A1 (en) * | 2003-04-24 | 2004-10-28 | International Business Machines Corporation | Method and logical apparatus for managing resource redistribution in a simultaneous multi-threaded (SMT) processor |
US7155600B2 (en) * | 2003-04-24 | 2006-12-26 | International Business Machines Corporation | Method and logical apparatus for switching between single-threaded and multi-threaded execution states in a simultaneous multi-threaded (SMT) processor |
US7350060B2 (en) * | 2003-04-24 | 2008-03-25 | International Business Machines Corporation | Method and apparatus for sending thread-execution-state-sensitive supervisory commands to a simultaneous multi-threaded (SMT) processor |
US7562362B1 (en) * | 2003-06-18 | 2009-07-14 | Apple Inc. | User control of task priority |
US7380247B2 (en) * | 2003-07-24 | 2008-05-27 | International Business Machines Corporation | System for delaying priority boost in a priority offset amount only after detecting of preemption event during access to critical section |
US9098340B2 (en) * | 2003-12-08 | 2015-08-04 | Teradata Us, Inc. | Virtual regulator for a database system |
US8176489B2 (en) * | 2004-12-09 | 2012-05-08 | International Business Machines Corporation | Use of rollback RCU with read-side modifications to RCU-protected data structures |
JP2007287085A (ja) * | 2006-04-20 | 2007-11-01 | Fuji Xerox Co Ltd | 画像処理装置及びプログラム |
US8813082B2 (en) * | 2006-06-22 | 2014-08-19 | International Business Machines Corporation | Thread priority based on object creation rates |
EP1892625B1 (en) * | 2006-08-09 | 2018-07-11 | Red Bend Software | Finer grained operating system scheduling |
KR101282139B1 (ko) * | 2006-09-11 | 2013-07-04 | 삼성전자주식회사 | 별도 버튼을 이용하여 성능모드 변경이 가능한컴퓨터시스템 및 그 제어방법 |
US8881169B2 (en) * | 2007-03-20 | 2014-11-04 | Fujitsu Mobile Communications Limited | Information processing apparatus for monitoring event delivery from plurality of monitoring threads |
US7853950B2 (en) | 2007-04-05 | 2010-12-14 | International Business Machines Corporarion | Executing multiple threads in a processor |
US8832702B2 (en) * | 2007-05-10 | 2014-09-09 | Freescale Semiconductor, Inc. | Thread de-emphasis instruction for multithreaded processor |
US20090070762A1 (en) * | 2007-09-06 | 2009-03-12 | Franaszek Peter A | System and method for event-driven scheduling of computing jobs on a multi-threaded machine using delay-costs |
US8117618B2 (en) * | 2007-10-12 | 2012-02-14 | Freescale Semiconductor, Inc. | Forward progress mechanism for a multithreaded processor |
US9830670B2 (en) | 2008-07-10 | 2017-11-28 | Apple Inc. | Intelligent power monitoring |
US8161493B2 (en) * | 2008-07-15 | 2012-04-17 | International Business Machines Corporation | Weighted-region cycle accounting for multi-threaded processor cores |
JP5173713B2 (ja) | 2008-09-30 | 2013-04-03 | ルネサスエレクトロニクス株式会社 | マルチスレッドプロセッサ及びそのハードウェアスレッドのスケジュール方法 |
EP2369477B1 (en) | 2010-02-22 | 2017-10-11 | Telefonaktiebolaget LM Ericsson (publ) | Technique for providing task priority related information intended for task scheduling in a system |
EP2369478A1 (en) * | 2010-02-22 | 2011-09-28 | Telefonaktiebolaget L M Ericsson (PUBL) | Technique of scheduling tasks in a system |
JP2011180894A (ja) * | 2010-03-02 | 2011-09-15 | Fujitsu Ltd | ジョブスケジューリングプログラム、ジョブスケジューリング装置、及びジョブスケジューリング方法 |
US8904399B2 (en) * | 2010-03-15 | 2014-12-02 | Qualcomm Incorporated | System and method of executing threads at a processor |
JPWO2011158405A1 (ja) * | 2010-06-18 | 2013-08-15 | パナソニック株式会社 | 優先度情報生成装置、情報処理装置 |
US8866701B2 (en) | 2011-03-03 | 2014-10-21 | Citrix Systems, Inc. | Transparent user interface integration between local and remote computing environments |
US9210213B2 (en) | 2011-03-03 | 2015-12-08 | Citrix Systems, Inc. | Reverse seamless integration between local and remote computing environments |
US9015449B2 (en) | 2011-03-27 | 2015-04-21 | International Business Machines Corporation | Region-weighted accounting of multi-threaded processor core according to dispatch state |
GB2491165A (en) * | 2011-05-26 | 2012-11-28 | Realvnc Ltd | Mobile device having a priority adjusting thread for link wi th remote terminal |
JP5777992B2 (ja) * | 2011-09-26 | 2015-09-16 | 株式会社三菱東京Ufj銀行 | 監視制御装置 |
US8904397B2 (en) | 2011-10-31 | 2014-12-02 | International Business Machines Corporation | Staggering execution of scheduled tasks based on behavioral information |
US9047396B2 (en) * | 2011-10-31 | 2015-06-02 | International Business Machines Corporation | Method, system and computer product for rescheduling processing of set of work items based on historical trend of execution time |
US9355009B2 (en) | 2011-10-31 | 2016-05-31 | International Business Machines Corporation | Performance of scheduled tasks via behavior analysis and dynamic optimization |
US9128754B2 (en) * | 2012-05-31 | 2015-09-08 | Hewlett-Packard Development Company, L.P. | Resource starvation management in a computer system |
EP2891038B1 (en) | 2012-08-31 | 2020-06-24 | Citrix Systems, Inc. | Reverse seamless integration between local and remote computing environments |
US9021493B2 (en) | 2012-09-14 | 2015-04-28 | International Business Machines Corporation | Management of resources within a computing environment |
JP2014059918A (ja) * | 2013-12-27 | 2014-04-03 | Bank Of Tokyo-Mitsubishi Ufj Ltd | 監視制御装置 |
US9665372B2 (en) | 2014-05-12 | 2017-05-30 | International Business Machines Corporation | Parallel slice processor with dynamic instruction stream mapping |
US9672043B2 (en) | 2014-05-12 | 2017-06-06 | International Business Machines Corporation | Processing of multiple instruction streams in a parallel slice processor |
US9582326B2 (en) | 2014-05-30 | 2017-02-28 | Apple Inc. | Quality of service classes |
US9772959B2 (en) | 2014-05-30 | 2017-09-26 | Apple Inc. | I/O scheduling |
US9760375B2 (en) | 2014-09-09 | 2017-09-12 | International Business Machines Corporation | Register files for storing data operated on by instructions of multiple widths |
US9720696B2 (en) | 2014-09-30 | 2017-08-01 | International Business Machines Corporation | Independent mapping of threads |
US9977678B2 (en) | 2015-01-12 | 2018-05-22 | International Business Machines Corporation | Reconfigurable parallel execution and load-store slice processor |
US10133581B2 (en) | 2015-01-13 | 2018-11-20 | International Business Machines Corporation | Linkable issue queue parallel execution slice for a processor |
US10133576B2 (en) | 2015-01-13 | 2018-11-20 | International Business Machines Corporation | Parallel slice processor having a recirculating load-store queue for fast deallocation of issue queue entries |
DE102016200777A1 (de) * | 2016-01-21 | 2017-07-27 | Robert Bosch Gmbh | Verfahren und Vorrichtung zum Überwachen und Kontrollieren quasi-paralleler Ausführungsstränge in einem ereignisorientierten Betriebssystem |
US9983875B2 (en) | 2016-03-04 | 2018-05-29 | International Business Machines Corporation | Operation of a multi-slice processor preventing early dependent instruction wakeup |
US10037211B2 (en) | 2016-03-22 | 2018-07-31 | International Business Machines Corporation | Operation of a multi-slice processor with an expanded merge fetching queue |
US10346174B2 (en) | 2016-03-24 | 2019-07-09 | International Business Machines Corporation | Operation of a multi-slice processor with dynamic canceling of partial loads |
US10761854B2 (en) | 2016-04-19 | 2020-09-01 | International Business Machines Corporation | Preventing hazard flushes in an instruction sequencing unit of a multi-slice processor |
US10037229B2 (en) | 2016-05-11 | 2018-07-31 | International Business Machines Corporation | Operation of a multi-slice processor implementing a load/store unit maintaining rejected instructions |
US9934033B2 (en) | 2016-06-13 | 2018-04-03 | International Business Machines Corporation | Operation of a multi-slice processor implementing simultaneous two-target loads and stores |
US10042647B2 (en) | 2016-06-27 | 2018-08-07 | International Business Machines Corporation | Managing a divided load reorder queue |
US10318419B2 (en) | 2016-08-08 | 2019-06-11 | International Business Machines Corporation | Flush avoidance in a load store unit |
JP6282773B1 (ja) * | 2017-06-30 | 2018-02-21 | 株式会社ショーワ | マスキング治具、電気メッキ装置 |
CN109582223B (zh) * | 2018-10-31 | 2023-07-18 | 华为技术有限公司 | 一种内存数据迁移的方法及装置 |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0954699A (ja) * | 1995-08-11 | 1997-02-25 | Fujitsu Ltd | 計算機のプロセススケジューラ |
US5797305A (en) * | 1996-02-12 | 1998-08-25 | Moore Business Forms, Inc. | On demand cross web perforation |
US5838968A (en) * | 1996-03-01 | 1998-11-17 | Chromatic Research, Inc. | System and method for dynamic resource management across tasks in real-time operating systems |
US6223201B1 (en) * | 1996-08-27 | 2001-04-24 | International Business Machines Corporation | Data processing system and method of task management within a self-managing application |
US6601083B1 (en) * | 1996-08-29 | 2003-07-29 | Frederick John Reznak | Multitasking data processing system and method of controlling allocation of a shared resource |
US6263359B1 (en) * | 1997-05-22 | 2001-07-17 | International Business Machines Corporation | Computer resource proportional utilization and response time scheduling |
FR2766592B1 (fr) * | 1997-07-23 | 1999-08-27 | Bull Sa | Dispositif et procede de regulation dynamique de l'attribution des ressources sur un systeme informatique |
US6697935B1 (en) * | 1997-10-23 | 2004-02-24 | International Business Machines Corporation | Method and apparatus for selecting thread switch events in a multithreaded processor |
US6212544B1 (en) * | 1997-10-23 | 2001-04-03 | International Business Machines Corporation | Altering thread priorities in a multithreaded processor |
US6243788B1 (en) * | 1998-06-17 | 2001-06-05 | International Business Machines Corporation | Cache architecture to enable accurate cache sensitivity |
US6584488B1 (en) * | 1999-04-12 | 2003-06-24 | International Business Machines Corporation | Controlling allocation of system resources with an enhanced priority calculation |
US6542921B1 (en) * | 1999-07-08 | 2003-04-01 | Intel Corporation | Method and apparatus for controlling the processing priority between multiple threads in a multithreaded processor |
US7028298B1 (en) * | 1999-09-10 | 2006-04-11 | Sun Microsystems, Inc. | Apparatus and methods for managing resource usage |
US20020019843A1 (en) * | 2000-04-26 | 2002-02-14 | Killian Robert T. | Multiprocessor object control |
US6859926B1 (en) * | 2000-09-14 | 2005-02-22 | International Business Machines Corporation | Apparatus and method for workload management using class shares and tiers |
GB2372847B (en) * | 2001-02-19 | 2004-12-29 | Imagination Tech Ltd | Control of priority and instruction rates on a multithreaded processor |
JP3796124B2 (ja) * | 2001-03-07 | 2006-07-12 | 株式会社ルネサステクノロジ | スレッド間優先度可変プロセッサ |
US6895585B2 (en) * | 2001-03-30 | 2005-05-17 | Hewlett-Packard Development Company, L.P. | Method of mixed workload high performance scheduling |
US20030187908A1 (en) * | 2002-03-26 | 2003-10-02 | Sun Microsystems, Inc. | Methods and systems for customer based resource priority control |
US7536689B2 (en) * | 2003-01-10 | 2009-05-19 | Tricerat, Inc. | Method and system for optimizing thread scheduling using quality objectives |
US7383548B2 (en) * | 2003-11-28 | 2008-06-03 | Nortel Networks Limited | CPU usage regulation |
-
2002
- 2002-01-30 AT AT02711528T patent/ATE392662T1/de not_active IP Right Cessation
- 2002-01-30 NZ NZ534314A patent/NZ534314A/en not_active IP Right Cessation
- 2002-01-30 CA CA2474477A patent/CA2474477C/en not_active Expired - Lifetime
- 2002-01-30 AU AU2002230272A patent/AU2002230272B2/en not_active Ceased
- 2002-01-30 US US10/503,408 patent/US7565652B2/en active Active
- 2002-01-30 ES ES02711528T patent/ES2305216T3/es not_active Expired - Lifetime
- 2002-01-30 EP EP02711528A patent/EP1474744B1/en not_active Expired - Lifetime
- 2002-01-30 JP JP2003564738A patent/JP2005516303A/ja active Pending
- 2002-01-30 DK DK02711528T patent/DK1474744T3/da active
- 2002-01-30 DE DE60226176T patent/DE60226176T2/de not_active Expired - Lifetime
- 2002-01-30 WO PCT/NL2002/000070 patent/WO2003065214A1/en active IP Right Grant
Also Published As
Publication number | Publication date |
---|---|
US20060037025A1 (en) | 2006-02-16 |
WO2003065214A1 (en) | 2003-08-07 |
CA2474477C (en) | 2011-04-12 |
JP2005516303A (ja) | 2005-06-02 |
DK1474744T3 (da) | 2008-07-28 |
NZ534314A (en) | 2005-04-29 |
AU2002230272B2 (en) | 2008-03-13 |
US7565652B2 (en) | 2009-07-21 |
ATE392662T1 (de) | 2008-05-15 |
EP1474744B1 (en) | 2008-04-16 |
CA2474477A1 (en) | 2003-08-07 |
DE60226176T2 (de) | 2009-05-14 |
EP1474744A1 (en) | 2004-11-10 |
DE60226176D1 (de) | 2008-05-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
ES2305216T3 (es) | Metodo para establecer niveles de prioridad en un sistema de computo de multiprogramacion con planificacion por prioridades, sistema de computo de multiprogramacion y programa para esto. | |
AU2002230272A1 (en) | Method of setting priority levels in a multiprogramming computer system with priority scheduling, multiprogramming computer system and program therefor | |
JP5075274B2 (ja) | 電力認識スレッドスケジューリングおよびプロセッサーの動的使用 | |
KR100754300B1 (ko) | Numa 컴퓨터 시스템에서 작업을 디스패칭하기 위한방법 및 장치 | |
US8959515B2 (en) | Task scheduling policy for limited memory systems | |
US7634388B2 (en) | Providing policy-based operating system services in an operating system on a computing system | |
US9785223B2 (en) | Power management in an uncore fabric | |
TWI569202B (zh) | 用於基於網路負載來調整處理器電力使用之設備及方法 | |
US10133670B2 (en) | Low overhead hierarchical connectivity of cache coherent agents to a coherent fabric | |
US20060037021A1 (en) | System, apparatus and method of adaptively queueing processes for execution scheduling | |
US10725940B2 (en) | Reallocate memory pending queue based on stall | |
KR101140914B1 (ko) | 컴퓨팅 자원들을 제어하는 기술 | |
US8472455B2 (en) | System and method for traversing a treelet-composed hierarchical structure | |
JP2004227188A (ja) | ジョブスワップ方法、ジョブ管理装置、およびジョブ管理プログラム | |
JP2007503642A (ja) | マイクロコントローラを支持し監視する回路装置及び方法 | |
EP3238085B1 (en) | Virtual legacy wire | |
EP4339788A1 (en) | Performance and power balanced cache partial power down policy | |
JPH0793198A (ja) | コンピュータシステム | |
CN112230757B (zh) | 用于通过腾空cpu和存储器的子集来降低功率的方法和系统 | |
TW202414219A (zh) | 計算系統及計算系統進行共享高速緩存分配的方法 |