RU2589853C1 - Method of providing collaborative operation of several hypervisors in computer system - Google Patents

Method of providing collaborative operation of several hypervisors in computer system Download PDF

Info

Publication number
RU2589853C1
RU2589853C1 RU2014151463/08A RU2014151463A RU2589853C1 RU 2589853 C1 RU2589853 C1 RU 2589853C1 RU 2014151463/08 A RU2014151463/08 A RU 2014151463/08A RU 2014151463 A RU2014151463 A RU 2014151463A RU 2589853 C1 RU2589853 C1 RU 2589853C1
Authority
RU
Russia
Prior art keywords
hypervisor
code
computer system
mode
state
Prior art date
Application number
RU2014151463/08A
Other languages
Russian (ru)
Inventor
Вячеслав Иванович Левченко
Игорь Юрьевич Кумагин
Original Assignee
Закрытое акционерное общество "Лаборатория Касперского"
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Закрытое акционерное общество "Лаборатория Касперского" filed Critical Закрытое акционерное общество "Лаборатория Касперского"
Priority to RU2014151463/08A priority Critical patent/RU2589853C1/en
Application granted granted Critical
Publication of RU2589853C1 publication Critical patent/RU2589853C1/en

Links

Images

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

FIELD: information technology.
SUBSTANCE: method of performing more than one hypervisor in the same computer system, one of hypervisor should be carried out continuously, in which code in hypervisor, which should be carried out continuously, while other hypervisor do not require code execution in hypervisor mode; code start attempt in hypervisor mode is monitored from other hypervisor; code execution in hypervisor mode is stopped, which should be performed continuously; storing state of computer system at shutdown of code execution in hypervisor mode, which should be performed continuously; loaded state of computer system to perform code execution in hypervisor mode, which attempted to start; code is in mode of hypervisor which attempted to start; monitoring state of computer system for waiting to run code in hypervisor mode, which should be performed continuously; loaded previously stored state of computer system; launching code in hypervisor mode, which should be carried out continuously.
EFFECT: continuous execution of one of hypervisors in computer system.
1 cl, 4 dwg

Description

Область техникиTechnical field

Изобретение относится к технологиям виртуализации, а более конкретно к системам и способам обеспечения совместной работы нескольких гипервизоров в компьютерной системе.The invention relates to virtualization technologies, and more particularly to systems and methods for ensuring the collaboration of several hypervisors in a computer system.

Уровень техникиState of the art

В настоящее время технология виртуализации все более активно используется в самых различных сферах: как в рамках крупных дата-центров, так и на пользовательских компьютерах. Виртуализация предоставляет возможность запускать несколько операционных систем на одной компьютерной системе, что позволяет наиболее полно использовать имеющиеся аппаратные ресурсы. Например, пользователь может использовать несколько виртуальных машин для одновременного исполнения ряда приложений в различных операционных системах (ОС). Однако наиболее востребованной технология виртуализации стала при использовании в рамках крупных серверов, например при оказании услуг веб-хостинга.Currently, virtualization technology is increasingly being used in a wide variety of fields: both in large data centers and on user computers. Virtualization provides the ability to run multiple operating systems on a single computer system, which allows the most complete use of available hardware resources. For example, a user can use several virtual machines to simultaneously execute a number of applications in various operating systems (OS). However, virtualization technology has become most in demand when used within large servers, for example, when providing web hosting services.

Для обеспечения работы виртуальных машин требуется использовать гипервизор, который обеспечивает возможность выполнения виртуальных машин, выступая в роли менеджера или диспетчера виртуальных машин (англ. Virtual Machine Manager, VMM). В том случае, если в компьютерной системе присутствуют несколько гипервизоров, то требуется обеспечить их корректную работу. Совместная работа гипервизоров виртуальных машин обеспечивается их реализацией: при получении управления режим процессора изменяется временно и возврат в исходный режим осуществляет диспетчер виртуальных машин по своему усмотрению. Например, если в операционной системе Windows запущены несколько виртуальных машин различных производителей, таких как VMWare или Citrix (Xen), то планировщик будет выделять время для исполнения гипервизоров как для обычных потоков в операционной системе (с учетом приоритета потоков). Сам код гипервизора корректно завершает свое выполнение по истечению определенного кванта времени (однако стоит отметить, что данный квант времени не совпадает с тем, что был выделен планировщиком ОС). В многоядерном процессоре на каждом ядре будет работать отдельная копия гипервизора, но с разным контекстом.To ensure the operation of virtual machines, you must use a hypervisor that provides the ability to run virtual machines, acting as a manager or manager of virtual machines (Eng. Virtual Machine Manager, VMM). In the event that several hypervisors are present in the computer system, it is required to ensure their correct operation. The joint work of virtual machine hypervisors is ensured by their implementation: upon receipt of control, the processor mode changes temporarily and the virtual machine manager returns to its original mode at its discretion. For example, if several virtual machines of various manufacturers, such as VMWare or Citrix (Xen), are running on the Windows operating system, the scheduler will allocate time for the execution of hypervisors as for regular threads in the operating system (taking into account the priority of the threads). The hypervisor code itself correctly completes its execution after a certain time slot has elapsed (however, it is worth noting that this time slot does not coincide with what was selected by the OS scheduler). In a multi-core processor, a separate copy of the hypervisor will work on each core, but with a different context.

В ряде публикаций также раскрыт принцип управления несколькими гипервизорами в системе. Например, в публикации US 20140149980 решается задача диагностики кластера гипервизоров (когда на одном компьютере может работать несколько гипервизоров), в рамках которой может быть определен гипервизор, работа которого приводит к деградации производительности. В публикации US 20110023030 описывается возможность передачи управления от одного гипервизора к другому путем "горячей" миграции аппаратных ресурсов и страниц памяти для работающих виртуальных машин (таким образом, миграция происходит на лету).A number of publications also disclose the principle of managing multiple hypervisors in a system. For example, publication US 20140149980 solves the problem of diagnosing a cluster of hypervisors (when several hypervisors can run on the same computer), within which a hypervisor can be defined, the operation of which leads to degradation of performance. The publication US 20110023030 describes the possibility of transferring control from one hypervisor to another by hot migrating hardware resources and memory pages for running virtual machines (thus, migration occurs on the fly).

Однако указанные публикации не решают задачу реализации постоянно работающего гипервизора, периодически уступающего управление гипервизорам виртуальных машин. Подобная необходимость может быть оправдана в том случае, если гипервизор обеспечивает работу критически важных виртуальных машин или же предназначен для постоянного отслеживания выполнения кода в привилегированном режиме (так называемый "режим ядра", англ. kernel mode).However, these publications do not solve the problem of implementing a constantly working hypervisor that periodically cedes control to hypervisors of virtual machines. Such a need can be justified if the hypervisor provides the operation of critical virtual machines or is designed to constantly monitor code execution in privileged mode (the so-called "kernel mode", Eng. Kernel mode).

Анализ предшествующего уровня техники позволяет сделать вывод о неэффективности и в некоторых случаях о невозможности применения предшествующих технологий, недостатки которых решаются настоящим изобретением, а именно системой и способом реализации постоянно работающего гипервизора, периодически уступающего управление гипервизорам виртуальных машин.Analysis of the prior art allows us to conclude about the inefficiency and, in some cases, the impossibility of using previous technologies, the disadvantages of which are solved by the present invention, namely, a system and method for implementing a constantly working hypervisor that periodically cedes control of virtual machine hypervisors.

Раскрытие изобретенияDisclosure of invention

Технический результат настоящего изобретения заключается в обеспечении постоянного выполнения одного из гипервизоров в компьютерной системе.The technical result of the present invention is to ensure the continuous execution of one of the hypervisors in a computer system.

Постоянное выполнение одного из гипервизоров достигается путем контроля состояния компьютерной системы с целью отслеживания попытки запуска кода в режиме гипервизора со стороны других гипервизоров. При обнаружении подобного состояния компьютерной системы происходит сохранение состояния компьютерной системы и остановка выполнения кода гипервизора, который должен постоянно выполняться. После ожидания возможности начала выполнения кода в режиме гипервизора сохраненное состояние компьютерной системы будет загружено для возможности корректного восстановления выполнения кода в режиме гипервизора.The continuous execution of one of the hypervisors is achieved by monitoring the state of the computer system in order to track attempts to run the code in hypervisor mode by other hypervisors. When such a state of a computer system is detected, the state of the computer system is saved and the execution of the hypervisor code is stopped, which must be constantly executed. After waiting for the possibility of starting the code execution in the hypervisor mode, the saved state of the computer system will be loaded to enable the correct restoration of the code execution in the hypervisor mode.

В еще одном варианте реализации состояние компьютерной системы включает состояние процессора.In yet another embodiment, the state of the computer system includes the state of the processor.

Краткое описание чертежейBrief Description of the Drawings

Дополнительные цели, признаки и преимущества настоящего изобретения будут очевидными из прочтения последующего описания осуществления изобретения со ссылкой на прилагаемые чертежи, на которых:Additional objectives, features and advantages of the present invention will be apparent from reading the following description of an embodiment of the invention with reference to the accompanying drawings, in which:

Фиг. 1 иллюстрирует операционную систему, в которой работает больше одного гипервизора.FIG. 1 illustrates an operating system in which more than one hypervisor is running.

Фиг. 2 приводит систему обеспечения выполнения нескольких гипервизоров в системе.FIG. 2 provides a system for enforcing multiple hypervisors in a system.

Фиг. 3 иллюстрирует способ работы настоящего изобретения.FIG. 3 illustrates the method of operation of the present invention.

Фиг. 4 представляет пример компьютерной системы общего назначения, на которой может быть реализовано настоящее изобретение.FIG. 4 is an example of a general purpose computer system on which the present invention may be implemented.

Описание вариантов осуществления изобретенияDescription of Embodiments

Объекты и признаки настоящего изобретения, способы для достижения этих объектов и признаков станут очевидными посредством отсылки к примерным вариантам осуществления. Однако настоящее изобретение не ограничивается примерными вариантами осуществления, раскрытыми ниже, оно может воплощаться в различных видах. Сущность, приведенная в описании, является ничем иным, как конкретными деталями, необходимыми для помощи специалисту в области техники в исчерпывающем понимании изобретения, и настоящее изобретение определяется в объеме приложенной формулы.The objects and features of the present invention, methods for achieving these objects and features will become apparent by reference to exemplary embodiments. However, the present invention is not limited to the exemplary embodiments disclosed below, it can be embodied in various forms. The essence described in the description is nothing more than the specific details necessary to assist the specialist in the field of technology in a comprehensive understanding of the invention, and the present invention is defined in the scope of the attached claims.

Настоящее изобретение позволяет решить задачу постоянной работы одного из гипервизоров в компьютерной системе при наличии других гипервизоров при периодической работе других гипервизоров на этом же ядре процессора. На Фиг. 1 приведена операционная система (ОС) 100, в которой работает больше одного гипервизора, например гипервизор 110а, который требуется держать постоянно включенным, и остальные гипервизоры 110б (их может быть более одного). В качестве примера гипервизоров 110б можно привести диспетчеры (мониторы) виртуальных машин компаний VMWare, VirtualBox(Oracle) или Citrix (Xen). Примером гипервизора 110а может являться гипервизор, который требует постоянного выполнения критически важных виртуальных машин, или же гипервизор, который необходим для обеспечения выполнения ряда антивирусных операций. При стандартной работе гипервизоров 110а и 110б время на выполнение им будет выделять стандартный планировщик задач 120. Например, в ОС Windows планировщик работает с управлением по приоритетам, что означает первоочередное выполнение более приоритетных потоков. Следовательно, в рамках ОС 100, где используется планировщик 120, невозможно обеспечить постоянную работу гипервизора 110а даже с назначением ему более высокого приоритета, так как рано или поздно планировщик 120 выделит квант времени (англ. quantum) для выполнения кода гипервизоров 110б. Здесь и далее под выполнением одного из гипервизоров 110б прежде всего подразумевается выполнение виртуальных машин, которые работают под указанными гипервизорами.The present invention allows to solve the problem of continuous operation of one of the hypervisors in a computer system in the presence of other hypervisors during periodic operation of other hypervisors on the same processor core. In FIG. 1 shows an operating system (OS) 100 in which more than one hypervisor is operating, for example, a hypervisor 110a that needs to be kept constantly on, and other hypervisors 110b (there may be more than one). As an example of 110b hypervisors, we can cite dispatchers (monitors) of virtual machines from VMWare, VirtualBox (Oracle), or Citrix (Xen). An example of a hypervisor 110a may be a hypervisor, which requires constant execution of mission-critical virtual machines, or a hypervisor, which is necessary to ensure that a number of anti-virus operations are performed. In the standard work of hypervisors 110a and 110b, the standard task scheduler 120 will allocate time for execution to them. For example, in Windows, the scheduler works with priority management, which means the priority execution of higher priority threads. Therefore, within the framework of OS 100, where scheduler 120 is used, it is impossible to ensure the permanent operation of hypervisor 110a even with assigning it a higher priority, since sooner or later scheduler 120 will allocate a time quantum for the execution of hypervisor code 110b. Hereinafter, the execution of one of the hypervisors 110b primarily means the execution of virtual machines that operate under the specified hypervisors.

Стоит отметить, что гипервизор 110а может понадобиться при выполнении антивирусных операций по нескольким причинам. Во-первых, с помощью гипервизора можно обнаружить выполнение кода на уровне ядра ОС (например, руткиты). Во-вторых, гипервизор может потребоваться для обхода защиты ядра ОС, такой как PatchGuard.It is worth noting that the hypervisor 110a may be needed when performing antivirus operations for several reasons. Firstly, using a hypervisor, you can detect code execution at the kernel level of the OS (for example, rootkits). Secondly, a hypervisor may be required to bypass OS kernel protection, such as PatchGuard.

На Фиг. 2 приведена система обеспечения выполнения нескольких гипервизоров в системе. На приведенной схеме гипервизор 110а не управляется планировщиком 120 (в отличие от гипервизоров 110б), а управляется обработчиком 210, который отслеживает состояние системы 220. Когда гипервизор 110б пытается начать выполнять код в режиме гипервизора (ring -1), то происходит в первую очередь изменение режима работы процессора, так как в это время будут выполняться команды, которые отвечают за подготовку последующего запуска виртуальной машины. Например, полностью перегружается каталог страниц (англ. Page Directory), регистр CR3. Другим примером запуска виртуальной машины является команда vmrun (применительно к VMWare). Все эти параметры и команды выделены на Фиг. 2 как состояние системы 220. Обработчик 210 отслеживает изменение указанных параметров или выполнение команд (путем их перехвата) для остановки выполнения гипервизора 110а. В частном варианте реализации обработчик 210 выполнен в виде драйвера ОС 100.In FIG. Figure 2 shows the system for ensuring the execution of several hypervisors in the system. In the above diagram, the hypervisor 110a is not controlled by the scheduler 120 (unlike the hypervisors 110b), but rather is controlled by the handler 210, which monitors the state of the system 220. When the hypervisor 110b tries to start executing the code in the hypervisor mode (ring -1), the first change processor operating mode, since at this time commands will be executed that are responsible for preparing the subsequent launch of the virtual machine. For example, the directory of pages (English Page Directory), the CR3 register is completely overloaded. Another example of starting a virtual machine is the vmrun command (for VMWare). All these parameters and commands are highlighted in FIG. 2 as a state of the system 220. Handler 210 monitors changes in these parameters or the execution of commands (by intercepting them) to stop the execution of hypervisor 110a. In a particular embodiment, the processor 210 is implemented as an OS driver 100.

Рассмотрим более подробно процесс включения и остановки гипервизора 110а. Данный процесс содержит следующие этапы:Consider in more detail the process of turning on and stopping the hypervisor 110a. This process contains the following steps:

а) сохранение текущего состояния процессора (т.е. на тот момент выполнения кода одного из гипервизоров 110б в режиме гипервизора);a) preservation of the current state of the processor (i.e., at that time the code execution of one of the hypervisors 110b in the hypervisor mode);

б) выполнение кода гипервизора 110а;b) execution of the hypervisor code 110a;

в) определение попытки запуска кода гипервизора 110б;C) the definition of attempts to run the code of the hypervisor 110b;

г) восстановление фактического состояния процессора с этапа а) для корректной отработки инструкции включения виртуализации гипервизором 110б;d) restoration of the actual state of the processor from step a) for the correct execution of the instructions for enabling virtualization by the hypervisor 110b;

д) выход из режима гипервизора и передача управления на последнюю инструкцию при выполнении кода гипервизора 110а.e) exiting the hypervisor mode and transferring control to the last instruction when executing the hypervisor code 110a.

Таким образом, следующая инструкция потока гипервизора 110а уже выполняется вне режима гипервизора, так как далее выполнение уже идет в рамках другого кольца привилегий (как правило, это будет ring 0).Thus, the next hypervisor 110a thread instruction is already executing outside of the hypervisor mode, since further execution is already within the framework of another privilege ring (usually it will be ring 0).

Фиг. 3 иллюстрирует способ работы настоящего изобретения. На этапе 310 происходит отслеживание состояния системы 220 (например, с помощью обработчика 210). Если на этапе 320 определяется, что состояние системы изменилось (например, перегружен каталог страниц или выполнена команда vmrun), то на этапе 330 происходит остановка выполнения гипервизора 110а. Также стоит отметить, что на этапе 320 может происходить дополнительная проверка, например из какого режима была вызвана перегрузка регистра CR3. Если перегрузка регистра была вызвана из режима ядра, то это лишь переключение контекста, а если из режима пользователя, то можно дополнительно проверить что это, например, - вызов из процесса виртуальной машины. Подобная проверка позволяет минимизировать количество «ложных срабатываний» при остановке гипервизора 110а, чтобы не останавливать его без крайней необходимости. На этапе 340 происходит ожидание возможности запуска гипервизора 110а. Ожидание может включать следующие условия:FIG. 3 illustrates the method of operation of the present invention. At 310, the state of the system 220 is monitored (for example, using a handler 210). If at step 320 it is determined that the state of the system has changed (for example, the page directory has been overloaded or the vmrun command has been executed), then at step 330 the execution of the hypervisor 110a is stopped. It is also worth noting that at step 320, an additional check may occur, for example, from which mode CR3 register overload was called. If the register overload was called from kernel mode, then this is only a context switch, and if from user mode, you can additionally check that this, for example, is a call from a virtual machine process. Such a check allows minimizing the number of “false positives” when the hypervisor 110a is stopped, so as not to stop it unless absolutely necessary. At 340, it waits for the hypervisor 110a to start. The wait may include the following conditions:

- закончился квант времени на исполнение, который выделил планировщик 120 для выполнения одного из гипервизоров 110б;- the run-time quantum ended, which the scheduler 120 allocated to execute one of the hypervisors 110b;

- произошло изменение состояния системы 120;- there was a change in the state of the system 120;

- обработчик 210 отслеживает выполнение гипервизора 110б и получает нотификацию об окончании его работы (например, через официальный Application Programmable Interface или API, предоставленный разработчиком гипервизора).- the processor 210 monitors the execution of the hypervisor 110b and receives a notification of the end of its work (for example, through the official Application Programmable Interface or API provided by the developer of the hypervisor).

Если на этапе 350 было определено, что один из гипервизоров 110б закончил выполнение (путем проверки вышеуказанных условий), то на этапе 360 происходит его повторный запуск.If at step 350 it was determined that one of the hypervisors 110b completed execution (by checking the above conditions), then at step 360 it is restarted.

В одном из вариантов реализации повторный запуск реализуется через таймерную процедуру (например, в ОС Windows это можно сделать через вызов KeSetTimer). Например, по истечению заданного времени (когда закончился квант времени на выполнение) планировщик 120 определяет, чей код должен быть выполнен (например, старт гипервизора 110а). Таймер может быть переставлен для того, чтобы можно выполнить повторный запуск в следующий раз, когда один из гипервизоров 110б закончит свою работу и гипервизор 110а может быть запущен.In one embodiment, the restart is implemented through a timer procedure (for example, in Windows, this can be done through a call to KeSetTimer). For example, after a predetermined time elapses (when the run time quantum has ended), the scheduler 120 determines whose code should be executed (for example, the start of the hypervisor 110a). The timer may be reset so that it can be restarted the next time that one of the hypervisors 110b is finished and the hypervisor 110a can be started.

Еще один пример того, когда следует останавливать гипервизор 110а, касается изменения состояния системы 220, связанного с питанием, например при входе в режим гибернации (англ. hibernate). С этой целью можно отслеживать функции, связанные с питанием (Power Management event callback функции в ОС Windows) или системные переменные (SYSTEMPOWERSTATE в ОС Windows).Another example of when to stop the hypervisor 110a relates to a change in the state of the power-related system 220, for example, when entering hibernation mode. To this end, you can monitor power-related functions (Power Management event callback functions in Windows) or system variables (SYSTEMPOWERSTATE in Windows).

Другим примером необходимости останавливать гипервизор 110а является запуск кода, который также приводит к сильному изменению состояния процессора, например эмуляторов (такие как QEMU и другие аналогичные, используемые также в антивирусных приложениях). Если же эмулятор и гипервизор 110а входят в состав антивирусного продукта, то после работы эмулятора последний может автоматически запускать гипервизор 110а.Another example of the need to stop the hypervisor 110a is the launch of code, which also leads to a strong change in the state of the processor, for example emulators (such as QEMU and other similar ones also used in antivirus applications). If the emulator and hypervisor 110a are part of an anti-virus product, then after the emulator is running, the latter can automatically start the hypervisor 110a.

Фиг. 4 представляет пример компьютерной системы общего назначения, персональный компьютер или сервер 20, содержащий центральный процессор 21, системную память 22 и системную шину 23, которая содержит разные системные компоненты, в том числе память, связанную с центральным процессором 21. Системная шина 23 реализована, как любая известная из уровня техники шинная структура, содержащая в свою очередь память шины или контроллер памяти шины, периферийную шину и локальную шину, которая способна взаимодействовать с любой другой шинной архитектурой. Системная память содержит постоянное запоминающее устройство (ПЗУ) 24, память с произвольным доступом (ОЗУ) 25. Основная система ввода/вывода (BIOS) 26 содержит основные процедуры, которые обеспечивают передачу информации между элементами персонального компьютера 20, например, в момент загрузки операционной системы с использованием ПЗУ 24.FIG. 4 is an example of a general purpose computer system, a personal computer or server 20 comprising a central processor 21, a system memory 22, and a system bus 23 that contains various system components, including memory associated with the central processor 21. The system bus 23 is implemented as any prior art bus structure comprising, in turn, a bus memory or a bus memory controller, a peripheral bus and a local bus that is capable of interacting with any other bus architecture. The system memory contains read-only memory (ROM) 24, random access memory (RAM) 25. The main input / output system (BIOS) 26 contains the basic procedures that ensure the transfer of information between the elements of the personal computer 20, for example, at the time of loading the operating system using ROM 24.

Персональный компьютер 20 в свою очередь содержит жесткий диск 27 для чтения и записи данных, привод магнитных дисков 28 для чтения и записи на сменные магнитные диски 29 и оптический привод 30 для чтения и записи на сменные оптические диски 31, такие как CD-ROM, DVD-ROM и иные оптические носители информации. Жесткий диск 27, привод магнитных дисков 28, оптический привод 30 соединены с системной шиной 23 через интерфейс жесткого диска 32, интерфейс магнитных дисков 33 и интерфейс оптического привода 34 соответственно. Приводы и соответствующие компьютерные носители информации представляют собой энергонезависимые средства хранения компьютерных инструкций, структур данных, программных модулей и прочих данных персонального компьютера 20.The personal computer 20 in turn contains a hard disk 27 for reading and writing data, a magnetic disk drive 28 for reading and writing to removable magnetic disks 29, and an optical drive 30 for reading and writing to removable optical disks 31, such as a CD-ROM, DVD -ROM and other optical information carriers. The hard disk 27, the magnetic disk drive 28, the optical drive 30 are connected to the system bus 23 through the interface of the hard disk 32, the interface of the magnetic disks 33 and the interface of the optical drive 34, respectively. Drives and associated computer storage media are non-volatile means of storing computer instructions, data structures, software modules and other data of a personal computer 20.

Настоящее описание раскрывает реализацию системы, которая использует жесткий диск 27, сменный магнитный диск 29 и сменный оптический диск 31, но следует понимать, что возможно применение иных типов компьютерных носителей информации 56, которые способны хранить данные в доступной для чтения компьютером форме (твердотельные накопители, флеш карты памяти, цифровые диски, память с произвольным доступом (ОЗУ) и т.п.), которые подключены к системной шине 23 через контроллер 55.The present description discloses an implementation of a system that uses a hard disk 27, a removable magnetic disk 29, and a removable optical disk 31, but it should be understood that other types of computer storage media 56 that can store data in a form readable by a computer (solid state drives, flash memory cards, digital disks, random access memory (RAM), etc.) that are connected to the system bus 23 through the controller 55.

Компьютер 20 имеет файловую систему 36, где хранится записанная операционная система 35, а также дополнительные программные приложения 37, другие программные модули 38 и данные программ 39. Пользователь имеет возможность вводить команды и информацию в персональный компьютер 20 посредством устройств ввода (клавиатуры 40, манипулятора «мышь» 42). Могут использоваться другие устройства ввода (не отображены): микрофон, джойстик, игровая консоль, сканнер и т.п. Подобные устройства ввода по своему обычаю подключают к компьютерной системе 20 через последовательный порт 46, который в свою очередь подсоединен к системной шине, но могут быть подключены иным способом, например, при помощи параллельного порта, игрового порта или универсальной последовательной шины (USB). Монитор 47 или иной тип устройства отображения также подсоединен к системной шине 23 через интерфейс, такой как видеоадаптер 48. В дополнение к монитору 47 персональный компьютер может быть оснащен другими периферийными устройствами вывода (не отображены), например колонками, принтером и т.п.Computer 20 has a file system 36 where the recorded operating system 35 is stored, as well as additional software applications 37, other program modules 38, and program data 39. The user is able to enter commands and information into personal computer 20 via input devices (keyboard 40, keypad “ the mouse "42). Other input devices (not displayed) can be used: microphone, joystick, game console, scanner, etc. Such input devices are, as usual, connected to the computer system 20 via a serial port 46, which in turn is connected to the system bus, but can be connected in another way, for example, using a parallel port, a game port, or a universal serial bus (USB). A monitor 47 or other type of display device is also connected to the system bus 23 via an interface such as a video adapter 48. In addition to the monitor 47, the personal computer may be equipped with other peripheral output devices (not displayed), such as speakers, a printer, and the like.

Персональный компьютер 20 способен работать в сетевом окружении, при этом используется сетевое соединение с другим или несколькими удаленными компьютерами 49. Удаленный компьютер (или компьютеры) 49 являются такими же персональными компьютерами или серверами, которые имеют большинство или все упомянутые элементы, отмеченные ранее при описании существа персонального компьютера 20, представленного на Фиг. 4. В вычислительной сети могут присутствовать также и другие устройства, например маршрутизаторы, сетевые станции, пиринговые устройства или иные сетевые узлы.The personal computer 20 is capable of operating in a networked environment, using a network connection with another or more remote computers 49. The remote computer (or computers) 49 are the same personal computers or servers that have most or all of the elements mentioned earlier in the description of the creature the personal computer 20 of FIG. 4. Other devices, such as routers, network stations, peer-to-peer devices, or other network nodes may also be present on the computer network.

Сетевые соединения могут образовывать локальную вычислительную сеть (LAN) 50 и глобальную вычислительную сеть (WAN). Такие сети применяются в корпоративных компьютерных сетях, внутренних сетях компаний и, как правило, имеют доступ к сети Интернет. В LAN- или WAN-сетях персональный компьютер 20 подключен к локальной сети 50 через сетевой адаптер или сетевой интерфейс 51. При использовании сетей персональный компьютер 20 может использовать модем 54 или иные средства обеспечения связи с глобальной вычислительной сетью, такой как Интернет. Модем 54, который является внутренним или внешним устройством, подключен к системной шине 23 посредством последовательного порта 46. Следует уточнить, что сетевые соединения являются лишь примерными и не обязаны отображать точную конфигурацию сети, т.е. в действительности существуют иные способы установления соединения техническими средствами связи одного компьютера с другим.Network connections can form a local area network (LAN) 50 and a wide area network (WAN). Such networks are used in corporate computer networks, internal networks of companies and, as a rule, have access to the Internet. In LAN or WAN networks, the personal computer 20 is connected to the local area network 50 via a network adapter or network interface 51. When using the networks, the personal computer 20 may use a modem 54 or other means of providing communication with a global computer network such as the Internet. The modem 54, which is an internal or external device, is connected to the system bus 23 via the serial port 46. It should be clarified that the network connections are only exemplary and are not required to display the exact network configuration, i.e. in reality, there are other ways to establish a technical connection between one computer and another.

В заключение следует отметить, что приведенные в описании сведения являются примерами, которые не ограничивают объем настоящего изобретения, определенного формулой.In conclusion, it should be noted that the information provided in the description are examples that do not limit the scope of the present invention defined by the claims.

Claims (2)

1. Способ организации выполнения более одного гипервизора в одной и той же компьютерной системе, при этом один из гипервизоров должен постоянно выполняться, сам способ содержит этапы:
а) выполняют код в режиме гипервизора со стороны того гипервизора, который должен постоянно выполняться, пока остальные гипервизоры не требуют выполнения кода в режиме гипервизора;
б) отслеживают состояние компьютерной системы, при этом состояние компьютерной системы связано с попыткой запуска выполнения кода в режиме гипервизора со стороны других гипервизоров;
в) останавливают выполнение кода в режиме гипервизора со стороны того гипервизора, который должен постоянно выполняться, при изменении состояния компьютерной системы;
г) сохраняют состояние компьютерной системы при остановке выполнения кода в режиме гипервизора со стороны того гипервизора, который должен постоянно выполняться;
д) загружают состояние компьютерной системы, необходимое для выполнения кода в режиме гипервизора со стороны того гипервизора, который произвел попытку запуска кода в режиме гипервизора;
е) выполняют код в режиме гипервизора со стороны того гипервизора, который произвел попытку запуска кода в режиме гипервизора;
ж) отслеживают состояние компьютерной системы для ожидания возможности запуска кода в режиме гипервизора со стороны того гипервизора, который должен постоянно выполняться;
з) загружают состояние компьютерной системы, сохраненное на этапе г);
и) запускают код в режиме гипервизора со стороны того гипервизора, который должен постоянно выполняться, при появлении возможности на этапе ж).
1. The method of organizing the execution of more than one hypervisor in the same computer system, while one of the hypervisors must be constantly executed, the method itself contains the steps:
a) execute the code in hypervisor mode on the part of that hypervisor, which must be constantly executed, while other hypervisors do not require code execution in hypervisor mode;
b) monitor the state of the computer system, while the state of the computer system is associated with an attempt to start code execution in hypervisor mode from other hypervisors;
c) stop the execution of the code in the hypervisor mode from that hypervisor, which must be constantly executed, when the state of the computer system changes;
d) maintain the state of the computer system when the code is stopped in the hypervisor mode from that hypervisor, which must be constantly executed;
e) load the state of the computer system necessary to execute the code in hypervisor mode from the side of the hypervisor that attempted to run the code in hypervisor mode;
f) execute the code in hypervisor mode from the side of the hypervisor that attempted to run the code in hypervisor mode;
g) monitor the state of the computer system to wait for the possibility of running the code in hypervisor mode from that hypervisor, which must be constantly executed;
h) load the state of the computer system stored in step g);
i) run the code in hypervisor mode from that hypervisor, which should be constantly executed, when the opportunity arises in step g).
2. Способ по п. 1, в котором состояние компьютерной системы включает состояние процессора. 2. The method of claim 1, wherein the state of the computer system includes the state of the processor.
RU2014151463/08A 2014-12-19 2014-12-19 Method of providing collaborative operation of several hypervisors in computer system RU2589853C1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
RU2014151463/08A RU2589853C1 (en) 2014-12-19 2014-12-19 Method of providing collaborative operation of several hypervisors in computer system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU2014151463/08A RU2589853C1 (en) 2014-12-19 2014-12-19 Method of providing collaborative operation of several hypervisors in computer system

Publications (1)

Publication Number Publication Date
RU2589853C1 true RU2589853C1 (en) 2016-07-10

Family

ID=56371359

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2014151463/08A RU2589853C1 (en) 2014-12-19 2014-12-19 Method of providing collaborative operation of several hypervisors in computer system

Country Status (1)

Country Link
RU (1) RU2589853C1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6625751B1 (en) * 1999-08-11 2003-09-23 Sun Microsystems, Inc. Software fault tolerant computer system
RU2445686C2 (en) * 2010-01-21 2012-03-20 Игорь Вячеславович Стручков Method of software installation, set-up, administration and back-up
US8539484B1 (en) * 2010-05-26 2013-09-17 HotLink Corporation Multi-platform computer system management for virtualized environments

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6625751B1 (en) * 1999-08-11 2003-09-23 Sun Microsystems, Inc. Software fault tolerant computer system
RU2445686C2 (en) * 2010-01-21 2012-03-20 Игорь Вячеславович Стручков Method of software installation, set-up, administration and back-up
US8539484B1 (en) * 2010-05-26 2013-09-17 HotLink Corporation Multi-platform computer system management for virtualized environments

Similar Documents

Publication Publication Date Title
US9547346B2 (en) Context agent injection using virtual machine introspection
US9317314B2 (en) Techniques for migrating a virtual machine using shared storage
US9665378B2 (en) Intelligent boot device selection and recovery
US8719560B2 (en) Virtual machine monitor bridge to bare-metal booting
JP5106036B2 (en) Method, computer system and computer program for providing policy-based operating system services within a hypervisor on a computer system
US9594582B2 (en) Detection and management of dynamic migration of virtual environments
US9864626B2 (en) Coordinating joint operation of multiple hypervisors in a computer system
US8904386B2 (en) Running a plurality of instances of an application
US10474484B2 (en) Offline management of virtualization software installed on a host computer
US20100077128A1 (en) Memory management in a virtual machine based on page fault performance workload criteria
US20120047357A1 (en) Methods and systems for enabling control to a hypervisor in a cloud computing environment
US7539986B2 (en) Method for guest operating system integrity validation
JP6111181B2 (en) Computer control method and computer
US9703651B2 (en) Providing availability of an agent virtual computing instance during a storage failure
US20210342173A1 (en) Dynamic power management states for virtual machine migration
US9864708B2 (en) Safely discovering secure monitors and hypervisor implementations in systems operable at multiple hierarchical privilege levels
US9535772B2 (en) Creating a communication channel between different privilege levels using wait-for-event instruction in systems operable at multiple levels hierarchical privilege levels
Im et al. On-Demand Virtualization for Post-Copy OS Migration in Bare-Metal Cloud
RU2589853C1 (en) Method of providing collaborative operation of several hypervisors in computer system
Im et al. On-demand virtualization for live migration in bare metal cloud
US9772869B2 (en) System and method for performing efficient failover and virtual machine (VM) migration in virtual desktop infrastructure (VDI)
US9619277B2 (en) Computer with plurality of processors sharing process queue, and process dispatch processing method
Panneerselvam et al. Dynamic processors demand dynamic operating systems
US20240241728A1 (en) Host and dpu coordination for dpu maintenance events
US20230418509A1 (en) Switching memory consistency models in accordance with execution privilege level