ES2802173T3 - Método de planificación de ordenador virtual - Google Patents
Método de planificación de ordenador virtual Download PDFInfo
- Publication number
- ES2802173T3 ES2802173T3 ES12872541T ES12872541T ES2802173T3 ES 2802173 T3 ES2802173 T3 ES 2802173T3 ES 12872541 T ES12872541 T ES 12872541T ES 12872541 T ES12872541 T ES 12872541T ES 2802173 T3 ES2802173 T3 ES 2802173T3
- Authority
- ES
- Spain
- Prior art keywords
- priority
- virtual computer
- scheduling
- processing
- identifier
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
- G06F9/4887—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues involving deadlines, e.g. rate based, periodic
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Computer And Data Communications (AREA)
- Debugging And Monitoring (AREA)
Abstract
Un método de planificación para un ordenador virtual en un sistema informático en el que están instalados un OS anfitrión (400) y un ordenador virtual, donde un bloque de procesamiento de planificación in-VM instalado en dicho ordenador virtual crea un grupo de prioridad de acuerdo con una prioridad de cada aplicación (211) que opera en dicho ordenador virtual y gestiona, en anillo, dicho grupo de prioridad introduciendo una tarea de cabecera y una tarea de cola de dicho grupo de prioridad que proporciona notificaciones del inicio y final de operación de un grupo de prioridad alta que requiere procesamiento en tiempo real; y un bloque de control de planificación VM en dicho OS anfitrión (400) recibe las notificaciones del inicio y final de operación de dicho grupo de prioridad de la tarea de cabecera y la tarea de cola de dicho grupo de prioridad para determinar una prioridad de procesamiento de dicho ordenador virtual.
Description
DESCRIPCIÓN
Método de planificación de ordenador virtual
Campo técnico
La presente invención se refiere a un sistema informático operado por un ordenador virtual que requiere procesamiento en tiempo real en un entorno de servidor virtualizado y, más particularmente, a un método de planificación de ordenadores virtuales ejecutados en un ordenador que tiene un recurso de CPU limitado.
Técnica anterior
Existen tecnologías de virtualización de servidor que están atrayendo información debido a ventajas que, mediante la ejecución de una o más máquinas virtuales (VMs) en una unidad de un ordenador física para reducir el número de ordenadores físicas, puede ahorrarse el coste de operación del ordenador, el espacio de instalación del ordenador, la disipación de potencia del ordenador, y otros. Para obtener estas ventajas, es necesario un procesamiento en tiempo real mediante aplicaciones ejecutadas en estos ordenadores virtuales. Sin embargo, se debe remarcar que, si un ordenador físico tiene un recurso de CPU suficiente para su asignación a los ordenadores virtuales conectadas al mismo, existe una técnica para asegurar el rendimiento, tal como una asignación exclusiva del recurso de CPU; por otro lado, en un entorno de computación donde el recurso de CPU no es suficiente, es difícil proporcionar la suficiente seguridad en el procesamiento en tiempo real. Además, en una situación en la que se producen con frecuencia interrupciones de aparatos externos, tales como dispositivos de red conectados a los ordenadores, el procesamiento de aplicaciones ejecutadas dentro de un ordenador virtual se ralentiza, empeorando así la situación. En dicha situación de computación, también se necesita un sistema de control que asegure el procesamiento en tiempo real de las aplicaciones en el ordenador virtual.
Compendio de la Invención
Problema técnico
En lo que respecta a la técnica anterior, en la solicitud de patente estadounidense US 2011/083132 A1 se describe un mecanismo para la planificación priorizada de máquinas virtuales. El método incluye recibir un control de una máquina virtual gestionada por un monitor de máquina virtual en una máquina host y ejecutar una tarea de priorización que implica emulación de hardware por la máquina virtual y determinar una estadística de interactividad de la máquina virtual basándose en un factor de tipo de hardware de la emulación de hardware de la máquina virtual.
En la solicitud de patente japonesa de número JP 2011-198027, en un método de planificación en un ordenador virtual, se separa una aplicación que se va a procesar por el ordenador virtual en unidades de hilos que se van a procesar por dos o más ordenadores virtuales de una manera dividida, planificando así la secuencia de ejecución de los computadores virtuales en una secuencia de procesado de aplicación. Sin embargo, con un sistema configurado por dos o más aplicaciones, es difícil, cuando se considera el uso exclusivo de recursos, determinar la secuencia de ejecución de ordenadores virtuales solo basándose en el orden de procesamiento de las aplicaciones. Además, debido a la diferencia entre las cargas CPU (y los rendimientos de procesamiento) de los ordenadores virtuales, es difícil ejecutar operaciones de procesamiento adecuadas en un entorno de múltiples CPUs configurado por dos o más CPUs, dificultando así el eficiente uso de recursos CPU en un ordenador física.
Para superar los problemas anteriormente mencionados, un objetivo de la presente invención es proporcionar tecnologías de planificación de ordenador virtual que aseguren el procesamiento en tiempo real de las aplicaciones que se van a procesar en ordenadores virtuales de acuerdo con un método de planificación de un sistema de virtualización configurado por dos o más ordenadores virtuales que ejecutan aplicaciones a gran escala en un entorno de ordenador física en la que están disponibles uno o más recursos de CPU.
Solución al problema
Los ordenadores físicos y los ordenadores virtuales comparten un NIC físico a través del que se comunican con servidores, controladores, y otros aparatos externos del ordenador. Con un sistema informático en el que están instalados un host OS y dos o más ordenadores virtuales, se instala un control de planificador VM en el host OS en cada ordenador mencionada anteriormente. Además, en cada ordenador virtual, un OS invitado opera para realizar el procesamiento de ejecución de cada aplicación ejecutada en el ordenador virtual. Se instala un bloque de control de planificación in-VM en el OS invitado para determinar la secuencia de ejecución de aplicaciones mediante el grupo de prioridad de ejecución de la aplicación anteriormente mencionada. Nótese que se supone que el OS host tiene una función de planificación para asignar un recurso CPU a cada ordenador virtual y tiene un programa de virtualización que tiene una función de procesamiento de interrupción para interrupciones por parte de aparatos externos a el ordenador virtual en cuestión. Además, se supone que el OS host tiene una función de planificación para ejecutar una aplicación mediante la asignación del recurso CPU asignado desde el OS host a cada ordenador virtual a una aplicación dentro del ordenador virtual y una función para procesar interrupciones enviadas desde el programa de virtualización en el OS host.
Primero, el bloque de control de planificación in-VM que opera en el OS invitado agrupa las aplicaciones en un ordenador virtual según prioridad. Además, en la cabecera y cola de cada grupo, se registran las aplicaciones que se
van a ejecutar en primer y último lugar en un grupo preparado por el bloque de control de planificación in-VM.
Hay dos o más de los grupos de prioridad descritos anteriormente. Cada grupo de prioridad tiene el identificador que indica una prioridad. En la presente invención, “L1” es indicativo del grupo de prioridad más alta y “Ln” es indicativo del grupo de prioridad más baja. El bloque de control de planificación in-VM gestiona el tiempo de procesamiento de cada grupo de prioridad de manera que se asegura que todas las aplicaciones que pertenecen a cualquiera de estos grupos “L1” a “Ln” son procesadas de acuerdo con un cierto plazo límite. El tiempo de procesamiento de cada grupo es gestionado mediante el tiempo de activación de la aplicación de cabecera del grupo anteriormente mencionada y el tiempo de final para la aplicación de cola. El diseño con plazo límite anteriormente mencionado debe ser ajustado por los requisitos del sistema proporcionados por la presente invención.
Se debe remarcar que el bloque de control de planificación in-VM de cada OS invitado tiene medios de comunicación para la comunicación con el bloque de control de planificador VM en el OS host para notificar al bloque de control de planificador VM en el OS anfitrión el estado de planificación interno de cada ordenador virtual. Para que el bloque de control de planificador VM en el OS anfitrión entienda el estado de planificación interno de cada ordenador virtual, el bloque de control de planificación in-VM del OS invitado notifica al bloque de control de planificador VM del OS anfitrión el inicio de la aplicación de cabecera y el final de la aplicación de cola del grupo de prioridad en el ordenador virtual.
Sin embargo, en el grupo de prioridad “Ln” que tiene la prioridad más baja, no se ejecuta la notificación anteriormente mencionada. Debido a que la sobrecarga de la notificación desde un ordenador virtual al OS anfitrión es pesada, se ejecuta la mitigación de la sobrecarga anteriormente mencionada a través de la no gestión del inicio y final del grupo de prioridad más baja. El bloque de control de planificador VM del OS anfitrión puede entender la prioridad de una aplicación ejecutada en cada ordenador virtual mediante la notificación de los tiempos de inicio y finalización de aplicaciones desde un grupo de prioridad más alta diferente de “Ln”.
Se selecciona un ordenador virtual que se va a asignar al recurso CPU de entre la prioridad de ejecución en un ordenador virtual. Por tanto, el bloque de control de planificador VM en el OS anfitrión siempre registra y gestiona la prioridad de cada grupo de prioridad como el estado de ejecución de cada ordenador virtual y reduce la prioridad de el ordenador virtual de la que la que se recibió la notificación mediante la notificación de final de un grupo de prioridad más alto. En consecuencia, puede entenderse el ordenador virtual a la que debe asignarse el recurso CPU con la prioridad más alta de entre dos o más ordenadores virtuales.
Se debe remarcar que el plazo límite a seguir por cada ordenador virtual es monitorizado y, incluso con un ordenador virtual que tiene una prioridad de ejecución actual más baja, el ordenador virtual que se acerca al plazo límite se ajusta a la prioridad más alta, haciendo así que el ordenador virtual siempre cumpla el plazo límite. Un grupo de prioridad más baja tal como “Ln” es controlado según la planificación no por el control de planificación basado en el plazo límite mediante la notificación del bloque de control de planificación in-VM en un ordenador virtual al OS anfitrión del inicio de la aplicación de cabecera y al final de la aplicación de cola, sino mediante el tiempo Quota para asignar el recurso CPU que se describirá más adelante.
Por otro lado, en el procesamiento de la interrupción, se instala un bloque de control de gestión de interrupción en el bloque de control de planificador VM en el OS anfitrión para limitar el número de interrupciones permitidas dentro del plazo límite de un ordenador virtual. El número limitado de interrupciones se gestiona como un valor límite del número de interrupciones obtenidas dividiendo el margen del plazo límite de cada ordenador virtual entre el tiempo de procesamiento de una interrupción. Si una notificación de interrupción de un programa virtual del OS anfitrión está dentro del número limitado de interrupciones, se proporciona una notificación de interrupción a el ordenador virtual relevante.
Cuando se da una notificación de interrupción, se modifica la prioridad más alta independientemente de la prioridad de ejecución actual del ordenador virtual relevante y el OS anfitrión asigna el recurso CPU a el ordenador virtual relevante. En el ordenador virtual relevante, el procesamiento de la interrupción es ejecutada en el OS invitado y el planificador del OS invitado selecciona una aplicación de un grupo de prioridad ajustada por el bloque de control de planificación in-VM, asignando así el recurso CPU.
Sin embargo, como el recurso CPU no puede asignarse a un ordenador virtual que ejecuta una aplicación que tiene una prioridad de ejecución más alta que la de la aplicación anteriormente mencionada, se proporciona un tiempo Quota para mantener esa prioridad al ajusta de prioridad más alta mediante una notificación de interrupción. Concretamente, cuando el tiempo asignado al procesamiento de interrupción alcanza el tiempo Quota, se ajusta la prioridad a la prioridad original y el OS anfitrión siempre asigna el recurso CPU a el ordenador virtual que tiene la prioridad más alta.
Como se ha descrito, el método de gestión de aplicación en un grupo de prioridad por parte del bloque de control de planificación in-VM en un ordenador virtual y la asignación del recurso CPU a un ordenador virtual por parte del bloque de control de planificador VM en el OS anfitrión de acuerdo con un grupo de prioridad que se ejecuta en el ordenador virtual permite asegurar el procesamiento en tiempo real de aplicaciones en el ordenador virtual incluso en un sistema limitado en cuanto a recursos CPU. Además, la instalación del bloque de control de gestión de interrupción en el bloque de control de planificador VM en el OS anfitrión permite asegurar el procesamiento en tiempo real de aplicaciones en
un ordenador virtual incluso en un entorno de computación alto en cuanto a carga de procesamiento de interrupciones.
Efectos ventajosos de la Invención
De acuerdo con la presente invención, la asignación de recursos CPU de un ordenador virtual se gestiona basándose en el plazo límite de un grupo de prioridad de una aplicación de procesamiento en el ordenador virtual por parte del bloque de control de planificador VM, de modo que se puede asegurar un procesamiento en tiempo real incluso a un sistema de computación limitado en recursos de CPU. Además, en el funcionamiento de un ordenador virtual que usa una red externa en la que frecuentemente se producen interrupciones, el número de interrupciones y las operaciones de procesamiento se limita basándose en el plazo límite de un grupo de prioridad de aplicaciones de procesamiento en el ordenador virtual, asegurando así el procesamiento en tiempo real.
Breve descripción de los dibujos
La Figura 1 es un diagrama de configuración global que ilustra el control de planificación de un ordenador virtual de la presente invención.
La Figura 2 es un diagrama de configuración que ilustra una tabla de gestión de planificación in-VM de la presente invención.
La Figura 3 es un diagrama de configuración que ilustra una tabla de gestión VM de la presente invención. La Figura 4 es un diagrama de configuración que ilustra una tabla de gestión de temporizador de la presente invención.
La Figura 5 es un diagrama de configuración que ilustra una tabla de gestión de interrupción de la presente invención.
La Figura 6A es un diagrama esquemático que ilustra el procesamiento de la IF de notificación de la presente invención.
La Figura 6B es un diagrama esquemático que ilustra el procesamiento de la IF de notificación de la presente invención.
La Figura 7 es un diagrama de flujo indicativo de un programa de planificación in-VM de la presente invención. La Figura 8 es un diagrama de flujo indicativo de procesamiento final del programa de planificación in-VM de la presente invención.
La Figura 9 es un diagrama de flujo global del sistema de virtualización de la presente invención.
La Figura 10 es un diagrama de flujo indicativo de un programa de gestión de plazo límite VM de la presente invención.
La Figura 11 es un diagrama de flujo indicativo del procesamiento de selección VM de ejecución del programa de gestión de plazo límite VM de la presente invención.
La Figura 12 es un diagrama de flujo indicativo de un programa de gestión de evento de temporizador de la presente invención.
La Figura 13 es un diagrama de flujo indicativo de un procesamiento de evento externo de la presente invención. La Figura 14 es un diagrama de flujo indicativo de un procesamiento de gestión Quota de la presente invención. La Figura 15 es un diagrama de flujo indicativo de un programa de gestión de interrupción de la presente invención.
Descripción de realizaciones
A continuación se describe una realización de la presente invención haciendo referencia a los dibujos. Se debe remarcar que la presente invención no está limitada a la realización descrita en este documento y por tanto cualquier ejemplo de aplicación que concuerde con el concepto de la presente invención es equivalente al mismo.
(Diagrama de configuración global)
Ahora, haciendo referencia a la Figura 1, se muestra un diagrama de configuración global que ilustra el control de planificación de una máquina virtual de una realización de la presente invención. El control de planificación de la máquina virtual está configurado por un sistema 1 de virtualización, un terminal 2, y una red 3 externa. El sistema 1 de virtualización está configurado por un ordenador. Un ordenador 10 tiene una memoria 101, un procesador 102, un aparato 103 de almacenamiento, y una interfaz 104 de comunicación externa. La memoria 101 almacena un sistema 400 operativo anfitrión (abreviado como OS anfitrión en el dibujo), un programa 300 de control de planificador VM, y uno o más entornos 200 de máquina virtual (abreviado como VM en el dibujo). El OS anfitrión 400 almacena un programa 401 de virtualización.
El programa 300 de control de planificador VM está configurado por una tabla 301 de gestión de planificación in-VM, una tabla 302 de gestión VM, una tabla 303 de gestión de temporizador, una tabla 304 de gestión de interrupción, un programa 305 de entrada de planificación in-VM, un programa 306 de gestión de plazo límite VM, un programa 307 de gestión de evento de temporizador, y un programa 308 de gestión de interrupción. El VM 200 está configurado por una aplicación 211 (abreviado como AP en el dibujo), una planificación 212 in-VM, un sistema 213 operativo invitado (abreviado como OS invitado en el dibujo), y una interfaz 214 de notificación (la interfaz abreviada como una I/F en el dibujo). En la Figura 1, se muestran en el ordenador 100 una VM1 (200-A) y una VM2 (200-B) indicadas mediante línea continua y otras VMs 200 indicadas mediante líneas de puntos, por ejemplo, no estando el número de unidades de VMs especialmente limitado a este número.
El terminal 2 y el ordenador 100 están interconectados mediante la red 3 externa. En el ordenador 100, la red 3 externa
está conectada a la I/F de comunicación externa 104.
El terminal 2 puede comunicarse con el sistema 1 de virtualización a través de la red 3 externa.
El aparato 103 de almacenamiento del nodo 100 de ordenador almacena el OS anfitrión 400, el programa 300 de control de planificador VM (el programa y varios tipos de información de tabla), y la AP 211, la planificación 212 in-VM, el OS invitado 213, y la I/F de notificación 214 que constituyen la VM 200. El procesador 102 desarrolla el OS anfitrión 400, el programa 300 de control de planificador VM, y los componentes de la VM 200 del aparato 103 de almacenamiento en la memoria 101 y ejecuta estos programas, también procesa interrupciones de la I/F de comunicación externa 104.La I/F de comunicación externa 104 transmite y recibe datos con el terminal 2 a través de la red 3 externa.
El programa 401 de virtualización, que es un programa para crear la VM 200 para la gestión de la misma, notifica a la VM 200 una interrupción del I/F de comunicación externa 104 a través de la I/F de notificación 214. Mediante el uso del programa 401 de virtualización, el OS anfitrión 400 controla la ejecución del programa 300 de control de planificador VM y la VM 200 y controla el acceso a la I/F de comunicación externa 104 y el aparato 103 de almacenamiento.
La VM 200 es un entorno de ejecución virtual creado por el programa 401 de virtualización en el que pueden operar programas únicos y el sistema operativo. Si hay dos o más VMs 200, entonces los programas y los sistemas operativos que se ejecutan en diferentes VMs 200 pueden ser los mismos o diferentes. Además, los programas y los sistemas operativos que se ejecutan en diferentes VMs 200 no influyen unos en otros directamente. La VM 200 tiene un identificador único en el sistema 1 de virtualización; por ejemplo, la VM 200 en la Figura 1 tiene un identificador “VM1” o “VM2”.
La AP 211 es un programa de aplicación que se ejecuta dentro de la VM 200. Para la AP 211, se muestran AP1-1 (211 -A) y AP1 -n (211 -B), aunque el número de APs 211 que se ejecutan dentro de la VM 200 no está limitado a las mismas. El OS invitado 213 controla la AP 211 mediante el uso de la planificación 212 in-VM en el entorno VM 200. La IF de notificación 214 recibe resultados de procesamiento de la planificación 212 in-VM del OS invitado 213 y emite los resultados del procesamiento al programa 300 de control de planificador VM.
Operando en la VM 200, el programa 300 de control de planificador VM recibe información de planificación de las Aps 211 en la VM 200 de la planificación 212 in-VM a través de la IF de notificación 214. El programa 300 de control de planificador introduce la información de planificación de las Aps 211 en el programa 305 de entrada de planificación in-VM. El programa 305 de entrada de planificación in-VM almacena la información de planificación de las Aps 211 en la tabla 301 de gestión de planificación in-VM.
La planificación 212 in-VM que se ejecuta dentro de la VM 200 agrupa las Aps 211 de acuerdo con las prioridades de operación del mismo y planifica el tiempo de ejecución del procesador 102. Más adelante se describirá un método de planificación basado en prioridades de operación.
La planificación 212 in-VM que se ejecuta dentro de la VM 200 notifica al programa 306 de gestión de plazo límite VM que se ejecuta en el programa 300 de control de planificador VM el inicio y final de operación de las Aps 211 en un grupo de prioridad de operación a través de la IF de notificación 214. Basándose en el inicio y final de operación de las Aps 211, el programa de gestión de plazo límite VM ajusta la prioridad de las VMs 200. Además, el programa de gestión de plazo límite VM escribe los tiempos de inicio y final en la tabla 304 de gestión de interrupción como un plazo límite de ejecución. De acuerdo con la prioridad de las VMs 200, el programa 401 de virtualización ejecuta las VMs 200. La planificación 212 in-VM ejecutado dentro de la VM 200 notifica al programa 307 de gestión de eventos de temporizador el registro de temporizador de la AP 211 del grupo de prioridad más alta a través de la IF de notificación 214. El programa 307 de gestión de evento de temporizador registra información para el control de temporizador en la tabla 303 de gestión de temporizador y deja el control de temporizador al programa 401 de virtualización. Cuando el temporizador emite (se activa), el programa 401 de virtualización notifica el hecho al programa 307 de gestión de eventos de temporizador. El programa 307 de gestión de eventos de temporizador notifica al programa 308 de gestión de interrupciones el evento del temporizador. El programa 308 de gestión de interrupciones notifica a la VM 200 el evento de temporizador a través de la IF de notificación 214. El OS invitado 213 procesa el evento de temporizador desde el programa 308 de gestión de interrupciones y notifica a la AP 211 que hizo el registro del temporizador de los resultados del procesamiento.
El programa 308 de gestión de interrupciones notifica a la VM 200 la interrupción desde la IF de comunicación externa 104 a través de la IF de notificación 214. La interrupción es procesada por el OS invitado 213.
Los detalles del programa 300 de control de planificador VM se describirán más adelante con referencia a la Figura 7.
(Tabla de gestión de planificación in-VM)
Haciendo referencia a la Figura 2, se muestra una configuración de la tabla 301 de gestión de planificación in-VM de una realización de la presente invención. La tabla 301 de gestión de planificación in-VM, almacenada en la planificación 212 in-VM y el programa 300 de control de planificador VM, almacena información de planificación sobre las APs 211
de las VMs 200 que son la VM200-A y la VM200-B creadas dentro del ordenador 100.
Un identificador 3101 VM almacena información para identificar de manera unívoca cada VM 200 dentro del ordenador 100. Un período 3102 almacena los tiempos en los que se ejecutan todas las APs en cada VM 200. En la Figura 2, el valor significa que transcurre un segundo (1000 ms) para la ejecución de AP-1 a AP-n ejecutados en la VM1 de la VM 200-A.
Un identificador 3103 de nivel de prioridad agrupa las APs 211 en prioridades de ejecución para determinar la secuencia de ejecución de cada AP 211 por el OS invitado 213 y almacena información para identificar de manera unívoca cada uno de estos grupos. En la Figura 2, la prioridad del grupo L1 es la más alta, seguida de L2, L3, y Ln en este orden.
Las APs 211 que pertenecen al grupo están configuradas en un anillo (o bucle) que se repite desde la AP 211, que se ejecuta en primer lugar, hasta la AP 211, que se ejecuta en último lugar en el mismo grupo. Para configurar las APs 211 que pertenecen al mismo grupo en un anillo, es necesario registrar con antelación las primeras y últimas APs de cada grupo de prioridad en la VM 200. A diferencia de aplicaciones registradas por el usuario, las primeras y últimas APs 211 son las APs con la planificación 213 in-VM registrada.
Un identificador 3104 de inicio/final de anillo de nivel almacena “S” indicativa del inicio de la primera AP 211 que pertenece al grupo y “E” indicativa del final de la AP 211 que se va a ejecutar en último lugar. Si la AP 211 no es la primera ni la última del grupo, entonces “N” se almacena en el identificador 3104 de inicio/final de anillo de nivel.
Un identificador 3105 de tarea almacena información para identificar de manera única las APs 211 dentro de un grupo. Una prioridad 3106 almacena información de prioridad de ejecución sobre la AP 211 que determina la secuencia de cada AP 211 que se va a ejecutar por parte del OS invitado 213. Un tiempo de ejecución 3107 almacena un instante de tiempo en el que la AP 211 fue ejecutada por el OS invitador 213 en unidades de “ms”. Un identificador 3108 de tarea de control de secuencia almacena el identificador 3105 de tarea de una AP 211 que se va a ejecutar a continuación cuando termine la ejecución de una AP 211. Si se almacena en el identificador 3108 de tarea de control de secuencia una información diferente del identificador de tarea 3105 “E”, se ejecuta la correspondiente AP 211. Si se almacena información “E” en el identificador 3105 de tarea y se almacena “N” en el identificador 3104 de inicio/final de anillo de nivel, entonces se ejecuta otra AP 211 del mismo grupo.
Una Quota 3109 almacena un tiempo para su asignación a la ejecución de las APs 211 con identificador 3103 de nivel de prioridad perteneciente a “Ln”.
Más adelante con relación a la Figura 5 se describirán detalles de la planificación 212 in-VM.
(Tabla de gestión VM)
Haciendo referencia a la Figura 3, se muestra una configuración de la tabla 302 de gestión VM de una realización de la presente invención. La tabla 302 de gestión VM se utiliza para el programa 401 de virtualización para ejecutar la VM 200.
Un identificador VM 3201 almacena información para identificar de manera única la VM 200 dentro del ordenador 100. Un identificador 3202 de prioridad almacena el identificador 3103 de nivel de prioridad al que pertenece la AP 211 que está siendo ejecutada por el OS invitado 213. El identificador 3202 de prioridad se adquiere de la información almacenada en un formato 500 de notificación por la planificación 212 in-VM que se describirá más adelante. Un identificador 3203 de inicio/final de anillo de nivel almacena información sobre el inicio “S” de la primera AP 211 en el grupo de prioridad del identificador 3103 de nivel de prioridad o información sobre el final “E” de la última AP 211. “I” es indicativa de un cambio de prioridad ID.
Un plazo límite 3204 almacena un tiempo, en unidades de “ms”, desde el inicio de la primera AP 211 del grupo de prioridad del identificador 3103 de nivel de prioridad al final de la última AP 211. Un identificador 3205 de tarea es adquirido de información almacenada en el formato 500 de notificación.
Un estado de ejecución 320 almacena un estado de ejecución de la VM 200 ejecutada por el programa 401 de virtualización. Si el programa 401 de virtualización ejecuta la VM 200, entonces se almacena “R” en el estado 3206 de ejecución. Para la VM 200 no ejecutada por el programa de virtualización 401, se almacena “0”. Si el procesador 102 tiene una configuración multi-núcleo, hay dos o más VMs 200 que son ejecutados por el programa 401 de virtualización.
Un tiempo de ejecución 3207 almacena un tiempo de ejecución de la VM 200 ejecutada por el programa 401 de virtualización en unidades de “ms”. Una Quota 3208 almacena, si el grupo de prioridad de la AP 211 ejecutada por el OS invitado es “Ln”, la Quota 3208 almacena un tiempo en el que la correspondiente VM 200 es ejecutada por el programa 401 de virtualización. Además, en el procesamiento del programa 307 de gestión de eventos de temporizador y el programa 308 de gestión de interrupción que se describirán más adelante, se almacena un tiempo de ejecución en la Quota 3208 si el grupo de prioridad tiene una prioridad diferente de “Ln”.
Con información de la Quota 3208 para su almacenamiento por el programa 307 de gestión de evento de temporizador y el programa 308 de gestión de interrupción, el grupo de prioridad de la AP 211 ejecutada por el OS invitado 213 puede no concordar con el identificador 3202 de prioridad después del procesamiento de un evento de temporizador y una interrupción por el OS invitado 213 de la VM 200. Especialmente, si se ejecuta la AP 211 del grupo de prioridad “Ln”, no se notifica el inicio y el final al programa 306 de gestión de plazo límite VM de modo que, si hay una VM 200 de un grupo de prioridad con el identificador 3202 de prioridad de la tabla 302 de gestión VM mayor que “Ln”, entonces no se sigue la secuencia de ejecución por prioridad. Para seguir la secuencia de ejecución por prioridad, es necesario almacenar la Quota 3208 en un evento de temporizador y notificaciones de interrupción.
TimeStamp 3209 almacena el tiempo de ejecución 3207. Esto es porque el programa 307 de gestión de plazo límite VM que se describe más adelante determina el paso del tiempo de la Quota 3208. Una prioridad 3210 original almacena información sobre el identificador 3202 de prioridad cuando almacena la prioridad “L1” en el identificador 3202 de prioridad en caso de un evento de temporizador y una interrupción. El procesamiento de la interrupción y el evento de tiempo requiere que la VM 200 se procese de manera preferente para asegurar el procesamiento en tiempo real del sistema de control, de modo que debe proporcionarse la prioridad más alta “L1” independientemente de la prioridad de ejecución de la VM 200. Después del paso de la Quota 3208, se almacena la prioridad del 3210 en el identificador 3202 de prioridad.
(Tabla de gestión de temporizador)
Haciendo referencia a la Figura 4, se muestra un diagrama que ilustra una configuración de la tabla 303 de gestión de temporizador de una realización de la presente invención. La tabla 303 de gestión de temporizador es una tabla necesaria para ejecutar el registro de temporizador, por parte del programa 401 de virtualización, de la AP 211 que pertenece al grupo de prioridad de ejecución “L1” para su ejecución por el OS invitado 213 de la VM 200. La AP 211 del grupo “L1” es una aplicación que requiere un procesamiento en tiempo real. Por tanto, el procesamiento se ejecuta en el programa 401 de virtualización del OS anfitrión 400 en lugar del OS invitado 213 de la VM 200. La planificación 212 in-VM notifica al programa 307 de gestión de evento del temporizador el registro de temporizador de la AP 211 que pertenece al grupo “L1” a través de la IF 214 de notificación.
Un identificador VM 3301 almacena información para identificar de manera unívoca la VM 200 dentro del ordenador 100. Un nivel 3302 de prioridad almacena el identificador 3103 de nivel de prioridad. Un identificador 3303 de tarea almacena información para identificar la AP 211. Un intervalo 3304 almacena un tiempo de disparo de evento de temporizador. Un contador 3305 almacena una frecuencia de disparo por unidad de tiempo (un segundo, por ejemplo) de un evento de temporizador.
(Tabla de gestión de interrupción)
Haciendo referencia a la Figura 5, se muestra un diagrama que ilustra una configuración de la tabla 304 de gestión de interrupción de una realización de la presente invención. Asegurar el procesamiento en tiempo real anteriormente mencionado de la AP 211 en un sistema de virtualización requiere limitar el número de interrupciones procesadas por la VM 200. El número de interrupciones es gestionado por el programa 308 de gestión de interrupción que se describe más adelante.
Un identificador VM 3401 almacena información para identificar de manera unívoca la VM 200 dentro de el ordenador 100. Un período 3402 almacena información sobre el período 3102 de la tabla 301 de gestión de planificación in-VM. Un nivel 3403 de prioridad almacena el identificador VM 3401 gestionado por la tabla 303 de gestión de temporizador. Un plazo límite 3404 almacena el plazo límite 3204 de la tabla 302 de gestión VM. Un margen 3405 de plazo límite almacena un tiempo permitido, en unidades de “ms”, que puede asegurar un procesamiento en tiempo real del tiempo de plazo límite de ejecución del grupo de la AP 211 que pertenece al nivel 3404 de prioridad.
Un tiempo 3406 de procesamiento de una interrupción almacena un tiempo, en unidades de “ms”, necesario para procesar una interrupción de la IF externa 1012 por el OS invitado 213 de la VM 200. Un valor 3407 crítico de cuenta de interrupciones almacena un valor del 90% de un valor obtenido mediante la división del margen 3405 de plazo límite entre el tiempo 3406 de procesamiento de una interrupción. Almacenar el 90% permite un margen del 10%. Un plazo límite 3408 de período almacena el período 3102 de la tabla 301 de gestión de planificación in-VM. Una acumulación 3409 de interrupción almacena el número de interrupciones provocadas dentro de un tiempo del plazo límite 3408 del período.
(Vista general del procesamiento de IF de notificación)
Haciendo referencia a la Figura 6A, se muestra una vista general de la IF de notificación 214 de una realización de la presente invención. Haciendo referencia a la Figura 6B, se muestra una configuración del formato 500 de notificación. El formato 500 de notificación almacena información de la AP 211 en el inicio de la primera AP 211 de un grupo de prioridad y en el final de la última AP 211 (503), notificando así la misma al programa 300 de control de planificador VM. Esta notificación provoca que el programa 401 de virtualización del OS anfitrión 400 determine una secuencia de ejecución de la VM 200. El programa 401 de virtualización procesa una interrupción de la IF de comunicación externa 104 y un evento de temporizador, notificándolo al programa 300 de control de planificación VM. El programa 300 de control de planificación VM ajusta “L1” al identificador 3202 de prioridad de la tabla 302 de gestión VM y ajusta la
Quota 3208 y lo notifica al VM 200 a través de la IF de notificación 214 (501).
En el formato de notificación 500 mostrado en la Figura 6B, un identificador VM 5001, un período 5002, un nivel de prioridad 5003, y un identificador de tarea 5004 en el momento del inicio corresponden a los de la tabla 301 de gestión de planificación in-VM mostrada en la Figura 2, respectivamente, y son establecidos por la primera AP 211 en el inicio de la primera AP 211 de un grupo de prioridad, “S” que se ajusta al inicio/final 5005. Basándose en los elementos 3406 y 3406 de la tabla 304 de gestión de interrupción mostrada en la Figura 5, el programa 300 de control de planificador VM ajusta el tiempo 5006 de procesamiento de una interrupción y un valor 5007 crítico de cuenta de interrupción. En el final de la última AP 211, se ajusta el identificador 5004 de tarea en el momento del final y se ajusta “E” al inicio/final 5005.
(Diagrama de flujo de planificación in-VM)
Haciendo referencia a la Figura 7, se muestra un diagrama de flujo indicativo de la planificación 212 in-VM de una realización de la presente invención. Desarrollando el programa 300 de control de planificador VM y la VM 200 en la memoria 101 del ordenador, el OS anfitrión 400 y el procesador 102 comienzan el procesamiento de la VM 200. Cuando la VM 200 comienza el procesamiento, el OS invitado 213 comienza el procesamiento, iniciando así el procesamiento de la planificación 212 in-VM.
La planificación 212 in-VM lee la tabla 301 de gestión de planificación in-VM del aparato 103 de almacenamiento en la memoria 101 (S1001). La planificación 212 in-VM registra una AP 211 para el inicio y una AP 211 para el final en todos los grupos de nivel de prioridad excepto el grupo de nivel “Ln” almacenado en la información del identificador 3103 de nivel de prioridad de la tabla 301 de gestión de planificación in-VM (S1002).
La AP 200 de prioridad más alta de la información de la prioridad 3106 de la tabla 301 de gestión de planificación in-VM es seleccionada del identificador 3105 de tarea (S1003). Cuando mayor el número de la información de la prioridad 3106, mayor la prioridad. Si hay dos o más identificadores 3105 de tarea que tienen la misma prioridad (Y de S1004), se selecciona el identificador 3105 de tarea con el mínimo tiempo de ejecución de entre la información del tiempo de ejecución 3107 de la tabla 301 de gestión de planificación in-VM.
Se determina si el identificador 3103 de nivel de prioridad al que pertenece el identificador 3105 de tarea anteriormente mencionado es o no “Ln” (S1012). Si se descubre que el nivel de prioridad es “Ln”, entonces la planificación 212 in-VM registra la AP 211 del identificador 3105 de tarea anteriormente mencionado como una aplicación a ser activada por el OS invitado 213 (S1021).
Si el nivel de prioridad no es “Ln”, entonces el identificador VM 5001, el período 5002, el nivel de prioridad 5003, y el identificador de tarea 5002 son información adquirida de la tabla 301 de gestión de planificación in-VM para su almacenamiento en el formato 500 de notificación. “S” se almacena en el inicio/final 5005 (S1032). El formato 500 de notificación es transmitido al programa 300 de control de planificador VM a través de la IF de notificación 214, indicando el inicio de la AP 211 (S1033). La planificación 212 in-VM registra la AP 211 del identificador 3105 de tarea como una aplicación para su procesamiento por el OS invitado 213 (S1034). Se ejecuta el procesamiento final (S1035) (ver la Figura 8). A continuación, la planificación 212 in-VM activa todas las APs 211 que pertenecen al grupo del identificador 3103 de nivel de prioridad.
(Diagrama de flujo de procesamiento final)
Haciendo referencia a la Figura 8, se muestra un diagrama de flujo indicativo del procesamiento final (1035) mostrado en la Figura 7 de una realización de la presente invención. La planificación 212 in-VM registra todas las APs 211 con un identificador 3104 de nivel de prioridad de la tabla 301 de gestión de planificación in-VM incluida en el grupo de prioridad en la planificación 212 in-VM como aplicaciones a ser activadas por el OS invitado 213.
Un tiempo de ejecución en el que la primera AP 211 en el grupo de prioridad del identificador 3104 de nivel de prioridad ha sido procesada por el OS invitado 213 se añade al tiempo de ejecución 3107 de la tabla 301 de gestión de planificación in-VM mostrada en la Figura 2 (S2002). Se determina a partir del identificador 3104 de inicio/final de anillo de nivel de la tabla 301 de gestión de planificación in-VM si la AP 211 es la última AP 211 en el grupo de prioridad del identificador 3104 de nivel de prioridad (S2003). Si la información del identificador 3104 de inicio/final es “E”, se ajusta al formato 500 de notificación para notificar al programa 300 de control de planificador VM el final del procesamiento de la aplicación de la AP 211 en el grupo de prioridad, finalizando así el procesamiento (S2011, S2012).
Si la información del identificador 3104 de inicio/final no es “E”, entonces se determina si hay una AP 211 para su procesamiento secuencial en el identificador 3108 de tarea de control de secuencia de la tabla 301 de gestión de planificación in-VM del identificador 3108 de tarea de control de secuencia (S2021). Si la información del identificador 3105 de tarea de la AP 211 está almacenado en el identificador 3108 de tarea de control de secuencia, entonces esta AP 211 se registra en la planificación 212 in-VM como una aplicación para su activación por el OS invitado 213 (S3031). Si la información del identificador 3105 de tarea de la AP 211 es “0” en el identificador 3108 de tarea de control de secuencia, entonces se selecciona el identificador 3105 de tarea que tienen el mínimo tiempo de ejecución 3107 de la AP 211 en el mismo grupo y la AP 211 seleccionada se registra en la planificación 212 in-VM como una aplicación para su activación por el OS invitado 213 (S2022, S2023). A continuación, el procesamiento anteriormente mencionado
se ejecuta como una siguiente tarea.
(Diagrama de flujo global de sistema de virtualización)
Haciendo referencia a la Figura 9, se muestra un diagrama de flujo global indicativo del sistema 1 de virtualización de una realización de la presente invención. El procesamiento global del sistema 1 de virtualización configura el procesamiento de activación del programa 300 de control de planificador VM y el programa 306 de gestión de plazo límite VM, el programa 307 de gestión de evento de temporizador, y el programa 308 de gestión de interrupción.
Cuando se carga el programa 300 de control de planificador VM y la VM 200 en la memoria 101 del ordenador 100, el OS anfitrión 400 y el procesador 102 comienzan a procesar el programa 300 de control de planificador VM. Cuando comienza el procesamiento del programa 300 de control de planificador VM, la tabla 301 de gestión de planificación in-VM, la tabla 302 de gestión VM, la tabla 303 de gestión de temporizador, y la tabla 304 de gestión de interrupción se leen desde el aparato 103 de almacenamiento hacia la memoria 101 (S101), con lo que se activa la VM 200 (S102). Después de la lectura de las tablas S102, el programa 300 de control de planificador VM inicia cada uno de entre el programa 306 de gestión de plazo límite VM (ver la Figura 10), el programa 307 de gestión de evento de temporización (ver la Figura 12), y el programa 308 de gestión de interrupción (ver la Figura 15) y espera la llegada de una notificación o que se produzca una interrupción.
(Diagrama de flujo del programa de gestión de plazo límite VM)
Haciendo referencia a la Figura 10, se muestra un diagrama de flujo indicativo del programa 306 de gestión de plazo límite VM de una realización de la presente invención. Cuando llega una notificación de la planificación 212 in-VM de la VM 200 (Y de S301), se lee la información 5005 de inicio/final del formato 500 de notificación de la IF de notificación 214 (S302).
Si la información 5005 de inicio/final del formato 500 de notificación es “E” indicativa del final (Y de S303), entonces se busca el identificador 3205 de tarea de la tabla 302 de gestión VM que concuerda con el identificador 5004 de tarea del formato 500 de notificación y se escribe “E” en el identificador 3203 de inicio/final de anillo de nivel asociado al identificador 3205 de tarea encontrado (S311). Se introduce “0” en el estado 3206 de ejecución, indicando así que la VM 200 anteriormente mencionada no está en estado de ejecución (S312). Se almacena una diferencia entre el tiempo del OS anfitrión 400 y el TimeStamp en el plazo límite 3204 como plazo límite. Se añade el plazo límite 3204 al tiempo 3207 de ejecución (S313). Se decrementa en uno el nivel del identificador 3202 de prioridad de la VM 200 anteriormente mencionada (S314). Por ejemplo, si el nivel de la prioridad 3202 es “L1 ”, entonces se almacena “L2”. Si el nivel de prioridad 3202 es “Ln” (Y de S315), entonces se almacena un tiempo del OS anfitrión 400 en el TimeStamp 3209 (S316). En el identificador 3203 de inicio/final de anillo de nivel, se almacena “I” indicativo de un cambio en el identificador 3202 de prioridad (S317). El OS anfitrión 400 selecciona la VM 200 que va a ser procesada por el procesador 102 (S318) (ver la Figura 11).
Si la información 5005 de inicio/final del formato 500 de notificación no es “E” (N de S303), entonces se busca el identificador 3205 de tarea de la tabla 302 de gestión VM que concuerda con el identificador 5004 de tarea del formato 500 de notificación (S321). Si el identificador 3205 de tarea encontrado es la VM 200 no registrada en la tabla 302 de gestión VM (Y en S321), entonces el identificador 3205 de tarea encontrado se registra en la tabla 302 de gestión VM (S331). Si el identificador 3205 de tarea encontrado está en la VM 200 registrada en la tabla 302 de gestión VM (N de S321), entonces se almacena “S” en el identificador 3203 de inicio/final de anillo del nivel (S322) y se almacena el tiempo del OS anfitrión 400 en el TimeStamp 3209 (S323).
Si no se recibe ninguna notificación de la planificación 212 in-VM en la VM 200 (N de S301), entonces se ejecuta el procesamiento de Quota 3208 de la tabla 301 de gestión de planificación in-VM (S341) (ver la Figura 14). Después de las operaciones de procesamiento S318, 331,323, y 341, se espera la siguiente notificación.
(Diagrama de flujo de ejecución de selección VM)
Haciendo referencia a la Figura 11, se muestra un diagrama de flujo indicativo de la ejecución de selección VM (S318 de la Figura 10) de una realización de la presente invención. El OS anfitrión 400 selecciona la VM 200 que va a ser ejecutada por el procesador 102. Se busca en la tabla 302 de gestión VM el identificador 3201 VM con la prioridad 3202 “L1” (S401). Si no hay identificador VM 3201 que almacena la prioridad “L1” (Y de S401), entonces se lee el período 3102 del identificador VM 3101 en la tabla 301 de gestión de planificación in-VM que concuerda con el identificador VM 3201 que tiene el mínimo tiempo de ejecución 3207 (S402). Si una diferencia entre el tiempo del OS anfitrión 400 y el TimeStamp 3209 es igual o mayor que la duración del período 3102, es decir, igual o mayor que el plazo límite del período (Y de S403), entonces la prioridad “L1” más alta se almacena en el identificador 3202 de prioridad que corresponde al identificador VM 3201 (S404). Se busca en el identificador 3202 de prioridad el identificador VM 3201 de prioridad que tiene la prioridad más alta (S405).
Si existe el identificador VM 3201 que almacena la prioridad “L1” (N de S401), entonces se busca en el identificador 3202 de prioridad el identificador VM 3201 que tiene la prioridad más alta (S405).
Si hay dos o más identificadores VM 3201 que tienen el mismo identificador 3202 de prioridad (Y de S406), entonces se selecciona el identificador VM 3201 con el mínimo tiempo de ejecución 3207 en la misma fila del identificador VM
3201 (S411). “R” se almacena en el estado de ejecución 3206 en la misma fila del identificador VM 3201 seleccionado, indicando así un estado de espera de ejecución (S421). El identificador VM 3201 seleccionado se registra en el OS anfitrión 400 como la VM 200 a ser procesada por el OS anfitrión 400 a través del procesador 102 (S422).
(Diagrama de flujo del programa de gestión de eventos de temporizador)
Haciendo referencia a la Figura 12, se muestra un diagrama de flujo indicativo del programa (307) de gestión de eventos de temporización de una realización de la presente invención. Se espera una notificación de evento de temporizador (S501). En caso de una notificación de la planificación 212 in-VM en la VM 200 (Y de S502), se lee el nivel de prioridad 5003 del formato 500 de notificación (S503). Si el nivel de prioridad es “L1” (S504), entonces se establece el nivel de prioridad de la tabla 303 de gestión de temporizador y se registra como evento de temporizador del OS anfitrión (S505).
Si la notificación no es del programa 401 de virtualización del OS anfitrión 400 (N de S502), entonces se recibe el evento de temporizador (S511) y se ejecuta un procesamiento de evento externo (S512) (ver la Figura 13). Después de las operaciones de procesamiento S505 y 512, se espera la siguiente notificación.
(Diagrama de flujo de procesamiento de evento externo)
Haciendo referencia a la Figura 13, se muestra un diagrama de flujo indicativo del procesamiento de evento externo (S512 de la Figura 12, S821 de la Figura 15) de una realización de la presente invención. Se proporciona un evento externo al programa 300 de control de planificador VM desde el OS anfitrión 400. Se almacena en el evento externo información de la VM 200 al que se da un evento externo.
Desde el evento externo recibido, se selecciona la VM 200 que concuerda con el identificador VM 3201 de la tabla 302 de gestión VM (S601). Se lee el identificador 3202 de prioridad de la fila del identificador VM 3201 (S602). Si el identificador 3202 de prioridad es “Ln” (Y de S603), entonces el valor “10” del mismo se almacena en la Quota 3208 (S604).
Si el identificador 3202 de prioridad no es “Ln” (N de S603), entonces el identificador 3202 de prioridad se almacena en el identificador 3210 de prioridad original y la prioridad más alta “L1” se almacena en el identificador 3202 de prioridad (S611). Se almacena “R” indicativo de espera de ejecución en el estado 3206 de ejecución y se almacena un tiempo de OS anfitrión en el TimeStamp 3209 (S612). Se proporciona el evento externo anteriormente mencionado al programa 300 de control de planificador VM a través de la IF de notificación 214 (S613). El OS anfitrión 400 registra el identificador VM 3201 en el Os anfitrión 400 como la VM 200 que va a ser procesada por el procesador 102 (S614).
(Diagrama de flujo de procesamiento de gestión Quota)
Haciendo referencia a la Figura 14, se muestra un diagrama de flujo indicativo del procesamiento de gestión Quota (S341 de la Figura 10) de una realización de la presente invención. La Quota 3208 de la tabla 302 de gestión VM selecciona un identificador VM 3201 diferente de “0”. Se lee la Quota 3208 asociada con el identificador VM 3201 (S701). Si una diferencia entre el tiempo del OS anfitrión 400 y el TimeStamp 3209 supera la Quota 3208 (Y de S702), entonces el identificador 3210 de prioridad original, concretamente “0”, se almacena en el identificador 3202 de prioridad asociado con el identificador VM 3201 anteriormente mencionado (S711).
Si el identificador 3202 de prioridad es “Ln” (Y de S712), entonces se añade la Quota 3208 al tiempo de ejecución 3207 (S713). Si el identificador de prioridad 3202 no es “Ln” (N de S712), entonces se añade la Quota 3208 al tiempo de ejecución 3207 y se almacena “0” en la Quota 3208 (S714).
Si la diferencia entre el tiempo del OS anfitrión 400 y TimeStamp 3209 es menor que la Quota 3208 (N en S702), entonces se añade la diferencia entre el tiempo del OS anfitrión 400 y el TimeStamp 3209 al tiempo de ejecución 3207 (S721). El tiempo del OS anfitrión 400 se almacena en el TimeStamp 3209 (S722). Después de las operaciones de procesamiento S713, 714, y 722, el procesamiento S341 finaliza.
(Diagrama de flujo de programa de gestión de interrupción)
Haciendo referencia a la Figura 15, se muestra un diagrama de flujo indicativo del programa (308) de gestión de interrupción de una realización de la presente invención. Se lee la tabla 301 de gestión de planificación in-VM, se ajusta información de un elemento 3401 de la tabla 304 de gestión de interrupción a 3404, se almacena el valor por defecto “10” en el margen 3405 de plazo límite, y se almacena “0.1” en el tiempo 3406 de procesamiento de una interrupción (S801). Un valor obtenido restando “10” de un valor obtenido mediante la división del margen 3405 de plazo límite entre el tiempo 3406 de procesamiento de una interrupción se almacena en el valor 3407 crítico de cuenta de interrupción (S802). Restando “10” del valor obtenido dividiendo entre el tiempo 3406 de procesamiento de una interrupción, se ajusta un margen de un error de valor crítico provocado por un error en el tiempo de procesamiento del tiempo 3406 de procesamiento de una interrupción.
Se determina se una interrupción está provocada por el OS anfitrión 400 (S803). La información de interrupción normalmente almacena información de la VM 200 a la que se da la interrupción. Se selecciona una fila de la tabla 304 de gestión de interrupción con la información de la VM 200 incluida en la información de interrupción que concuerda con el identificador VM 3401 (S811). Se añade “1” a la acumulación 3409 de interrupción (S812). Se determina si la
acumulación 3409 de interrupción es menor que el valor 3407 crítico de cuenta de interrupción (S813).
Si la acumulación 3409 de interrupción está dentro del valor 3407 crítico de cuenta de interrupción (Y de S813), entonces se determina si la interrupción es un evento de temporizador (S814). Si se descubre que la interrupción es un evento de temporizador (Y de S814), entonces se resta “1” de la acumulación 3409 de interrupción (S815) y se envía el resultado al programa 307 de gestión de evento de temporización (S816). Si se descubre que la interrupción no es un evento de temporizador (N de S814), entonces se llama al procesamiento de evento externo (S821) (ver la Figura 13).
Si la acumulación 3409 de interrupción supera del valor 3407 crítico de cuenta de interrupción (N de S813), entonces se llama al procesamiento pendiente de interrupción (no mostrado) del programa 401 de virtualización del OS anfitrión 400 y se retrasa una notificación de interrupción (S831).
Claims (6)
1. Un método de planificación para un ordenador virtual en un sistema informático en el que están instalados un OS anfitrión (400) y un ordenador virtual, donde
un bloque de procesamiento de planificación in-VM instalado en dicho ordenador virtual
crea un grupo de prioridad de acuerdo con una prioridad de cada aplicación (211) que opera en dicho ordenador virtual y
gestiona, en anillo, dicho grupo de prioridad introduciendo una tarea de cabecera y una tarea de cola de dicho grupo de prioridad que proporciona notificaciones del inicio y final de operación de un grupo de prioridad alta que requiere procesamiento en tiempo real; y
un bloque de control de planificación VM en dicho OS anfitrión (400)
recibe las notificaciones del inicio y final de operación de dicho grupo de prioridad de la tarea de cabecera y la tarea de cola de dicho grupo de prioridad para determinar una prioridad de procesamiento de dicho ordenador virtual.
2. El método de planificación para el ordenador virtual de acuerdo con la reivindicación 1, donde
un bloque de gestión de interrupción instalado en dicho bloque de procesamienot de planificación VM ejecuta un control para asegurar el procesamiento ei tiempo real de un ordenador virtual mediante la limitación del número de interrupciones desde un aparato externo para cada ordenador virtual.
3. El método de planificación de acuerdo con la reivindicación 1, donde las notificaciones del bloque de procesamiento de planificación in-VM incluyen identificadores de la tarea de cabecera y la tarea de cola e información acerca de prioridades de ejecución para determinar la secuencia de ejecución de cada aplicación (211).
4. Un sistema informático virtual en el que están instalados un OS anfitrión (400) y un ordenador virtual, donde un bloque de procesamiento de planificación in-VM instalado en dicho ordenador virtual
instala un bloque de procesamiento de planificación in-VM en dicha ordenador virtual, creando dicho bloque de procesamiento de planificación in-VM un grupo de prioridad de acuerdo con una prioridad de cada aplicación (211) que opera en dicha ordenador virtual y gestionando, en anillo, dicho grupo de prioridad mediante la introducción de una tarea de cabecera y una tarea de cola de dicho grupo de prioridad que proporciona notificaciones del inicio y final de operación de un grupo de alta prioridad que requiere procesamiento en tiempo real, y
instala un bloque de control de planificación VM en dicho OS anfitrión (400), recibiendo dicho bloque de control de planificación VM las notificaciones del inicio y final de operación de dicho grupo de prioridad de la tarea de cabecera y la tarea de cola de dicho grupo de prioridad para determinar una prioridad de procesamiento de dicho ordenador virtual.
5. El sistema informático virtual de acuerdo con la reivindicación 4, donde
se instala un bloque de gestión de interrupción para limitar el número de interrupciones desde un aparato externo para cada ordenador virtual en dicho bloque de procesamiento de planificación VM para ejecutar un control para asegurar un procesamiento en tiempo real de un ordenador virtual.
6. El sistema informático virtual de acuerdo con la reivindicación 4, donde las nofiticaciones del bloque de procesamiento de planificación in-VM incluyen identificadores de la tarea de cabecera y la tarea de cola e información acerca de prioridades de ejecución para determinar la secuencia de ejecución de cada aplicación (211).
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/JP2012/058295 WO2013145199A1 (ja) | 2012-03-29 | 2012-03-29 | 仮想計算機のスケジュール方法 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| ES2802173T3 true ES2802173T3 (es) | 2021-01-15 |
Family
ID=49258563
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| ES12872541T Active ES2802173T3 (es) | 2012-03-29 | 2012-03-29 | Método de planificación de ordenador virtual |
Country Status (4)
| Country | Link |
|---|---|
| EP (1) | EP2833264B1 (es) |
| JP (1) | JP5820525B2 (es) |
| ES (1) | ES2802173T3 (es) |
| WO (1) | WO2013145199A1 (es) |
Families Citing this family (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20200233702A1 (en) * | 2017-03-21 | 2020-07-23 | Mitsubishi Electric Corporation | Control apparatus and computer readable medium |
| JP7000088B2 (ja) * | 2017-09-15 | 2022-01-19 | 株式会社東芝 | 通知制御装置、通知制御方法及びプログラム |
| CN112136110A (zh) | 2018-05-07 | 2020-12-25 | 三菱电机株式会社 | 信息处理装置、调整方法及调整程序 |
| US11249803B2 (en) * | 2019-03-11 | 2022-02-15 | Nec Corporation | Usecase specification and runtime execution |
| CN110308991B (zh) * | 2019-06-21 | 2020-06-19 | 长沙学院 | 一种基于随机任务的数据中心节能优化方法及系统 |
| JP7350694B2 (ja) * | 2020-06-25 | 2023-09-26 | Kddi株式会社 | 制御装置、情報処理装置、情報処理制御方法及びコンピュータプログラム |
Family Cites Families (13)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7136800B1 (en) * | 2002-10-18 | 2006-11-14 | Microsoft Corporation | Allocation of processor resources in an emulated computing environment |
| US20060294238A1 (en) * | 2002-12-16 | 2006-12-28 | Naik Vijay K | Policy-based hierarchical management of shared resources in a grid environment |
| US7415708B2 (en) * | 2003-06-26 | 2008-08-19 | Intel Corporation | Virtual machine management using processor state information |
| JP3920818B2 (ja) * | 2003-07-22 | 2007-05-30 | 株式会社東芝 | スケジューリング方法および情報処理システム |
| US7765543B1 (en) * | 2003-12-17 | 2010-07-27 | Vmware, Inc. | Selective descheduling of idling guests running on a host computer system |
| US7707578B1 (en) * | 2004-12-16 | 2010-04-27 | Vmware, Inc. | Mechanism for scheduling execution of threads for fair resource allocation in a multi-threaded and/or multi-core processing system |
| US8621458B2 (en) * | 2004-12-21 | 2013-12-31 | Microsoft Corporation | Systems and methods for exposing processor topology for virtual machines |
| US8145760B2 (en) * | 2006-07-24 | 2012-03-27 | Northwestern University | Methods and systems for automatic inference and adaptation of virtualized computing environments |
| FR2937439B1 (fr) * | 2008-10-17 | 2012-04-20 | Commissariat Energie Atomique | Procede d'execution deterministe et de synchronisation d'un systeme de traitement de l'information comportant plusieurs coeurs de traitement executant des taches systemes. |
| US8019861B2 (en) * | 2009-01-29 | 2011-09-13 | Vmware, Inc. | Speculative virtual machine resource scheduling |
| US8365178B2 (en) * | 2009-10-02 | 2013-01-29 | Red Hat Israel, Ltd. | Prioritizing scheduling of virtual machines by recalculating priority numbers for each virtual machine based on the interaction of users with the virtual machines |
| US8489789B2 (en) * | 2010-02-05 | 2013-07-16 | Advanced Micro Devices, Inc. | Interrupt virtualization |
| JP5458998B2 (ja) | 2010-03-19 | 2014-04-02 | 富士通株式会社 | 仮想マシンシステムおよび仮想マシン管理方法 |
-
2012
- 2012-03-29 JP JP2014507165A patent/JP5820525B2/ja not_active Expired - Fee Related
- 2012-03-29 EP EP12872541.3A patent/EP2833264B1/en not_active Not-in-force
- 2012-03-29 ES ES12872541T patent/ES2802173T3/es active Active
- 2012-03-29 WO PCT/JP2012/058295 patent/WO2013145199A1/ja not_active Ceased
Also Published As
| Publication number | Publication date |
|---|---|
| JP5820525B2 (ja) | 2015-11-24 |
| WO2013145199A1 (ja) | 2013-10-03 |
| EP2833264A4 (en) | 2016-01-13 |
| EP2833264A1 (en) | 2015-02-04 |
| EP2833264B1 (en) | 2020-06-24 |
| JPWO2013145199A1 (ja) | 2015-08-03 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| EP1837762B1 (en) | Scheduling method, scheduling device, and multiprocessor system | |
| US10430226B2 (en) | Dynamic virtual machine sizing | |
| US10003500B2 (en) | Systems and methods for resource sharing between two resource allocation systems | |
| ES2802173T3 (es) | Método de planificación de ordenador virtual | |
| JP6294586B2 (ja) | 命令スレッドを組み合わせた実行の管理システムおよび管理方法 | |
| CN109936604B (zh) | 一种资源调度方法、装置和系统 | |
| JP6383518B2 (ja) | 仮想マシンモニター及び仮想マシンモニターのスケジューリング方法 | |
| US10846251B1 (en) | Scratchpad-based operating system for multi-core embedded systems | |
| US7752620B2 (en) | Administration of locks for critical sections of computer programs in a computer that supports a multiplicity of logical partitions | |
| US20060130062A1 (en) | Scheduling threads in a multi-threaded computer | |
| JP5458998B2 (ja) | 仮想マシンシステムおよび仮想マシン管理方法 | |
| CN111316237A (zh) | 用于实时虚拟网络功能编排的方法、装置和系统 | |
| Mollison et al. | Bringing theory into practice: A userspace library for multicore real-time scheduling | |
| US20130347000A1 (en) | Computer, virtualization mechanism, and scheduling method | |
| CN106250217A (zh) | 一种多虚拟处理器间的同步调度方法及其调度系统 | |
| Suo et al. | Preserving i/o prioritization in virtualized oses | |
| Shen et al. | {XSched}: Preemptive scheduling for diverse {XPUs} | |
| CN115098230B (zh) | 管理线程的方法及装置 | |
| Müller et al. | Multi sloth: An efficient multi-core rtos using hardware-based scheduling | |
| CN109960567B (zh) | 半导体设备 | |
| Saranya et al. | An implementation of partitioned scheduling scheme for hard real-time tasks in multicore linux with fair share for linux tasks | |
| US20240272927A1 (en) | Method for resource allocation for applications and/or application containers in a distributed system of heterogeneous compute nodes | |
| Oberholzer | Scheduling for MIG-capable GPUs: Accelerator-aware operating system scheduling | |
| KR102708907B1 (ko) | 외부 예외 핸들링 | |
| CN121743024A (zh) | 物理机的处理器调度方法、设备、系统、产品及存储介质 |