Код документа: RU2003123112A
1. Способ, содержащий этапы, на которых
обнаруживают, что гостевая операционная система пытается обратиться к области, занятой первой частью монитора виртуальных машин (МВМ) в пределах первого адресного пространства, и
перемещают первую часть МВМ в пределах первого адресного пространства для того, чтобы разрешить гостевой операционной системе доступ к области, ранее занятой первой частью МВМ.
2. Способ по п.1, в котором первая часть МВМ включает в себя набор кода и структур данных МВМ, которые по требованиям архитектуры должны постоянно находиться в первом адресном пространстве.
3. Способ по п.1, в котором первая часть МВМ включает в себя набор обработчиков системных прерываний и таблицу дескрипторов прерываний (ТДП).
4. Способ по п.1, дополнительно содержащий этапы, на которых
делят МВМ на первую часть и вторую часть,
создают первое адресное пространство, связанное с гостевой операционной системой,
создают второе адресное пространство, связанное с МВМ,
размещают вторую часть МВМ во втором адресном пространстве, связанном с МВМ, и
отображают первую часть МВМ в первое адресное пространство и второе адресное пространство.
5. Способ по п.1, дополнительно содержащий этап, на котором
получают контроль над событием, инициированным гостевой операционной системой, когда событие может потенциально вызвать конфликт по адресному пространству между гостевой операционной системой и МВМ.
6. Способ по п.5, в котором получение контроля дополнительно содержит этапы, на которых
устанавливают права доступа к разделу, занятому первой частью МВМ, на более привилегированный уровень, чем уровень привилегий, связанный с гостевой операционной системой, и
принимают системное прерывание, вызванное попыткой гостевой операционной системы обратиться к аппаратному ресурсу, имеющему более высокий уровень привилегий, чем уровень привилегий, связанный с гостевой операционной системой.
7. Способ по п.6, дополнительно содержащий этапы, на которых
определяют, что системное прерывание может быть обработано первой частью МВМ,
выполняют код, связанный с системным прерыванием, и
возвращают контроль над событием гостевой операционной системе.
8. Способ по п.6, дополнительно содержащий этапы, на которых
определяют, что системное прерывание должно быть обработано второй частью МВМ,
доставляют системное прерывание ко второй части МВМ,
передают контроль над событием гостевой операционной системе после того, как код, связанный с системным прерыванием, был выполнен второй частью МВМ.
9. Способ по п.1, в котором перемещение первой части МВМ дополнительно содержит этапы, на которых
обнаруживают неиспользуемую область в пределах первого адресного пространства, и
переотображают первую часть МВМ в эту неиспользуемую область.
10. Способ по п.1, в котором перемещение первой части МВМ дополнительно содержит этапы, на которых
определяют, что неиспользуемой области не существует в пределах первого адресного пространства,
выбирают случайную область в пределах первого адресного пространства,
копируют содержимое памяти, расположенное в этой случайной области, во второе адресное пространство, и
переотображают первую часть МВМ в данную случайную область.
11. Способ по п.10, дополнительно содержащий этапы, на которых
получают контроль над событием, инициированным гостевой операционной системой, причем данное событие соответствует попытке гостевой операционной системы обратиться к содержимому памяти, ранее расположенному в случайной области, и
осуществляют доступ к скопированному содержимому памяти во втором адресном пространстве.
12. Способ по п.11, дополнительно содержащий этап, на котором периодически перемещают первую часть МВМ в случайные области в пределах первого адресного пространства до тех пор, пока не обнаружат область, к которой редко обращаются.
13. Устройство, содержащее
первое адресное пространство, связанное с гостевой операционной системой,
второе адресное пространство, связанное с монитором виртуальных машин (МВМ), и
ядро виртуальной машины, предназначенное для обнаружения того, что гостевая операционная система пытается обратиться к области, занятой первой частью МВМ в пределах первого адресного пространства, и для перемещения первой части МВМ в пределах первого адресного пространства для того, чтобы разрешить гостевой операционной системе доступ к области, ранее занятой первой частью МВМ.
14. Устройство по п.13, в котором первая часть МВМ включает в себя набор кода и структур данных МВМ, которые по требованиям архитектуры должны постоянно находиться в первом адресном пространстве.
15. Устройство по п.13, в котором первая часть МВМ включает в себя набор обработчиков системных прерываний и таблицу дескрипторов прерываний (ТДП).
16. Устройство по п.13, в котором ядро виртуальной машины должно делить МВМ на первую часть и вторую часть, размещать вторую часть МВМ во втором адресном пространстве, связанном с МВМ, и отображать первую часть МВМ в первое адресное пространство и второе адресное пространство.
17. Устройство по п.13, в котором ядро виртуальной машины должно получать контроль над событием, инициированным гостевой операционной системой, когда событие может потенциально вызвать конфликт по адресному пространству между гостевой операционной системой и МВМ.
18. Устройство по п.13, в котором ядро виртуальной машины должно получать контроль посредством установления прав доступа к разделу, занятому первой частью МВМ, на более привилегированный уровень, чем уровень привилегий, связанный с гостевой операционной системой, и посредством приема системного прерывания, вызванного попыткой гостевой операционной системы обратиться к аппаратному ресурсу, имеющему более высокий уровень привилегий, чем уровень привилегий, связанный с гостевой операционной системой.
19. Устройство по п.18, в котором ядро виртуальной машины дополнительно должно определять, что системное прерывание может быть обработано первой частью МВМ, выполнять код, связанный с данным системным прерыванием, и возвращать контроль над событием гостевой операционной системе.
20. Устройство по п.18, в котором ядро виртуальной машины дополнительно должно определять, что системное прерывание должно обрабатываться с помощью второй части МВМ, доставлять системное прерывание второй части МВМ и передавать контроль над событием гостевой операционной системе после того, как код, связанный с системным прерыванием, был выполнен второй частью МВМ.
21. Устройство по п.13, в котором ядро виртуальной машины должно перемещать первую часть МВМ посредством нахождения неиспользуемой области в пределах первого адресного пространства и переотображения первой части МВМ в эту неиспользуемую область.
22. Устройство по п.13, в котором ядро виртуальной машины должно перемещать первую часть МВМ посредством определения того, что неиспользуемой области не существует в пределах первого адресного пространства, выбора случайной области в пределах первого адресного пространства, копирования содержимого памяти, расположенного в данной случайной области, во второе адресное пространство, и переотображения первой части МВМ в данную случайную область.
23. Устройство по п.13, в котором ядро виртуальной машины должно получать контроль над событием, инициированным гостевой операционной системой, причем данное событие соответствует попытке гостевой операционной системы обратиться к содержимому памяти, ранее расположенной в случайной области, и должно обращаться к скопированному содержимому памяти во втором адресном пространстве.
24. Устройство по п.13, в котором ядро виртуальной машины должно периодически перемещать первую часть МВМ в случайные области в пределах первого адресного пространства до тех пор, пока оно не обнаружит область, к которой редко обращаются.
25. Система, содержащая
память, которая включает в себя первое адресное пространство, связанное с гостевой операционной системой, и второе адресное пространство, связанное с монитором виртуальных машин (МВМ), и
процессор, соединенный с памятью, предназначенный для обнаружения того, что гостевая операционная система пытается обратиться к области, занятой первой частью МВМ в пределах первого адресного пространства, и для перемещения первой части МВМ в пределах первого адресного пространства для того, чтобы разрешить гостевой операционной системе доступ к области, ранее занятой первой частью МВМ.
26. Система по п.25, в которой первая часть МВМ включает в себя набор кода и структур данных МВМ, которые по требованиям архитектуры должны постоянно находиться в первом адресном пространстве.
27. Система по п.25, в которой первая часть МВМ включает в себя набор обработчиков системных прерываний и таблицу дескрипторов прерываний (ТДП).
28. Считываемый компьютером носитель, который предоставляет команды, которые при выполнении в процессоре заставляют указанный процессор выполнять операции, содержащие этапы, на которых
обнаруживают, что гостевая операционная система пытается обратиться к области, занятой первой частью монитора виртуальных машин (МВМ) в пределах первого адресного пространства, и
перемещают первую часть МВМ в пределах первого адресного пространства для того, чтобы разрешить гостевой операционной системе доступ к области, ранее занятой первой частью МВМ.
29. Считываемый компьютером носитель по п.28, содержащий дополнительные команды, заставляющие процессор выполнять операции, содержащие этапы, на которых
обнаруживают неиспользуемую область в пределах первого адресного пространства, и
переотображают первую часть МВМ в эту неиспользуемую область.
30. Считываемый компьютером носитель по п.28, содержащий дополнительные команды, заставляющие процессор выполнять операции, содержащие этапы, на которых
определяют, что в пределах первого адресного пространства не существует неиспользуемой области,
выбирают случайную область в пределах первого адресного пространства,
копируют содержимое памяти, расположенное в данной случайной области, во второе адресное пространство, и
переотображают первую часть МВМ в эту случайную область.