Brevet FR2651051A1 — publié le 19910222

Système de machines virtuelles capables d'éliminer Le temps système La présente invention concerne un système de machines virtuelles permettant de réaliser une pluralité de machines virtuelles (MV) dans une machine nue (MN). Un système de machines virtuelles comprend une machine nue ou réelle constituant le matériel et une pluralité de machines virtuelles réalisée dans la machine nue. Dans Le système ss machines virtuelles, il est possible de faire fonctionner efficacement les machines virtuelles dans la machine nue de telle manière que les machines virtuelles utilisent en commun des ressources qui comprennent une mémoire principale, des dispositifs d'entrée/sortie, et une unité centrale de traitement. Conformément à l'art antérieur, le système à machines virtuelles comprend un système d'exploitation permettant de commander la machine nue. Ce système d'exploitation est appelé système d'exploitation de la machine nue (SE-MN > . Le système à machines virtuelles fait exécuter, sous le contrôle du système de la machine nue, un processus de machines virtuelles (processus MV), une pluralité de processus. de processeurs virtuels (processus PV), et une pluralité de travaux utilisateurs. Chaque processus de processeur virtuel met en oeuvre une machine virtuelle en réponse à une instruction délivrée par le système d'exploitation de La machine nue. Cette instruction est appelée une instruction EXECVP. En d'autres termes, La machine virtuelle est intégrée dans l'instruction EXECVP de La machine nue.Le processus de. machines virtuelles exécute un traitement de simulation Logicielle pour chaque machine virtuelle sous Le contrôle du système d'exploitation de la machine nue. Le traitement de simulation logicielle simule l'exécution d'une instruction particulière par utilisation d'un logiciel. L'instruction particulière est une instruction qui ne peut pas être directement exécutée dans la machine virtuelle. L'instruction particulière est par exemple une instruction d'entrée/sortie, une instruction de commande du système, une instruction de commande de configuration, ou toutes autres instructions similaires. Chacun des processus MV et PV ne constitue qu'un travail qui est équivalent à un travail utilisateur s'exécutant dans la machine nue. Par conséquent, ce système à machines virtuelles classique présente l'inconvénient que le temps système augmente lors de L'exécution du traitement de simulation logicielle de chaque machine virtuelle. On suppose qu'une nouvelle machine virtuelle est ajoutée au système de machines virtuelles. On suppose en outre que la nouvelle machine virtuelle présente une architecture différente de celles des machines virtuelles déjà présentes dans le système de machines virtuelles. Dans ces circonstances, il est soit necessaire de modifier le traitement de simulation logiciel- le de façon à ce qu'il soit adapté à la nouvelle machine virtuelle, soit nécessaire d'ajouter un traitement de simulation logicielle adapté à la nouvelle machine virtuelle. Par conséquent, il est cliffici-le d'effectuer la mise au point de la nouvelle machine virtuelle sans interrompre de façon indésirable les systèmes à machines virtuelles en cours de fonctionnement. La présente invention a donc pour but de fournir un système de machines virtuelles qui soit capable d'éliminer Le temps système qui s'ajoute lors de l'exécution de chaque machine virtuelle. Un autre but de L'invention est de fournir un système à machines virtuelles qui permette d'effectuer la mise au point d'une nouvelle machine virtuelle sans interrompre les systèmes à machines virtuelles dejà en cours de fonctionnement. D'autres buts de la présente invention ressortiront de la description fournie ci-dessous. Pour décrire l'aspect essentiel de la présente invention, on peut noter qu'un système à machines virtuelles sert à realiser une pluralité de machines virtuelles dans une machine nue. Conformément à la présente invention, le système de machines virtuelles mentionné ci-dessus comprend un moyen de mémorisation pour mémoriser une file d'attente allant d'une machine virtuelle de tête à une machine virtuelle de queue qui sont successivement mises en état de marche, parmi La pluralité de machines virtuelles, et des moyens générateurs pour engendrer des interruptions à des intervalles de temps prédéterminés.Un moyen de commande est connecté au moyen de mémorisation et au moyen générateur pour commander, en réponse aux interruptions, les premières à dernières machines virtuelles afin que ces premières à dernières machines virtuelles s'exécutent successivement en tant que machines virtuelles actives. Selon un second aspect essentiel de la présente invention, celle-ci concerne un procedé permettant de commander un système à machines virtuelles qui réalise une pluralité de machines virtuelles dans une machine nue. Conformément à la présente invention, le procédé mentionné ci-dessus comprend les étapes consistant à : recevoir une instruction d'activation pour une machine virtuelle particulière qui constitue L'une de la pluralité de machines virtuelles, juger, en réponse à L'instruction d'activation, quelle est la machine virtuelle en cours d'exécution dans la machine nue ; faire s'exécuter cette machine virtuelle dans la machine nue en tant que machine virtuelle active lorsqu'aucune de la pluralité des machines virtuelles n'est en cours d'exécution ; et placer la machine virtuelle particulière dans une file d'attente en tant que machine virtuelle de queue lorsque L'une de la pluralité des machines virtuelles est en cours d'exécution en tant que machine virtuelle active. Selon ce second aspect de la présente invention, il est préférable que ce procédé comprenne en outre ces étapes consistant à : recevoir une interruption ; interrompre en réponse à l'interruption t'exécution de la machine virtuelle active pour placer cette machine virtuelle active dans la file d'attente en tant que machine virtuelle de queue ; et utiliser, en réponse, à l'interruption, une machine vi rtJe île de tête de la file d'attente en tant que nat ne virtuelle active. La figure 1 représente une structure de commande d'un système de machines virtuelles classique ; la figure 2 représente une structure de commande d'un système de machines virtuelles selon un mode de réalisation de I-a présente inventio la figure 3 est un schéma fonctionriet o un système de machines virtuelles ayant la structure de commande representee figure 2 ; et la figure 4 est un organigramme servant à décrire le fonctionnement du répartiteur devant être utilisé dans le système de machines virtuelles illustré figure 3. Dans La figure 1, une structure de commande d'un système de machines virtuelles classique sera tout d'abord décrite pour faciliter la comprenesion de ta présente invention. Le système de machines virtuelles comprend une machine nue (MN) constituée d'un matériel et d'un système d'exploitation de la machine nue (SE-MN) pour commander la machine nue. Le système de machines virtuelles exécute dans la MN, sous Le contrôle du SE-MN, un processus de machine virtuelle (processus MV), un premier et un second processus de processeurs virtuels (processus PVI et processus PV2), ainsi qu'un premier et un second travaux utilisateurs qui sont designs travail A et travail B. Les processus ~PV1 et PV2 exécutent une première et une seconde machine virtuelles en réponse à une instruction EXECVP délivrée par Le SE-MN. Le processus VP1 comprend un premier système d'exploitation de machine virtuelle (SE-MV 1). La première machine virtuelle exécute un premier à un troisième travaux (travail 1, travail 2 et travail ) Sus le contrôle du SE-MV 1. De même, le processus. VP2 comprend un second système d'exploitation de machine virtuelle (SE-MV 2). La seconde machine virtuelle exécute des quatrième à sixième travaux (travail 4, travail 5, travail 6) sous le contrôle du SE-MV 2. Le processus MV effectue un traitement de sinaupdtion logicielle pour chaque machine virtuelle 5bUS le contrôle du SE-MN. Cette structure du système à 'machines virtuelles classique présente les défauts mentionnés' dans le préambule du present fascicule. Si l'on se réfère à La figure 2, celle-ci represente un système à machines virtuelles selon un mode de realisation de l'invention qui comprend une machine nue (MN) constituée d'un materiel qui exécute des premier à cinquième machines virtuelles de la manière suivante. La première machine virtuelle exécute les travaux 1 à 3 sous le contrôle d'un premier système d'exploitation de machine virtuelle (SE-MV 1). De même, la deuxième machine virtuelle exécute des travaux 4 à Ô sous le contrôle d'un second système d'exploitation de machine virtuelle (SE-MV 2). De même, les troisième à quatrième machines virtuelles executent respectivement les travaux 7 à 9, les travaux 10 à 12 et les travaux 13 à 15 sous le contrôle des troisième à cinquième systèmes d'exploitation de machine virtuelle (SE-MV 3, SE-MV 4, et SE-MV 5). Par comparaison au système de machines virtuelles classique illustré figure 1, le système de machines virtuelles de la présente invention exécute directement les première à cinquième machines virtuelles dans la machine nue sans SE-MN. Cela résulte du fait que les première à cinquième machines virtuelles peuvent utiliser la MN en partage de temps comme cela sera décrit ci-dessous. A cet effet, les ressources sont allouées de façon exclusive aux première à cinquième machines virtuelles. Dans la figure 3, le système de machines virtuelles présente la structure de commande illustrée figure 2, et sert à réaliser les première à cinquième machines virtuelles dans la machine nue. Le système de machines virtuelles comprend une mémoire centrale 11, un répartiteur de MV 12, et un cadenceur de repartition de MV 13. Le répartiteur de MV 12 est relié à la mémoire céntrale 11 et au cadenceur 13. Le cadenceur de repartition de MV 13 sert de dispositif generateur pour engendrer des interruptions à des intervalles de temps predetermines. La mémoire centrale 11 sert de dispositif de mémorisation pour mémoriser une file d'attente allant d'une machine virtuelle de tête à une machine virtuelle de queue qui sont successivement mises dans des etats de marche parmi la pluralité des machines virtuelles, d'une manière qui ressortira de la description ci-après. Recevant Les interruptions, Le répartiteur de MV 12 peut fonctionner en tant que dispositif de commande pour commander des première à dernière machines virtuelles de façon à ce que ces première à dernière machines virtuelles s'exécutent successivement en tant que machines virtuelles actives. Plus precisement, le repartiteur de MV 12 fait en sorte que la machine virtuelle de tête soit exécutée e-n tant que l'une des machines virtuelles actives en réponse à L'une des interruptions et transforme la file d'attente en une nouvelle file allant d'une nouvelle machine virtuelle de tête à une nouvelle machine virtuelle de queue. Le répartiteur de MV 12 place celle qui a été mentionnée ci-dessus des machines virtuelles actives dans la nouvelle file d'attente en tant que nouvelle machine virtuelle de queue. On fera les hypothèses suivantes. Les deuxiè- me à quatrième machines virtuelles sont successivement mises dans des etats de marche. Aux seconde à quatrième machines virtuelles sont affectés un second à un quatrième numeros de machines virtuelles qui sont respectivement désignes MV(iZ),MV(#3) MV(#3) et MV(#4). Les seconde à quatrième machines virtuelles comprennent un second à un quatrième blocs de commande de machine virtuelle qui sont respectivement désignés BCMV(#2), BCMV(#3) et BCMV(#4). Dans ces circonstances, La memoire centrale 11 comprend un pointeur 21 pour stocker un mot de file d'amorçage de machines virtuelles CMFAMV) representatif de la machine virtuelle de tête. Dans l'exemple illustré, la machine virtuelle de tête est la seconde machine virtuelle. La memoire centrale 11 mémorise les premier. à troisième éléments de la file d'attente 22, 23 et 24 correspondant à la machine virtuelle de tête à la machine virtuelle suivante, et à la machine virtuelle de queue, qui est la quatrième machine virtuelle. Le premier élément de la file d'attente 22 est indiqué par le pointeur 21. Le premier élément 22 de la file d'attente comprend un premier lien de chaînage NL1 pour relier le premier elément 22 de la file au second element 23 de la file. De même, le second élément 23 de la file comprend un second lien de chaînage NL2 pour relier le second element 23 de la file au troisième élément 24 de la file. Le troisième élément 24 de la file comprend un troisième lien de chainage NL3 pour relier le troisième les ment 24 de la file à aucun des éléments de la file d'attente. Plus précisément, le troisième lien de chaînage LN3 ne mémorise que des "0". Le premier élément 22 de la file d'attente comprend le second numero de machines virtuelles Mu(*2) et un premier pointeur de bloc de commande de machines virtuelles PBCMV1 représentatif d'une adresse de tête du second bloc de commande de machines virtuelles BCMV(*2). De même, le second élément 23 de la file d'attente comprend le troisième numéro de machines virtuelles Mi(#3) et un second pointeur de bloc de commande de machines virtuelles PBCMV2 representatif d'une adresse de tête du troisième bloc de commande de machines virtuelles BCMV(#3). Le troisième element 24 -de la file d'attente comprend le quatrième numéro de machines virtuelles Mi 4) et un troisième pointeur de bloc de commande de machines virtuelles PBCMV3 représentatif d'une adresse de tête du quatrième bloc de commande de machines virtuelles BCMV(#4). En se référant à la figure 4, on décrira le fonctionnement du répartiteur de MV 12. On supposera qu'aucune des première à cinquième machines virtuelles n'est mise dans un état de marche. Par conséquent, la mémoire centrale 11 (figure 3) ne mémorise aucune de la première à la cinquième machines virtuelles sous la forme d'une file d'attente. En d'autres termes, la file d'attente n'a ni machine virtuelle de tête ni machine virtuelle de queue. Cette file d'attente sera donc designee ici sous le nom de file d'attente vide. Lors de la réception d'une instruction d'activation pour La première machine virtuelle (OUI à la première étape S1),-le répartiteur de MV 12 détermine laquelle des machines virtuelles est en cours d'exe- cution dans la machine nue à la seconde étape S2. Lorsqu'aucune de la première à la cinquième machines virtuelles n'est en cours d'exécution, la seconde étape S2 est suivie d'une troisième étape S3 lors de laquelle le répartiteur MV 12 provoque l'exécution de la première machine virtuelle dans la machine nue en tant que machine virtuelle active. Lors de la réception d'une autre instruction d'activation pour la seconde machine virtuelle (OUI lors de la première étape S1), le répartiteur MV 12 détermine laquelle des machines virtuelles est en cours d'exécution dans la machine nue lors de la seconde retape S2. Lorsque la première machine virtuelle est en cours d'exécution, la seconde étape S2 est suivie d'une quatrième étape S4 lors de Laque île le répartiteur de MV 12 place la seconde machine virtuelle dans la file d'attente - vide en tant que machine virtuelle de queue, qui est en même temps une machine virtuelle de tête dans cette queue vide.Lorsque des instructions d'activation correspondant à La troisième et à La quatrième machines virtuelles sont successivement reçues, le repartiteur de MV 12 stocke la troisième et la quatrième machines virtuelles dans la file d'attente "vide" en tant que machine virtuelle suivante et en tant que machine virtuelle suivante supplémentaire ou nouvelle machine virtuelle de queue, comme le montre la figure 3. A la réception d'une interruption en provenance du cadenceur de répartitionré de MV 13 (OUI à la cinquième étape S5), le repartiteur de MV 12 interrompt l'exécution de la machine virtuelle active (ou de la première machine virtuelle) pour placer la machine virtuelle active dans la file d'attente "vide", en tant que machine virtuelle de queue, lors de la sixième étape S6. Cette machine virtuelle de queue se trouve à la suite de ta nouvelle machine virtuelle de queue décrite précédemment et constitue une seconde nouvelle machine virtuelle de queue. La sixième étape S6 est suivie d'une septième étape S7 lors de laquelle le répartiteur de MV 12 utilise la machine virtuelle de tête (la seconde machine virtuelle) de la file d'attente "vide" en tant que machine virtuelle active. REVENDICATIONS 1. Système de machines virtuelles pour realiser une pluralité de machines virtuelles dans une machine nue, ledit système de machines virtuelles étant caractérisé - un moyen de mémorisation pour mémoriser une file d'attente allant d'une machine virtuelle de tête à une machine virtuelle de queue qui sont succes sivement mises dans des états de marche parmi ladite pluralité de machines virtuelles ; - un moyen générateur pour engendrer des interruptions à des intervalles de temps prédéterminés ; et - un moyen de commande connecté audit moyen de memori- sation et audit moyen générateur, et sensible aux dites interruptions pour commander ladite file allant de la machine virtuelle de tête à la machine virtuel le de queue afin qu'elles s'exécutent successivement en tant que machines virtuelles actives. 2. Système de machines virtuelles selon la revendication 1, caractérisé en ce que ledit moyen de commande fait en sorte que ladite machine virtuelle de tête s'exécute en tant que l'une desdites machines virtuelles actives en réponse à l'une desdites interruptions, et modifie ladite file d'attente en une nouvelle file d'attente allant d'une nouvelle machine virtuelle de tête à une nouvelle machine virtuelle de queue, ledit moyen de commande plaçant ladite machine virtuelle active dans ladite nouvelle file d'attente en tant que nouvelle machine virtuelle de queue. 3. Procédé de commande d'un système de machines virtuelles qui réalise une pluralité de machines virtuelles dans une machine nue, ledit procédé étant caracterise par les étapes consistant à - recevoir une instruction d'activation pour une machi ne virtuelle particulière qui constitue L'une de ladite pluralite de machines virtuelles ; - déterminer, en réponse à ladite instruction d'activa tion, quelle est la machine virtuelle en cours d'exé cution dans ladite machine nue ; provoquer L'exécution de ladite machine virtuelle particulière dans ladite machine nue en tant que machine virtuelle active lorsqu'aucune de ladite pluralité de machines virtuelles n'est en cours d'exécution ; et placer ladite machine virtuelle particulière dans une file d'attente en tant que machine virtuelle de queue lorsque l'une de ladite pluralité de machi nes virtuelles est en cours d'exécution en tant que ladite machine virtuelle active. 4. Procédé selon la revendication 3, caractérisé en ce que ce procédé comprend en outre les étapes consistant à recevoir une interruption ; interrompre, en réponse à ladite interruption; l'exé- cution de ladite machine virtuelle active pour placer ladite machine virtuelle active dans ladite file d'attente en tant que ladite machine virtuelle de queue ; et utiliser, à ladite réponse d'interruption, une machi ne virtuelle de tête de ladite file d'attente en tant que ladite machine virtuelle active.