Brevet FR2587518A1 — publié le 19870320

La présente invention-concerne un système-de machine virtuelle pour traiter des exceptions ou des interruptions se produisant en cours de l'exécution d'un programme de système d'exploitation. En général, dans un système de machine virtuelle, l'exécution directe de toutes les instructions par le système d'exploitation (SE) n'est pas permise. Par conséquent, lorsqu'une instruction privilégiée, telle qu'une instruction permettant de désigner une opération d'entréejsortie, doit être exécutée, il est nécessaire de simuler avec un programme de commande l'opération désignée par l'instruction privilégiée, ce qui se traduit par une interruption dans le programme de commande provenant du système SE. Par ailleurs, la commande temporaire est effectuée sous le programme de commande pour une interruption à l'issue de l'opération d'en tréejs#rtie, l'exécution d'une instruction indéfinie, ou le traitement d'une exception de programme due à un débordement, se traduisant par une interruption dans le programme de commande provenant du système d'exploitation.Pour un système de machine virtuelle, on propose un procédé pour ramener la commande au système d'exploitation après l'exécution de la simulation par le programme de commande. On trouvera des détails de ce procédé dans un article de P.H. Gum ayant pour titre : "Systemy370 Extended Architecture : Facilities for Virtual Machines" (Architecture étendue du sys tème/370 :installations pour machines virtuelles) publié dans le numéro de novembre de 1'IBM Journal of Research & Development, Vol. 27, n0 6, pp. 530-544. Cependant, cet article ne propose rien de spécifique sur l'endroit et le programme devant sauvegarder 11 état de l'unité de traitement informatique, sur ce qui récupère rz 1'inòrmation sauLvegardée après 1'exécution de la simulation par le programme de commande et sur ce qui se chargera ensuite de la commande. Par conséquent, la présente invention a pour objet un système de machine virtuelle, qui réduira le temps système du programme de commande et améliorera les performances du système. Selon la présente invention, on prévoit un système de machine virtuelle comprenant un programme de commande pour commander l'exécution d'une multitude de systèmes d'exploitation (SE) sur un système informatique comportant une mémoire centrale et pour exécuter un processus prédéterminé à une instruction spécifique. L'instruction spécifique concernant l'exécution du processus prédéterminé comprend : une étape de stockage pour stocker les données d'une première zone de sauvegarde commandée par le programme de commande dans un registre de l'unité de traitement informatique; - une étape d'instauration de mode pour instaurer un mode SE afin d'exécuter l'un des SE dans l'unité de traitement informatique; - une étape de jugement afin de déterminer si oui ou non la valeur du champ de référence de l'instruction spécifique est une valeur prescrite; - une étape de sauvegarde afin de sauvegarder les contenus de registres dans l'unité de traitement informatique dans une seconde zone de sauvegarde commandée par ledit SE en réponse à une identification avec la valeur prescrite à l'étape de jugement; et - une étape pour démarrer l'exécution du SE après sauvegarde à l'étape de sauvegarde ou en réponse à l'identification avec une valeur autre que la valeur prescrite à l'étape de jugement. La présente invention sera bien comprise lors de la description suivante faite en liaison avec les dessins cijoints dans lesquels-: La figure 1 est un schéma sous forme de blocs d'un mode de réalisation préféré de la présente invention; La figure 2 illustre la structure du logiciel à la base du mode de réalisation; et La figure 3 illustre la relation entre un système d'exploitation 12, un programme de commande 13 et des instructions de mode en système d'exploitation de machine virtuelle pour démarrage En figures l à 3, les mêmes numéros de référence représentent , respectivement, les mêmes éléments de la structure. En liaison avec la figure 2, dans le logiciel utilisé dans un mode de réalisation de la présente invention,soit un programme de commande (PC) soit un travail (job) est exécuté sous la commande d'un système d'exploitation principal (SEP). Une multitude de systèmes d'exploitation asservis (SEA) sont exécutés sous ce programme de commande PC. Un travail (job) est exécuté sous la commande de chacun des systèmes d'exploitation asservis SEA. Ainsi, le logiciel utilisé dans ce mode de réalisation présente une structure multi-niveau. En liaison maintenant avec la figure 1, le mode de réalisation de la présente invention comprend une unité centrale 1 (UC), un moyen 2 d'accès en mémoire (Mk4) et une mémoire principale (MP) 3. L'unité centrale 1 comprend en outre un registre de mode 11, (RM), des registres 14 pour stocker l'information d'état de l'unité centrale 1 et un registre d'instructions 15. Un système d'exploitation 12 (SE) de l'unité centrale 1 est exécuté dans un mode SE chargé dans le registre de mode 11. En outre, un programme de commande 13 APC) de lfunitF-cenLra-le 1 est exécuté dans un mode PC chargé dans le registre de mode 11. La mémoire principale 3 comporte au moins une première zone de sauvegarde 31 ou une seconde zone de sauvegarde 32. Bien qu'en figure 1 on ait seulement représenté une unité centrale 1 afin de simplifier la description, s'il y a n unités centrales de traitement (n > 2), la mémoire principale 3 comportera n premières zones de sauvegarde 31 et n secondes zones de sauvegarde 32. La première zone de sauvegarde 31 est commandée par le programme de commande 13, alors que la seconde zone de sauvegarde 32 l'est par le système d'exploitation 12. L'information d'état de l'unité centrale 1 stockée dans le groupe de registres 14 est entrée dans les première et seconde zones de sauvegarde 31 et 32 via le moyen 2 d'accès en mémoire.Dans l'unité centrale 1 en réponse à la désignation du mode par le contenu du registre de mode 11 et à une instruction chargée dans le registre d'instructions 15, soit le système d'exploitation 12 soit le programme de commande 13 est exécuté alors qu'il y a accès à la mémoire principale 3 par le moyen 2 d'accès en mémoire. En liaison maintenant avec la figure 1 ainsi qu'avec la figure 3, dans le mode de réalisation préféré de la présente invention, pendant l'exécution d'un travail par l'unité centrale 1 sous la commande du système d'exploitation 12, l'unité 1 passe du mode SE au mode PC en réponse à la génération d'une exception de programme ou d'une interruption, et démarre l'exécution du programme de commande 13. Conformément à ce programme 13, il y a exécution d'une simulation de l'exception de programme ou de l'interruption. Après llexécu- tion de cette simulation, une instruction de mode en système d'exploitation de machine virtuelle pour démarrage (SEMVD) est exécutée.Cette instruction de mode SEMVD, qui est une instruction permettant de démarrer l'exécution du système d'exploitation 12 dans le système de machine virtuelle, comporte une zone de code d'opération et une zone drapeau. Lorsque la commande passe du programme de commande 13 au système d'exploitation 12, il peut être spécifié selon le contenu de la zone drapeau Si le reste du travail précédemment effectué doit être pris en charge pour que son exécution soit poursuivie immédiatement ou pour que l'exécution soit reprise à l'issue de l'exécution du traitement de l'exception de programme ou de l'interruption. On décrira maintenant en détail le fonctionnement du mode de réalisation préféré de la présente invention en liaison avec la figure 1. Tout d'abord, dans l'unité centrale 1, le mode SE es instauré dans le registre de mode 11, et un travail est exécuté dans le bloc 121 sous la commande du système d'exploitation 12. Alors, soit un programme d'exception, soit une inter ruption se produit dans le bloc 122. En réponse à cette occurrence, dans le bloc 123, l'information d'état de l'unité centrale 1 est sortie du groupe de registres 14 et sauvegardée via le moyen 2 d'accès en mémoire dans la première zone de sauvegarde 31, qui est accessible pour le programme de commande 13. Ensuite, dans le bloc 124, le contenu du registre de mode Il est modifié pour passer du mode SE au mode PC, et la commande est transmise au programme 13 (PC). Le programme de commande 13, tout d'abord dans le bloc 131, exécute la simulation d'une exception de programme ou d'une interruption. Après les exécutions de cette simulation, l'instruction SEMVD en provenance du registre d'instructions 15 est exécutée par la commande de commande 13 dans les blocs 132 à 136. Lorsqu'une instruction qui ne peut être exécutée sous la commande du système d'exploitation 12 doit être exécutée par le programme de commande 13, "00" est désigné pour la zone drapeau de l'instruction SEMVD. Dans tous les autres cas, "IX",c'est-à-dire soit 11 soit 10 est désigné comme zone drapeau. A l'instruction SEMVD, dans le bloc 132, l'information d'état de la première zone de sauvegarde 31 est chargée dans le groupe de registres 14 via le moyen 2 d'accès en mémoire.Ensuite, dans le bloc 133, le contenu du registre de mode 11 est modifié pour passer du mode PC au mode SE . Alors, dans le bloc 134, il est jugé si oui ou non le contenu de la zone drapeau de l'instruction SEMVD est l100ll, Si le contenu de cette zone est "ou", la commande passera au bloc 136 dans lequel le système d'exploitation 12 est actionné en conformité avec le contenu chargé de la première zone de sauvegarde 31 dans le groupe de registres 14. En réponse à cette action, dans le bloc 126 du système d'exploitation 12 commence l'exécution du reste du travail effectué précédemment dans le bloc 121.Ou, si le contenu de la zone drapeau est jugé comme étant soit "10" soit "11" dans le bloc 134, la commande passera du bloc 134 au bloc 135,dans lequel l'information d'état de l'unité centrale 1 stockée dans le groupe de registres 14 est sortie via le moyen 2 d'accès en mémoire pour être entrée dans la seconde zone de sauvegarde 32 qui est accessible pour le système d'exploitation 12. Ensuite dans le bloc 136,le contenu du groupe de registres 14 est partiellement modifié et le système d'exploitation 12 est actionné. En réponse à cette action, dans le bloc 125 du système d'exploitation 12, il y a exécution du traitement de l'exception de programme ou de l'interruption par le système d'exploitation 12. A l'issue de l'exécution de ce traitement de l'exception de programme ou de l'interruption, le reste du travail effectué précédemment dans le bloc 121 l'est dans le bloc 126. Selon la présente invention, il est possible, dans le cas de l'occurrence d'une exception de programme ou d'une interruption, dont le traitement nécessite l1exé- cution sous la commande d'un système d'exploitation, que l'unité de traitement informatique effectue le passage d'un programme de commande au système d'exploitation, dont un transfert d'une première zone de sauvegarde à une seconde zone de sauvegarde, à une simple instruction SEMVD. Il en résulte qu'on peut réduire le temps système du programme de commande tout en améliorant les performances du système de machine virtuelle. La présente invention n'est pas limitée aux exemples de réalisation qui viennent d'être décrits, elle est au contraire susceptible de modifications et de variantes qui apparaîtront à l'homme de l'art. REVENDICATIONS 1 - Système de machine virtuelle comportant un programme de commande (PC, 13) pour la commande de l'exécution d'une multitude de systèmes d'exploitation (SE, 12) sur un système informatique équipé d'une mémoire principale (MP,3), caractérisé en ce qu'il comprend - une unité de traitement informatique (1) pour la sauvegarde, en réponse à l'occurrence d'une exception de programme ou d'une interruption dans un mode SE pour l'exécu- tion des systèmes d'exploitation, d'un état au moment d'une telle occurrence dans une première zone de sauvegarde (31), commandée par le programme de commande, et pour le passage du mode SE au mode PC pour l'exécution dudit programme de commande; et - un moyen de programme de commande (13) pour exécuter la simulation de l'exception de programme ou de l'interruption en réponse à l'occurrence de l'exception de programme ou de l'interruption et soit - le rétablissement de l'unité de traitement informatique au mode SE, après stockage de la donnée de la première zone de sauvegarde (31) dans des registres (15) à l'intérieur de l'unité de traitement informatique, afin d'actionner l'un des systèmes d'exploitation (12), soit - le rétablissement de l'unité de traitement informatique au mode SE, après stockage de la donnée de la première zone de sauvegarde (31) dans des registres à l'intérieur de l'unité de traitement informatique, et la sauvegarde de la donnée de l'unité de traitement informatique dans une seconde zone de sauvegarde (32) commandant ce système particulier d'exploitation, afin d'actionner cedit système particulier. 2 - Système de machine virtuelle comportant un programme de commande (13) pour la commande de l'exécution d'une multitude de systèmes d'exploitation (SE, 12) sur un système informatique équipé d'une mémoire principale (3) et pour l'exécution d'un processus prédéterminé à une instruction spécifique cette instruction spécifique comprenant les étapes prédéterminées suivantes - une étape d'instauration de mode pour instaurer un mode SE afin d'exécuter l'un des systèmes d'exploitation dans l'unité de traitement informatique (1); - une étape de jugement pour juger si oui ou non la valeur de la zone drapeau de l'instruction spécifique a une valeur prescrite; ; - une étape de sauvegarde pour sauvegarder les contenus de registres (14) dans l'unité de traitement informatique dans une seconde zone de sauvegarde (32) commandée par ledit système d'exploitation en réponse à l'identification avec la valeur prescrite à l'étape de jugement; et - une étape pour démarrer l'exécution dudit système d'exploitation après sauvegarde à ladite étape de sauvegarde ou en réponse à l'identification avec une valeur autre que Ja valeur prescrite à l'étape de jugement.