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

Изобретение относится к виртуальным машинам. Его использование позволяет разрешать конфликты по адресному пространству между монитором виртуальной машины и гостевой операционной системой. Для обеспечения этого технического результата способ содержит этапы, на которых: обнаруживают, что гостевая операционная система пытается обратиться к области, занятой первой частью монитора виртуальных машин (МВМ) в пределах первого адресного пространства, и перемещают первую часть МВМ в пределах первого адресного пространства для того, чтобы разрешить гостевой операционной системе доступ к области, ранее занятой первой частью МВМ. 3 н. и 15 з.п. ф-лы, 7 ил.

 

ОБЛАСТЬ ИЗОБРЕТЕНИЯ

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

ПРЕДШЕСТВУЮЩИЙ УРОВЕНЬ ТЕХНИКИ

Общеизвестный монитор виртуальных машин (МВМ, VMM) обычно выполняется на компьютере и представляет другому программному обеспечению абстракцию одной или более виртуальных машин. Каждая виртуальная машина может функционировать, как автономная платформа, выполняющая свою собственную «гостевую операционную систему» (т.е. операционную систему, управляемую МВМ). Ожидается, что гостевая операционная система будет работать так, как будто она выполняется на выделенном компьютере, а не на виртуальной машине. Т.е. ожидается, что гостевая операционная система будет управлять различными компьютерными операциями и иметь неограниченный доступ к физической памяти компьютера и устройствам ввода-вывода с предварительно распределенной памятью во время этих операций. Однако в среде виртуальной машины МВМ должен быть способен обладать максимальным контролем над ресурсами компьютера для обеспечения защиты от других виртуальных машин и между ними. Чтобы этого достичь, МВМ обычно перехватывает и принимает решения по всем обращениям к компьютерным ресурсам, выполняемым гостевой операционной системой.

При существующих процессорах (например, микропроцессорах IA-32) МВМ может быть не способен перехватить обращение гостевой операционной системы к аппаратным ресурсам, если часть кода и/или структур данных МВМ не расположена в том же самом виртуальном адресном пространстве, в котором расположена гостевая операционная система. Однако гостевая операционная система не ожидает, что код и/или структуры данных МВМ постоянно находятся в адресном пространстве гостевой операционной системы, и она может пытаться обращаться к области, занятой МВМ в этом адресном пространстве, вызывая конфликт по адресному пространству между гостевой операционной системой и МВМ. Этот конфликт может привести к аварийному завершению операций, выполняемых МВМ или гостевой операционной системой.

Таким образом, необходим механизм, который обнаружит и разрешит конфликты по адресному пространству между МВМ и гостевой операционной системой.

ПЕРЕЧЕНЬ ФИГУР ЧЕРТЕЖЕЙ

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

фиг.1 - один из вариантов осуществления среды виртуальной машины;

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

фиг.3 - последовательность операций способа разрешения конфликтов по адресному пространству между монитором виртуальных машин и гостевой операционной системой согласно одному из вариантов осуществления настоящего изобретения;

фиг.4 - последовательность операций способа перемещения ядра виртуальной машины в пределах адресного пространства виртуальной машины согласно одному из вариантов осуществления настоящего изобретения;

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

фиг.6 - последовательность операций способа обработки системного прерывания виртуализации, сгенерированного гостевой операционной системой, согласно одному из вариантов осуществления настоящего изобретения; и

фиг.7 - структурная схема одного из вариантов осуществления системы обработки.

ОПИСАНИЕ ВАРИАНТОВ ОСУЩЕСТВЛЕНИЯ

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

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

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

Настоящее изобретение также относится к устройству, предназначенному для выполнения описываемых здесь операций. Это устройство может быть специально сконструировано для требуемых целей, или оно может содержать компьютер общего назначения, выборочно активируемый или переконфигурируемый компьютерной программой, хранящейся в компьютере. Такая компьютерная программа может храниться на считываемом компьютером носителе данных, таком как любой тип диска, что включает в себя гибкие диски, оптические диски, компакт-диски (CD-ROM) и магнитно-оптические диски, постоянное запоминающее устройство (ПЗУ, ROM), оперативное запоминающее устройство (ОЗУ, RAM), стираемое программируемое постоянное запоминающее устройство (СППЗУ, EPROM), электрически стираемое программируемое постоянное запоминающее устройство (ЭСППЗУ, EEPROM), магнитные или оптические карты, или на любом типе носителей, подходящих для хранения электронных команд, и каждый из которых соединен с компьютерной системной шиной, при этом упомянутый носитель данных не ограничен перечисленным. Команды выполняются, используя одно или более устройств обработки (например, процессоры, блоки центрального процессора и т.д.).

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

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

Способ и устройство настоящего изобретения предоставляют механизм для разрешения конфликтов по адресному пространству между гостевой операционной системой и монитором виртуальных машин (МВМ). Фиг.1 иллюстрирует один из вариантов осуществления среды 100 виртуальных машин, в которой настоящее изобретение может работать. В данном варианте осуществления «голые» (без программного обеспечения) аппаратные средства 116 платформы содержат вычислительную платформу, на которой может, например, выполняться стандартная операционная система (ОС) или монитор виртуальных машин (МВМ), такой как МВМ 112. МВМ, хотя обычно и реализуется в программном обеспечении, может экспортировать интерфейс «голой» машины, например, посредством эмуляции, для программного обеспечения более высокого уровня. Такое программное обеспечение более высокого уровня может содержать стандартную ОС или ОС, выполняющуюся в реальном масштабе времени, хотя объем изобретения не ограничен в данном отношении и, в качестве альтернативы, МВМ может выполняться, например, в другом МВМ или поверх него. Мониторы МВМ и их типичные отличительные признаки и функциональные возможности широко известны специалистам в данной области техники и могут быть реализованы, например, в программном обеспечении, программно-аппаратных средствах или с помощью комбинации различных способов.

Как описано выше, МВМ представляет другому программному обеспечению (т.е. «гостевому» программному обеспечению) абстракцию одной или более виртуальных машин (ВМ, VM). Фиг.1 показывает две ВМ, 102 и 114. Каждая ВМ включает в себя гостевую ОС, такую как гостевая ОС 104 или 106, и различные приложения 108-110 гостевого программного обеспечения. Ожидается, что каждая из гостевых ОС 104 и 106 будет управлять доступом к физическим ресурсам (например, памяти и устройствам ввода-вывода с предварительно распределенной памятью) в пределах аппаратной платформы, на которой выполняется гостевая ОС 104 или 106, и выполнять другие функции. Однако в среде виртуальной машины МВМ 112 должен быть способен обладать максимальным контролем над физическими ресурсами для обеспечения защиты ВМ 102 и 114 друг от друга. МВМ 112 достигает этой цели, перехватывая все обращения гостевых ОС 104 и 106 к физическим ресурсам компьютера. Например, может использоваться способ снижения уровня привилегий гостя, чтобы дать возможность МВМ 112 перехватить вышеупомянутое обращение. Снижение уровня привилегий гостя вынуждает все гостевое программное обеспечение выполняться на аппаратном уровне привилегий, который не позволяет этому программному обеспечению обращаться к некоторым аппаратным ресурсам. В результате, всякий раз, когда гостевая ОС 104 или 106 пытается обратиться к любому из этих аппаратных ресурсов, она «выдает системное прерывание» МВМ 112, т.е. МВМ 112 получает контроль над операцией, инициированной гостевой операционной системой, если в этой операции существует обращение к таким аппаратным ресурсам. Следует отметить, что любой другой способ, известный из предшествующего уровня техники, может использоваться для передачи контроля над подобной операцией от гостевой ОС 104 или 106 к МВМ 112.

При использовании способа снижения уровня привилегий гостя или других способов, предоставляющих возможность МВМ 112 перехватить обращения гостевой ОС 104 и 106 к физическим ресурсам компьютера, часть кода и/или структур данных МВМ может по требованиям архитектуры быть должна постоянно находиться в том же самом виртуальном адресном пространстве, в котором находится каждая из гостевых ОС 104 и 106. Однако, поскольку гостевые ОС 104 и 106 не знают о присутствии МВМ, они могут пытаться обращаться к области, занятой кодом и/или структурами данных МВМ в виртуальном адресном пространстве, связанном с гостевой ОС 104 или 106. Такая попытка может привести к конфликту между кодом и структурами данных гостевой ОС и кодом и структурами данных МВМ в виртуальном адресном пространстве, вызывая аварийное завершение операции, выполняемой гостевой ОС 104 или 106, или МВМ 112. Настоящее изобретение предоставляет механизм для разрешения таких конфликтов по адресному пространству.

Фиг.2 - блок-схема системы 200, предназначенной для разрешения конфликтов по адресному пространству между МВМ и гостевой ОС согласно одному из вариантов осуществления настоящего изобретения. Система 200 включает в себя «голые» аппаратные средства 214 платформы, которые включают в себя вычислительную платформу, на которой могут выполняться гостевая ОС (например, гостевая ОС 104 или 106), МВМ (например, МВМ 112) и т.д. Два отдельных адресных пространства 204 и 202 выделены для гостевого программного обеспечения и МВМ. Т.е. адресное пространство 204 ВМ выделено таким образом, чтобы оно содержало код и структуры данных гостевой ОС и другое гостевое программное обеспечение, а адресное пространство 202 МВМ выделено для кода и структур данных МВМ.

Как описано выше, некоторые компоненты кода и/или структур данных МВМ могут по требованиям архитектуры быть обязаны постоянно находиться в том же самом адресном пространстве, в котором находится гостевая ОС, чтобы дать возможность МВМ перехватывать обращения гостевой ОС к аппаратным ресурсам. Например, для архитектуры системы команд (АСК, ISA) IA-32, когда используется снижение уровня привилегий гостя для предоставления МВМ контроля над обращениями гостевой ОС к аппаратным ресурсам, таблица дескрипторов прерываний (ТДП, IDT), которая включает в себя указатели на процедуры обработки системных прерываний, по требованиям архитектуры должна постоянно находиться в том же самом адресном пространстве, в котором находится гостевая ОС. Один из вариантов осуществления настоящего изобретения, который поддерживает снижение уровня привилегий гостя, будет описан более подробно ниже вместе с фиг.5 и 6. Для других архитектур АСК различные другие части кода и/или структур данных МВМ могут по требованиям архитектуры быть должны постоянно находиться в том же самом пространстве адресов, в котором находится гостевая ОС, чтобы предоставить возможность МВМ управлять обращениями, осуществляемыми гостевой ОС к аппаратным ресурсам.

В одном из вариантов осуществления код и структуры данных МВМ разделены на две части. Первая часть МВМ включает в себя набор кода и/или структур данных, которые обязаны постоянно находиться в адресном пространстве гостевой ОС, т.е. в адресном пространстве 204 ВМ. Вторая часть МВМ включает в себя оставшуюся часть кода и структур данных МВМ. В одном из вариантов осуществления программа (называемая ядром 210 виртуальной машины) собирает минимальный набор кода и/или структур данных МВМ, которые должны располагаться в том же самом адресном пространстве, в котором располагается гостевая ОС. Оставшаяся часть кода и структур данных МВМ компилируется как отдельная программа и располагается в адресном пространстве 202 МВМ. Ядро 210 виртуальной машины (ЯВМ, VМK) затем отображает себя и в адресное пространство 204 ВМ, и в адресное пространство 202 МВМ.

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

Затем ЯВМ 210 оценивает это событие для определения его причины. При обнаружении, что событие было вызвано попыткой гостевой ОС обратиться к области, занятой кодом и/или структурами данных МВМ, ЯВМ 210 переотображает себя в другую область в пределах адресного пространства 204 ВМ для того, чтобы разрешить гостевой ОС доступ к области, ранее используемой ЯВМ 210. Один из вариантов осуществления способа перемещения ЯВМ 210 в пределах адресного пространства 204 ВМ описан более подробно ниже вместе с фиг.4.

Фиг.3 - последовательность операций одного из вариантов осуществления способа 300 разрешения конфликтов по адресному пространству между МВМ и гостевой ОС согласно одному из вариантов осуществления настоящего изобретения. Способ 300 начинается с деления МВМ на первую часть и вторую часть (обрабатывающий блок 304). Как описано выше, первая часть включает в себя набор кода и/или структур данных МВМ, которые по требованию архитектуры должны постоянно находиться в том же самом адресном пространстве, где находится гостевая ОС. Вторая часть МВМ включает в себя оставшуюся часть кода и структур данных МВМ. В одном из вариантов осуществления (описанном более подробно ниже) первая часть МВМ включает в себя набор обработчиков системных прерываний и таблицу дескрипторов прерываний (ТДП, IDT). В альтернативных вариантах осуществления первая часть включает в себя другие различные структуры данных и код МВМ, которые должны постоянно находиться в том же самом адресном пространстве, в котором находится гостевая ОС.

Затем создается первое адресное пространство (т.е. адресное пространство 204 ВМ), которое содержит код и структуры данных гостевой ОС и другое гостевое программное обеспечение (обрабатывающий блок 306), и второе адресное пространство (т.е. адресное пространство 202 МВМ) создается для кода и структур данных МВМ (обрабатывающий блок 308). В одном из вариантов осуществления эти адресные пространства создаются во время процесса загрузки.

Помимо этого, первая часть МВМ отображается и в адресное пространство ВМ, и в адресное пространство МВМ (обрабатывающий блок 310), а вторая часть МВМ загружается в адресное пространство МВМ (обрабатывающий блок 312).

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

Впоследствии в обрабатывающем блоке 316 первая часть МВМ перемещается в другую область в пределах адресного пространства ВМ, чтобы разрешить доступ гостевой ОС к области, ранее занятой первой частью МВМ. Любая последующая попытка обращения к новой области, занятой первой частью МВМ, снова приводит к ее перемещению в пределах адресного пространства ВМ. Один из вариантов осуществления способа перемещения ЯВМ, которое содержит первую часть МВМ, показан на фиг.4.

Согласно фиг.4, при обнаружении конфликта по адресному пространству между гостевой ОС и МВМ (обрабатывающий блок 404) в адресном пространстве ВМ выполняется поиск неиспользуемой области (обрабатывающий блок 406). В решающем блоке 408 происходит определение того, существует ли неиспользуемая область в адресном пространстве ВМ. При положительном результате определения ЯВМ, содержащее первую часть кода и структур данных МВМ, переотображается в эту неиспользуемую область, и контроль передается обратно гостевой ОС, которая может теперь обращаться к области, ранее используемой ЯВМ.

В качестве альтернативы, если неиспользуемой области не существует в адресном пространстве ВМ, т.е. гостевая ОС использует все адресное пространство ВМ, то случайная область выбирается в пределах адресного пространства ВМ (обрабатывающий блок 412), содержимое памяти, расположенной в выбранной области, копируется в буфер в адресном пространстве МВМ (обрабатывающий блок 414), и ЯВМ переотображается в выбранную область в адресном пространстве ВМ (обрабатывающий блок 416). Последующие обращения к этой выбранной области памяти (т.е. к новой области ЯВМ) обслуживаются через эмулирование доступа к памяти из буфера в адресном пространстве МВМ, который содержит первоначальное содержимое новой области ЯВМ. В одном из вариантов осуществления частота таких обращений к эмулируемой памяти может быть уменьшена посредством периодического перемещения ЯВМ в случайные области в пределах адресного пространства ВМ, пока не будет найдена область, которая редко используется.

Фиг.5 иллюстрирует работу ЯВМ, которое поддерживает снижение уровня привилегий гостя, согласно одному из вариантов осуществления настоящего изобретения. Как описано выше, снижение уровня привилегий гостя заставляет гостевую ОС выполняться на менее привилегированном уровне так, чтобы гостевая ОС «вызывала системное прерывание» МВМ всякий раз, когда она пытается выдать привилегированные команды, которые оперируют системным состоянием процессора. В одном из вариантов осуществления МВМ, поддерживающий снижение уровня привилегий гостя, размещает указатели на процедуры обработки системных прерываний (т.е. обработчики 552 системных прерываний) в таблице 514 дескрипторов прерываний (ТДП). Некоторые архитектуры АСК (например, архитектура системы команд IA-32) требуют, чтобы ТДП 514 постоянно находилась в активном в настоящее время виртуальном адресном пространстве (т.е. в адресном пространстве 504 ВМ). В одном из вариантов осуществления элементы ТДП 514 являются шлюзами задач, которые обеспечивают переключение адресного пространства. Т.е., когда системное прерывание сгенерировано, ТДП 514 ищет указатель на процедуру обработки системных прерываний. Если этот указатель является шлюзом задачи, то он даст возможность выполнить прямое переключение к адресному пространству МВМ, которое содержит процедуру обработки системных прерываний для сгенерированного системного прерывания. Соответственно, обработчик системных прерываний, соответствующий шлюзу задачи, не должен постоянно находиться в адресном пространстве ВМ, хотя сам шлюз задачи должен постоянно находиться в адресном пространстве ВМ. В другом варианте осуществления элементы ТДП 514 являются шлюзами системных прерываний или шлюзами внешних прерываний, которые не обеспечивают переключение адресного пространства. Следовательно, обработчики системных прерываний, связанные с такими элементами ТДП, должны постоянно находиться в адресном пространстве ВМ. Кроме того, МВМ может размещать теневые версии других структур данных (например, глобальную таблицу дескрипторов) в адресном пространстве ВМ.

В одном из вариантов осуществления ЯВМ 510 собирает вместе минимальный набор обработчиков системных прерываний и/или структур данных (например, ТДП 514), который должен быть расположен в адресном пространстве ВМ, отображает их и в адресное пространство 504 ВМ, и в адресное пространство 502 МВМ, и устанавливает права доступа к страницам, содержащим ЯВМ 510, на самый привилегированный уровень (например, на уровень привилегий «супервизора» с 0-ым кольцом защиты (ring=0) для микропроцессоров IA-32). Как описано выше, гостевая ОС выполняется в непривилегированном режиме (например, в режиме «пользователя» с 3-им кольцом защиты (ring=3) для микропроцессоров IA-32). В результате, в одном из вариантов осуществления гостевая ОС генерирует системные прерывания виртуализации всякий раз, когда она пытается обращаться к привилегированным машинным ресурсам, включая страницы, содержащие ЯВМ 510, которые защищены с помощью самых привилегированных прав доступа.

В одном из вариантов осуществления, когда системное прерывание виртуализации сгенерировано, в ТДП 514 выполняют поиск соответствующего указателя на обработчик системных прерываний. В одном из вариантов осуществления системное прерывание, возможно, должно обрабатываться обработчиком системных прерываний, постоянно находящимся в МВМ. В этом варианте осуществления ЯВМ выполняет два переключения адресного пространства - одно переключение для того, чтобы доставить системное прерывание обработчику системных прерываний в адресном пространстве 502 МВМ, и второе переключение для перехода обратно к адресному пространству 504 ВМ после того, как системное прерывание было обслужено обработчиком системных прерываний, постоянно находящимся в МВМ.

В качестве альтернативы системное прерывание может обрабатываться в обработчике, постоянно находящемся в ЯВМ. Например, системное прерывание может быть вызвано командой гостевой ОС сбросить флаг в регистре процессора. Такое системное прерывание может обрабатываться полностью в обработчике 552 системных прерываний, не передавая управление МВМ в адресном пространстве МВМ 502, и такая реализация привела бы к лучшей производительности. Одним из типов системных прерываний виртуализации является ошибка вследствие конфликта, которая генерируется, когда гостевая ОС пытается обратиться к области адресного пространства 504 ВМ, которая используется в настоящее время ЯВМ 510. ЯВМ 510 обрабатывает эти ошибки вследствие конфликта посредством переотображения себя в новую область в пределах адресного пространства 504 ВМ, как описано более подробно выше в связи с фиг.4.

Фиг.6 - последовательность операций способа 600 обработки системных прерываний виртуализации, сгенерированных гостевой ОС, согласно одному из вариантов осуществления настоящего изобретения. Способ 600 начинается с установки прав доступа к области, занятой ЯВМ, на более привилегированный уровень, чем уровень привилегий, связанный с гостевой ОС (обрабатывающий блок 604). Например, все страницы ЯВМ могут отображаться только с уровнем привилегий супервизора (с 0-ым кольцом защиты (ring=0)), а гостевая ОС может быть установлена для выполнения в непривилегированном режиме пользователя (с 3-им кольцом защиты).

В обрабатывающем блоке 606 принимается системное прерывание, сгенерированное гостевой ОС. Системное прерывание вызывается попыткой гостевой ОС обратиться к привилегированным аппаратным ресурсам. В решающем блоке 608 проводится определение того, может ли системное прерывание быть обработано внутри ЯВМ (например, в обработчике системных прерываний, постоянно находящемся в ЯВМ). Если системное прерывание слишком сложно, чтобы обрабатываться ЯВМ, то оно доставляется в адресное пространство МВМ (например, обработчику системных прерываний, постоянно находящемуся в МВМ) (обрабатывающий блок 610) и затем возвращается назад в адресное пространство ВМ после того, как системное прерывание было обслужено МВМ (обрабатывающий блок 612). Впоследствии контроль над событием, которое вызвало системное прерывание, возвращается гостевой ОС (обрабатывающий блок 620).

В качестве альтернативы, если системное прерывание может быть обработано внутри ЯВМ, то проводится определение того, было ли системное прерывание вызвано конфликтом по адресному пространству между кодом и структурами данных ЯВМ и кодом и структурами данных гостевой ОС (решающий блок 614). Если системное прерывание было действительно вызвано конфликтом по адресному пространству, то код и структуры данных ЯВМ перемещаются в новую область в пределах адресного пространства ВМ (обрабатывающий блок 618). В качестве альтернативы системное прерывание обрабатывается в соответствующем обработчике системных прерываний (обрабатывающий блок 616). Впоследствии контроль над событием, которое вызвало системное прерывание, возвращается гостевой ОС (обрабатывающий блок 620).

Фиг.7 - блок-схема одного из вариантов осуществления обрабатывающей системы. Обрабатывающая система 700 включает в себя процессор 720 и память 730. Процессор 720 может быть процессором любого типа, способным к выполнению программного обеспечения, таким как микропроцессор, процессор цифровой обработки сигналов, микроконтроллер или подобный им. Обрабатывающая система 700 может быть персональным компьютером (ПК), универсальной вычислительной машиной (мейнфреймом), карманным устройством, портативным компьютером, телевизионной приставкой или любой другой системой, которая включает в себя программное обеспечение.

Память 730 может быть жестким диском, гибким диском, оперативным запоминающим устройством (ОЗУ), постоянным запоминающим устройством (ПЗУ), флеш-памятью или любым другим типом машинного носителя, считываемого процессором 720. Память 730 может хранить команды, предназначенные для выполнения различных вариантов осуществления способа настоящего изобретения, таких как способы 300, 400 и 600 (фиг.3, 4 и 6).

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

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. Считываемый компьютером носитель, который предоставляет команды, которые при выполнении в процессоре заставляют указанный процессор выполнять операции, содержащие этапы, на которых обнаруживают, что гостевая операционная система пытается обратиться к области, занятой первой частью монитора виртуальных машин (МВМ) в пределах первого адресного пространства, и перемещают первую часть МВМ в пределах первого адресного пространства для того, чтобы разрешить гостевой операционной системе доступ к области, ранее занятой первой частью МВМ.

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

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



 

Похожие патенты:

Изобретение относится к системам обработки данных. .

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

Изобретение относится к системам передачи информации, например, через сеть Интернет. .

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

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

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

Изобретение относится к вычислительной технике

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

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

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

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

Изобретение относится к вычислительной технике, в частности к способу выполнения фильтром отслеживания запросов ввода/вывода
Наверх