×
12.01.2017
217.015.5c41

Результат интеллектуальной деятельности: СПОСОБ ОБЕСПЕЧЕНИЯ СОВМЕСТНОЙ РАБОТЫ НЕСКОЛЬКИХ ГИПЕРВИЗОРОВ В КОМПЬЮТЕРНОЙ СИСТЕМЕ

Вид РИД

Изобретение

№ охранного документа
0002589853
Дата охранного документа
10.07.2016
Аннотация: Изобретение относится к виртуализации. Технический результат заключается в обеспечении постоянного выполнения одного из гипервизоров в компьютерной системе. Способ организации выполнения более одного гипервизора в одной и той же компьютерной системе, при этом один из гипервизоров должен постоянно выполняться, в котором выполняют код в режиме гипервизора, который должен постоянно выполняться, пока остальные гипервизоры не требуют выполнения кода в режиме гипервизора; отслеживают попытку запуска кода в режиме гипервизора со стороны других гипервизоров; останавливают выполнение кода в режиме гипервизора, который должен постоянно выполняться; сохраняют состояние компьютерной системы при остановке выполнения кода в режиме гипервизора, который должен постоянно выполняться; загружают состояние компьютерной системы для выполнения кода в режиме гипервизора, который произвел попытку запуска; выполняют код в режиме гипервизора, который произвел попытку запуска; отслеживают состояние компьютерной системы для ожидания возможности запуска кода в режиме гипервизора, который должен постоянно выполняться; загружают ранее сохраненное состояние компьютерной системы; запускают код в режиме гипервизора, который должен постоянно выполняться. 1 з.п. ф-лы, 4 ил.

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

Изобретение относится к технологиям виртуализации, а более конкретно к системам и способам обеспечения совместной работы нескольких гипервизоров в компьютерной системе.

Уровень техники

В настоящее время технология виртуализации все более активно используется в самых различных сферах: как в рамках крупных дата-центров, так и на пользовательских компьютерах. Виртуализация предоставляет возможность запускать несколько операционных систем на одной компьютерной системе, что позволяет наиболее полно использовать имеющиеся аппаратные ресурсы. Например, пользователь может использовать несколько виртуальных машин для одновременного исполнения ряда приложений в различных операционных системах (ОС). Однако наиболее востребованной технология виртуализации стала при использовании в рамках крупных серверов, например при оказании услуг веб-хостинга.

Для обеспечения работы виртуальных машин требуется использовать гипервизор, который обеспечивает возможность выполнения виртуальных машин, выступая в роли менеджера или диспетчера виртуальных машин (англ. Virtual Machine Manager, VMM). В том случае, если в компьютерной системе присутствуют несколько гипервизоров, то требуется обеспечить их корректную работу. Совместная работа гипервизоров виртуальных машин обеспечивается их реализацией: при получении управления режим процессора изменяется временно и возврат в исходный режим осуществляет диспетчер виртуальных машин по своему усмотрению. Например, если в операционной системе Windows запущены несколько виртуальных машин различных производителей, таких как VMWare или Citrix (Xen), то планировщик будет выделять время для исполнения гипервизоров как для обычных потоков в операционной системе (с учетом приоритета потоков). Сам код гипервизора корректно завершает свое выполнение по истечению определенного кванта времени (однако стоит отметить, что данный квант времени не совпадает с тем, что был выделен планировщиком ОС). В многоядерном процессоре на каждом ядре будет работать отдельная копия гипервизора, но с разным контекстом.

В ряде публикаций также раскрыт принцип управления несколькими гипервизорами в системе. Например, в публикации US 20140149980 решается задача диагностики кластера гипервизоров (когда на одном компьютере может работать несколько гипервизоров), в рамках которой может быть определен гипервизор, работа которого приводит к деградации производительности. В публикации US 20110023030 описывается возможность передачи управления от одного гипервизора к другому путем "горячей" миграции аппаратных ресурсов и страниц памяти для работающих виртуальных машин (таким образом, миграция происходит на лету).

Однако указанные публикации не решают задачу реализации постоянно работающего гипервизора, периодически уступающего управление гипервизорам виртуальных машин. Подобная необходимость может быть оправдана в том случае, если гипервизор обеспечивает работу критически важных виртуальных машин или же предназначен для постоянного отслеживания выполнения кода в привилегированном режиме (так называемый "режим ядра", англ. kernel mode).

Анализ предшествующего уровня техники позволяет сделать вывод о неэффективности и в некоторых случаях о невозможности применения предшествующих технологий, недостатки которых решаются настоящим изобретением, а именно системой и способом реализации постоянно работающего гипервизора, периодически уступающего управление гипервизорам виртуальных машин.

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

Технический результат настоящего изобретения заключается в обеспечении постоянного выполнения одного из гипервизоров в компьютерной системе.

Постоянное выполнение одного из гипервизоров достигается путем контроля состояния компьютерной системы с целью отслеживания попытки запуска кода в режиме гипервизора со стороны других гипервизоров. При обнаружении подобного состояния компьютерной системы происходит сохранение состояния компьютерной системы и остановка выполнения кода гипервизора, который должен постоянно выполняться. После ожидания возможности начала выполнения кода в режиме гипервизора сохраненное состояние компьютерной системы будет загружено для возможности корректного восстановления выполнения кода в режиме гипервизора.

В еще одном варианте реализации состояние компьютерной системы включает состояние процессора.

Краткое описание чертежей

Дополнительные цели, признаки и преимущества настоящего изобретения будут очевидными из прочтения последующего описания осуществления изобретения со ссылкой на прилагаемые чертежи, на которых:

Фиг. 1 иллюстрирует операционную систему, в которой работает больше одного гипервизора.

Фиг. 2 приводит систему обеспечения выполнения нескольких гипервизоров в системе.

Фиг. 3 иллюстрирует способ работы настоящего изобретения.

Фиг. 4 представляет пример компьютерной системы общего назначения, на которой может быть реализовано настоящее изобретение.

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

Объекты и признаки настоящего изобретения, способы для достижения этих объектов и признаков станут очевидными посредством отсылки к примерным вариантам осуществления. Однако настоящее изобретение не ограничивается примерными вариантами осуществления, раскрытыми ниже, оно может воплощаться в различных видах. Сущность, приведенная в описании, является ничем иным, как конкретными деталями, необходимыми для помощи специалисту в области техники в исчерпывающем понимании изобретения, и настоящее изобретение определяется в объеме приложенной формулы.

Настоящее изобретение позволяет решить задачу постоянной работы одного из гипервизоров в компьютерной системе при наличии других гипервизоров при периодической работе других гипервизоров на этом же ядре процессора. На Фиг. 1 приведена операционная система (ОС) 100, в которой работает больше одного гипервизора, например гипервизор 110а, который требуется держать постоянно включенным, и остальные гипервизоры 110б (их может быть более одного). В качестве примера гипервизоров 110б можно привести диспетчеры (мониторы) виртуальных машин компаний VMWare, VirtualBox(Oracle) или Citrix (Xen). Примером гипервизора 110а может являться гипервизор, который требует постоянного выполнения критически важных виртуальных машин, или же гипервизор, который необходим для обеспечения выполнения ряда антивирусных операций. При стандартной работе гипервизоров 110а и 110б время на выполнение им будет выделять стандартный планировщик задач 120. Например, в ОС Windows планировщик работает с управлением по приоритетам, что означает первоочередное выполнение более приоритетных потоков. Следовательно, в рамках ОС 100, где используется планировщик 120, невозможно обеспечить постоянную работу гипервизора 110а даже с назначением ему более высокого приоритета, так как рано или поздно планировщик 120 выделит квант времени (англ. quantum) для выполнения кода гипервизоров 110б. Здесь и далее под выполнением одного из гипервизоров 110б прежде всего подразумевается выполнение виртуальных машин, которые работают под указанными гипервизорами.

Стоит отметить, что гипервизор 110а может понадобиться при выполнении антивирусных операций по нескольким причинам. Во-первых, с помощью гипервизора можно обнаружить выполнение кода на уровне ядра ОС (например, руткиты). Во-вторых, гипервизор может потребоваться для обхода защиты ядра ОС, такой как PatchGuard.

На Фиг. 2 приведена система обеспечения выполнения нескольких гипервизоров в системе. На приведенной схеме гипервизор 110а не управляется планировщиком 120 (в отличие от гипервизоров 110б), а управляется обработчиком 210, который отслеживает состояние системы 220. Когда гипервизор 110б пытается начать выполнять код в режиме гипервизора (ring -1), то происходит в первую очередь изменение режима работы процессора, так как в это время будут выполняться команды, которые отвечают за подготовку последующего запуска виртуальной машины. Например, полностью перегружается каталог страниц (англ. Page Directory), регистр CR3. Другим примером запуска виртуальной машины является команда vmrun (применительно к VMWare). Все эти параметры и команды выделены на Фиг. 2 как состояние системы 220. Обработчик 210 отслеживает изменение указанных параметров или выполнение команд (путем их перехвата) для остановки выполнения гипервизора 110а. В частном варианте реализации обработчик 210 выполнен в виде драйвера ОС 100.

Рассмотрим более подробно процесс включения и остановки гипервизора 110а. Данный процесс содержит следующие этапы:

а) сохранение текущего состояния процессора (т.е. на тот момент выполнения кода одного из гипервизоров 110б в режиме гипервизора);

б) выполнение кода гипервизора 110а;

в) определение попытки запуска кода гипервизора 110б;

г) восстановление фактического состояния процессора с этапа а) для корректной отработки инструкции включения виртуализации гипервизором 110б;

д) выход из режима гипервизора и передача управления на последнюю инструкцию при выполнении кода гипервизора 110а.

Таким образом, следующая инструкция потока гипервизора 110а уже выполняется вне режима гипервизора, так как далее выполнение уже идет в рамках другого кольца привилегий (как правило, это будет ring 0).

Фиг. 3 иллюстрирует способ работы настоящего изобретения. На этапе 310 происходит отслеживание состояния системы 220 (например, с помощью обработчика 210). Если на этапе 320 определяется, что состояние системы изменилось (например, перегружен каталог страниц или выполнена команда vmrun), то на этапе 330 происходит остановка выполнения гипервизора 110а. Также стоит отметить, что на этапе 320 может происходить дополнительная проверка, например из какого режима была вызвана перегрузка регистра CR3. Если перегрузка регистра была вызвана из режима ядра, то это лишь переключение контекста, а если из режима пользователя, то можно дополнительно проверить что это, например, - вызов из процесса виртуальной машины. Подобная проверка позволяет минимизировать количество «ложных срабатываний» при остановке гипервизора 110а, чтобы не останавливать его без крайней необходимости. На этапе 340 происходит ожидание возможности запуска гипервизора 110а. Ожидание может включать следующие условия:

- закончился квант времени на исполнение, который выделил планировщик 120 для выполнения одного из гипервизоров 110б;

- произошло изменение состояния системы 120;

- обработчик 210 отслеживает выполнение гипервизора 110б и получает нотификацию об окончании его работы (например, через официальный Application Programmable Interface или API, предоставленный разработчиком гипервизора).

Если на этапе 350 было определено, что один из гипервизоров 110б закончил выполнение (путем проверки вышеуказанных условий), то на этапе 360 происходит его повторный запуск.

В одном из вариантов реализации повторный запуск реализуется через таймерную процедуру (например, в ОС Windows это можно сделать через вызов KeSetTimer). Например, по истечению заданного времени (когда закончился квант времени на выполнение) планировщик 120 определяет, чей код должен быть выполнен (например, старт гипервизора 110а). Таймер может быть переставлен для того, чтобы можно выполнить повторный запуск в следующий раз, когда один из гипервизоров 110б закончит свою работу и гипервизор 110а может быть запущен.

Еще один пример того, когда следует останавливать гипервизор 110а, касается изменения состояния системы 220, связанного с питанием, например при входе в режим гибернации (англ. hibernate). С этой целью можно отслеживать функции, связанные с питанием (Power Management event callback функции в ОС Windows) или системные переменные (SYSTEMPOWERSTATE в ОС Windows).

Другим примером необходимости останавливать гипервизор 110а является запуск кода, который также приводит к сильному изменению состояния процессора, например эмуляторов (такие как QEMU и другие аналогичные, используемые также в антивирусных приложениях). Если же эмулятор и гипервизор 110а входят в состав антивирусного продукта, то после работы эмулятора последний может автоматически запускать гипервизор 110а.

Фиг. 4 представляет пример компьютерной системы общего назначения, персональный компьютер или сервер 20, содержащий центральный процессор 21, системную память 22 и системную шину 23, которая содержит разные системные компоненты, в том числе память, связанную с центральным процессором 21. Системная шина 23 реализована, как любая известная из уровня техники шинная структура, содержащая в свою очередь память шины или контроллер памяти шины, периферийную шину и локальную шину, которая способна взаимодействовать с любой другой шинной архитектурой. Системная память содержит постоянное запоминающее устройство (ПЗУ) 24, память с произвольным доступом (ОЗУ) 25. Основная система ввода/вывода (BIOS) 26 содержит основные процедуры, которые обеспечивают передачу информации между элементами персонального компьютера 20, например, в момент загрузки операционной системы с использованием ПЗУ 24.

Персональный компьютер 20 в свою очередь содержит жесткий диск 27 для чтения и записи данных, привод магнитных дисков 28 для чтения и записи на сменные магнитные диски 29 и оптический привод 30 для чтения и записи на сменные оптические диски 31, такие как CD-ROM, DVD-ROM и иные оптические носители информации. Жесткий диск 27, привод магнитных дисков 28, оптический привод 30 соединены с системной шиной 23 через интерфейс жесткого диска 32, интерфейс магнитных дисков 33 и интерфейс оптического привода 34 соответственно. Приводы и соответствующие компьютерные носители информации представляют собой энергонезависимые средства хранения компьютерных инструкций, структур данных, программных модулей и прочих данных персонального компьютера 20.

Настоящее описание раскрывает реализацию системы, которая использует жесткий диск 27, сменный магнитный диск 29 и сменный оптический диск 31, но следует понимать, что возможно применение иных типов компьютерных носителей информации 56, которые способны хранить данные в доступной для чтения компьютером форме (твердотельные накопители, флеш карты памяти, цифровые диски, память с произвольным доступом (ОЗУ) и т.п.), которые подключены к системной шине 23 через контроллер 55.

Компьютер 20 имеет файловую систему 36, где хранится записанная операционная система 35, а также дополнительные программные приложения 37, другие программные модули 38 и данные программ 39. Пользователь имеет возможность вводить команды и информацию в персональный компьютер 20 посредством устройств ввода (клавиатуры 40, манипулятора «мышь» 42). Могут использоваться другие устройства ввода (не отображены): микрофон, джойстик, игровая консоль, сканнер и т.п. Подобные устройства ввода по своему обычаю подключают к компьютерной системе 20 через последовательный порт 46, который в свою очередь подсоединен к системной шине, но могут быть подключены иным способом, например, при помощи параллельного порта, игрового порта или универсальной последовательной шины (USB). Монитор 47 или иной тип устройства отображения также подсоединен к системной шине 23 через интерфейс, такой как видеоадаптер 48. В дополнение к монитору 47 персональный компьютер может быть оснащен другими периферийными устройствами вывода (не отображены), например колонками, принтером и т.п.

Персональный компьютер 20 способен работать в сетевом окружении, при этом используется сетевое соединение с другим или несколькими удаленными компьютерами 49. Удаленный компьютер (или компьютеры) 49 являются такими же персональными компьютерами или серверами, которые имеют большинство или все упомянутые элементы, отмеченные ранее при описании существа персонального компьютера 20, представленного на Фиг. 4. В вычислительной сети могут присутствовать также и другие устройства, например маршрутизаторы, сетевые станции, пиринговые устройства или иные сетевые узлы.

Сетевые соединения могут образовывать локальную вычислительную сеть (LAN) 50 и глобальную вычислительную сеть (WAN). Такие сети применяются в корпоративных компьютерных сетях, внутренних сетях компаний и, как правило, имеют доступ к сети Интернет. В LAN- или WAN-сетях персональный компьютер 20 подключен к локальной сети 50 через сетевой адаптер или сетевой интерфейс 51. При использовании сетей персональный компьютер 20 может использовать модем 54 или иные средства обеспечения связи с глобальной вычислительной сетью, такой как Интернет. Модем 54, который является внутренним или внешним устройством, подключен к системной шине 23 посредством последовательного порта 46. Следует уточнить, что сетевые соединения являются лишь примерными и не обязаны отображать точную конфигурацию сети, т.е. в действительности существуют иные способы установления соединения техническими средствами связи одного компьютера с другим.

В заключение следует отметить, что приведенные в описании сведения являются примерами, которые не ограничивают объем настоящего изобретения, определенного формулой.


СПОСОБ ОБЕСПЕЧЕНИЯ СОВМЕСТНОЙ РАБОТЫ НЕСКОЛЬКИХ ГИПЕРВИЗОРОВ В КОМПЬЮТЕРНОЙ СИСТЕМЕ
СПОСОБ ОБЕСПЕЧЕНИЯ СОВМЕСТНОЙ РАБОТЫ НЕСКОЛЬКИХ ГИПЕРВИЗОРОВ В КОМПЬЮТЕРНОЙ СИСТЕМЕ
СПОСОБ ОБЕСПЕЧЕНИЯ СОВМЕСТНОЙ РАБОТЫ НЕСКОЛЬКИХ ГИПЕРВИЗОРОВ В КОМПЬЮТЕРНОЙ СИСТЕМЕ
СПОСОБ ОБЕСПЕЧЕНИЯ СОВМЕСТНОЙ РАБОТЫ НЕСКОЛЬКИХ ГИПЕРВИЗОРОВ В КОМПЬЮТЕРНОЙ СИСТЕМЕ
СПОСОБ ОБЕСПЕЧЕНИЯ СОВМЕСТНОЙ РАБОТЫ НЕСКОЛЬКИХ ГИПЕРВИЗОРОВ В КОМПЬЮТЕРНОЙ СИСТЕМЕ
Источник поступления информации: Роспатент

Showing 141-150 of 155 items.
29.05.2018
№218.016.53f8

Способ и система ассоциирования агентов управления устройством с пользователем устройства

Изобретение относится к области управления устройствами, а именно к системам и способам ассоциирования агентов управления устройством с пользователем устройства. Технический результат настоящего изобретения заключается в упрощении управления объектами корпоративной сети путем ассоциирования...
Тип: Изобретение
Номер охранного документа: 0002653984
Дата охранного документа: 15.05.2018
29.05.2018
№218.016.5416

Способ и система обнаружения вредоносного программного обеспечения путем контроля исполнения программного обеспечения запущенного по сценарию

Изобретение относится к вычислительной технике. Технический результат заключается в повышении безопасности устройств за счет обнаружения вредоносного программного обеспечения на этих устройствах путем анализа информации о событиях на устройстве, вызванных исполнением приложения, запущенного по...
Тип: Изобретение
Номер охранного документа: 0002653985
Дата охранного документа: 15.05.2018
29.05.2018
№218.016.5716

Система и способ блокирования использования приложений на мобильном устройстве

Изобретение предназначено для предотвращения установки или блокирования запуска приложений на основании данных о категоризации приложения. Технический результат настоящего изобретения заключается в увеличении безопасности использования мобильных устройств, который достигается за счет...
Тип: Изобретение
Номер охранного документа: 0002654810
Дата охранного документа: 22.05.2018
15.02.2019
№219.016.bab0

Способ создания сценария популярных событий активации

Изобретение относится к способам контроля исполнения исследуемого программного обеспечения с целью обнаружения поведения, характерного для вредоносного программного обеспечения. Технический результат – достижение обеспечения создания сценария популярных событий путем выделения из сценариев...
Тип: Изобретение
Номер охранного документа: 0002679783
Дата охранного документа: 12.02.2019
29.03.2019
№219.016.f488

Система и метод отображения информации для различных уровней знаний с возможностью индивидуального подхода

Изобретение относится к системам обработки и отображения информации и, более конкретно, к электронным книгам и энциклопедиям. Техническим результатом является отображение информации для различных уровней знаний в зависимости от уровня пользователя, а также метод оценки и коррекции уровня его...
Тип: Изобретение
Номер охранного документа: 0002415462
Дата охранного документа: 27.03.2011
29.03.2019
№219.016.f75e

Компонента лицензирования компьютерных приложений

Изобретение относится к компьютерным системам, а именно системам противодействия многократному использованию лицензионного ключа к компьютерному приложению. Технический результат заключается в расширении арсенала технических средств защиты от незаконного использования программных приложений,...
Тип: Изобретение
Номер охранного документа: 0002446458
Дата охранного документа: 27.03.2012
29.04.2019
№219.017.43e7

Система и способ определения потенциально вредоносных программ на основе контроля целостности файлов с использованием временных отметок

Изобретение относится к вычислительной технике и предназначено для контроля целостности файлов. Технический результат, заключающийся в эффективном отслеживании измененных файлов, достигается за счет перехвата вызовов функций приложений пользователя перед изменением временной отметки файла;...
Тип: Изобретение
Номер охранного документа: 0002420793
Дата охранного документа: 10.06.2011
29.04.2019
№219.017.4443

Система и способ для оптимизации выполнения антивирусных задач в локальной сети

Изобретение относится к методам антивирусной защиты. Технический результат заключается в оптимизации выполнения задач безопасности путем конфигурации модулей системы безопасности в локальной сети. Настоящее изобретение предусматривает сбор данных о конфигурации найденных клиентов в сети,...
Тип: Изобретение
Номер охранного документа: 0002453917
Дата охранного документа: 20.06.2012
29.04.2019
№219.017.4451

Способ выявления спама в растровом изображении

Изобретение относится к способам выявления спама и, в частности, к способу выявления спама в растровом изображении. Техническим результатом является выявление спама в растровом изображении путем определения объектов на изображении, характерных для спам- изображений. Способ обнаружения текста...
Тип: Изобретение
Номер охранного документа: 0002453919
Дата охранного документа: 20.06.2012
29.04.2019
№219.017.4455

Система и способ повышения эффективности обнаружения неизвестных вредоносных объектов

Изобретение относится к вычислительной технике. Технический результат заключается в повышении эффективности обнаружения неизвестных вредоносных объектов. Способ обнаружения неизвестных вредоносных объектов, в котором: формируют набор характеристик, каждая из которых описывает объект, для всех...
Тип: Изобретение
Номер охранного документа: 0002454714
Дата охранного документа: 27.06.2012
Showing 141-141 of 141 items.
23.08.2019
№219.017.c278

Система и способ выявления уязвимостей с использованием перехвата вызовов функций

Изобретение относится к области вычислительной техники. Технический результат заключается в выявлении уязвимостей в приложениях с использованием перехвата вызовов функций. Раскрыта система выявления уязвимостей приложения перехватом вызовов функций путем изменения кода приложения, которая...
Тип: Изобретение
Номер охранного документа: 0002697948
Дата охранного документа: 21.08.2019
+ добавить свой РИД