RU2393534C2 - Способ и система для виртуализации гостевого физического адреса в среде виртуальной машины - Google Patents

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

Info

Publication number
RU2393534C2
RU2393534C2 RU2006103559/09A RU2006103559A RU2393534C2 RU 2393534 C2 RU2393534 C2 RU 2393534C2 RU 2006103559/09 A RU2006103559/09 A RU 2006103559/09A RU 2006103559 A RU2006103559 A RU 2006103559A RU 2393534 C2 RU2393534 C2 RU 2393534C2
Authority
RU
Russia
Prior art keywords
virtual machine
pages
access
physical addresses
guest physical
Prior art date
Application number
RU2006103559/09A
Other languages
English (en)
Other versions
RU2006103559A (ru
Inventor
Эрик ТРАУТ (US)
Эрик ТРАУТ
Мэттью Д. ХЭНДЕЛ (US)
Мэттью Д. ХЭНДЕЛ
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 Майкрософт Корпорейшн
Publication of RU2006103559A publication Critical patent/RU2006103559A/ru
Application granted granted Critical
Publication of RU2393534C2 publication Critical patent/RU2393534C2/ru

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1036Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] for multiple virtual address spaces, e.g. segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0253Garbage collection, i.e. reclamation of unreferenced memory
    • G06F12/0261Garbage collection, i.e. reclamation of unreferenced memory using reference counting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45583Memory management, e.g. access or allocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/656Address space sharing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Bus Control (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)

Abstract

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

Description

Область техники, к которой относится изобретение
Изобретение относится к области компьютерного программирования. Более конкретно, изобретение имеет отношение к доступу со стороны второй виртуальной машины к ресурсам главного компьютера, доступным первой виртуальной машине, в среде виртуальной машины.
Предшествующий уровень техники
Виртуальная обработка данных позволяет нескольким виртуальным машинам, каждая из которых имеет свою собственную операционную систему, работать на главном компьютере. Главный компьютер имеет программу виртуализации, которая позволяет главному компьютеру выполнять команды программы виртуальной машины, которая может иметь иную модель центрального процессора по сравнению с главным компьютером. Программа виртуализации главного компьютера может также делать виртуальными аппаратные ресурсы главного компьютера для использования виртуальной машиной. Виртуальную машину, которая запрашивает аппаратные ресурсы, такие как центральный процессор, память, средства ввода-вывода и дисковое пространство, называют гостем по отношению к главному компьютеру.
В виртуальной машине гостевая компьютерная система существует только в системе главного компьютера как чистое программное представление функционирования одной определеннойаппаратной архитектуры. Термины "программа виртуализации", "эмулятор", "виртуальная машина" и "эмуляция процессора" иногда используются взаимозаменяемо для обозначения способности имитировать или эмулировать аппаратную архитектуру всей компьютерной системы, используя один или несколько подходов, известных и оцененных специалистами в данной области техники. Программа виртуализации, выполняющаяся на программном обеспечении операционной системы и архитектуре аппаратных средств главного компьютера, имитирует функционирование всей гостевой компьютерной системы.
Программа виртуализации действует как средство взаимного обмена между архитектурой аппаратных средств главной машины и командами, переданными программным обеспечением (например, операционными системами, приложениями и т.д.), выполняемым в среде эмулируемой гостевой виртуальной машины. В одном варианте воплощения среды виртуальной машины эмулируемая среда может включать в себя монитор виртуальной машины, который является программным уровнем, выполняющимся непосредственно на аппаратных средствах главного компьютера, возможно выполняясь параллельно и работая в связке с операционной системой главного компьютера, и который может сделать виртуальными все ресурсы главного компьютера (также, как и некоторые виртуальные ресурсы), предоставляя интерфейсы, которые являются такими же, как и у аппаратных средств, которые виртуализируют монитор виртуальной машины. Эта виртуализация дает возможность программе виртуализации (также, как и самой системе главного компьютера) быть незаметной для уровней операционной системы, выполняющихся выше нее. В среде виртуальной машины множество виртуальных машин налагают требования по производительности на аппаратные ресурсы главного компьютера. Желательно держать одну виртуальную машину раздельно от других виртуальных машин, так же как и раздельно от главного компьютера. Разделение или изоляция одной виртуальной машины от другой полезно для изолирования ошибок и сбоев, так чтобы сбой одной виртуальной машины не затрагивал другую виртуальную машину.
В некоторых конфигурациях все же желательно, чтобы доступ к главным ресурсам одной виртуальной машины имелся и для второй виртуальной машины. Фиг.1 изображает виртуальную компьютерную систему 100. Система 100 включает в себя первую виртуальную машину 110, вторую виртуальную машину 115 и программное обеспечение 120 виртуализации, постоянно находящееся в системе главного компьютера 105. Программное обеспечение виртуализации помогает поддерживать управляемую изоляцию между виртуальными машинами, например, отделяя адреса виртуальных машин от адресов главной системы. Первая виртуальная машина 110 - это программа, которая включает в себя приложения 125 виртуальной машины, выполняющиеся на операционной системе 130, имеющей драйвер 150 для доступа к базе данных 145. Вторая виртуальная машина 115 - это программа, которая включает в себя приложения 135 виртуальной машины, выполняющиеся на операционной системе 140, имеющей виртуальный драйвер 155. Система главного компьютера 105 имеет ресурсы главного компьютера, такие как каналы ввода-вывода, память, процессоры и программное обеспечение, которые могут быть выделены для любой из виртуальных машин 110, 115. Вконкретном примере на фиг.1 ресурс главного компьютера - это канал 165 ввода-вывода, осуществляющий доступ к базе данных 145. Конфигурация на фиг.1 указывает, что вторая виртуальная машина 115 может обратиться к базе данных 145, используя виртуальный драйвер 155 через программное обеспечение 120 виртуализации, чтобы взаимодействовать с драйвером 150, связанным с путем 165 ввода-вывода к базе данных 145.
В среде виртуальной машины для гостя выделены ресурсы системы главного компьютера, такие как память. Приложение гостевой виртуальной машины создает виртуальный адрес для доступа к памяти для гостевых целей. Этот виртуальный адрес транслируется в физический адрес, относящийся к гостю. Однако каждая виртуальная машина в среде виртуальной машины поддерживает отдельное представление физического адресного пространства. С точки зрения виртуальной машины, может оказаться, что ее физические адресные пространства начинаются с нулевого физического адреса или любого другого выровненного по странице физического адреса и могут охватить настолько большую область, насколько она поддерживается программным обеспечением виртуализации, которое хранит запись выделений памяти в различных виртуальных машинах системы главного компьютера. Как часть программного обеспечения виртуализации обычно используются таблицы теневых страниц, чтобы предоставить каждой виртуальной машине отдельное физическое адресное пространство.
Гостевое физическое адресное пространство относится к физическому адресному пространству виртуальной машины. Соответственно, гостевой физический адрес относится к адресам в пределах гостевого физического адресного пространства. Использование гостевого физического адресного пространства поддерживает операции вставки, удаления и запроса для поддержки гостевой виртуальной машины. Гостевой виртуальный адрес - это виртуальный адрес, приватный для определенной виртуальной машины. Обычно гостевые виртуальные адреса транслируются в гостевые физические адреса. Однако гостевые физические адреса не могут использоваться для доступа к физической памяти главного компьютера. Соответственно, гостевые физические адреса транслируются в системные физические адреса. Чтобы уменьшить накладные расходы при переадресации, программа виртуализации поддерживает таблицы теневых страниц, которые отображают гостевые виртуальные адреса на системные физические адреса. Программа виртуализации также поддерживает внутренние структуры данных, которые хранят отображение гостевых физических адресов на системные физические адреса. Фиг.2 показывает пример отображения гостевых физических страниц на системные физические страницы. Следует обратить внимание, что может существовать несколько гостевых физических адресов, которые могут быть отображены на один гостевой физический адрес. Например, номер 202 страничного блока и номер 203 страничного блока гостевого физического адресного пространства отображаются на номер 102 системного физического страничного блока.
Работа виртуальной машины и управление гостевым физическим адресным пространством могут вызвать несколько интересных проблем. Например, когда область гостевого физического адресного пространства удалена, необходимо очистить гостевые виртуальные адреса, которые отображаются на области в удаленном разделе гостевого физического адресного пространства. Эта очистка приводит к тому, что любые невыполненные отображения на области в удаленном разделе гостевых физических адресов становятся недействительными. Таким образом, если раздел гостевых физических адресов будет удален, то любые виртуальные адреса, которые были созданы с использованием гостевых физических адресов в удаленной области, должны стать недействительными. В иллюстративной архитектуре могут быть два местоположения, где поддерживается отображение гостевых виртуальных адресов на системные физические адреса, следовательно есть два места, где эти отображения гостевых виртуальных адресов на системные физические адреса должны быть удалены. Две области, которые поддерживают отображения виртуальных адресов на физические, находятся в таблицах теневых страниц и в аппаратном буфере быстрого преобразования адреса. Каждый из этих кэшей должен быть очищен, чтобы поддержать правильность виртуализации и предотвратить нарушения безопасности между виртуальными машинами. Фиг.3 показывает отображения гостевых виртуальных адресов на системные физические адреса. Следует отметить, что несколько гостевых виртуальных адресов могут отображаться на одну и ту же системную физическую адресную страницу. Например, гостевые виртуальные адреса C000:1000 и C000:2000 отображаются на номер 102 системной физической страницы. Такое отображение является очевидным в таблице теневых страниц, полезной для ускорения преобразования гостевых виртуальных адресов в системные адреса. Так как структуры данных таблицы теневых страниц поддерживают отображение из гостевых виртуальных адресов в системные физические адреса, невозможно получить по запросу все гостевые виртуальные адреса, которые отображаются в определенный гостевой физический адрес, обратившись с запросом к таблице теневых страниц, показанной на фиг.3. Однако также поддерживается отображение гостевых физических адресов на системные физические адреса, как показано на фиг.2. Одна методика определения всех гостевых виртуальных адресов, которые были созданы с использованием определенного гостевого физического адреса, состоит в том, чтобы сделать запрос к отображению гостевых физических адресов на системные физические адреса (фиг.2) для всех системных физических адресов, которые отображаются на определенный гостевой физический адрес, и затем удалить все вхождения из отображения гостевых виртуальных адресов на системные физические адреса (таблица теневых страниц на фиг.3), которые отображаются на системные физические адреса. Этот метод может быть очень медленным, поскольку каждый из шагов включает в себя последовательный перебор отображений гостевых физических адресов на системные физические адреса и гостевых виртуальных адресов на системные физические адреса соответственно. Как альтернатива, могло бы поддерживаться обратное отображение гостевых физических адресов на гостевые виртуальные адреса, чтобы явно обработать это условие. Последний подход потребляет большой объем дополнительной памяти.
Возникает дополнительная сложность, так как физические устройства в компьютерных системах обращаются к системной памяти, используя физические, а не виртуальные адреса. Таким образом, очистка отображений виртуальных адресов на физические из таблицы теневых страниц и буфера быстрого преобразования адреса не предотвращает того, что физическое устройство производит доступ к системной памяти, если устройство настроено так, чтобы выполнять операцию прямого доступа к памяти. Операции прямого доступа к памяти могут выполняться в средах виртуальных машин, в которых присутствуют аппаратные и программные средства контроллера прямого доступа к памяти.
Удаляя гостевое физическое адресное пространство, важно убедиться, что пространство в настоящее время не включено в операцию прямого доступа к памяти. Одна методика предотвращения удаления страницы гостевого адресного пространства, обычно 4 КБ или более, в то время как происходит незавершенная транзакция прямого доступа к памяти, состоит в том, чтобы поддерживать один флаг на каждую страницу, определяющий, используется ли страница для операции прямого доступа к памяти. Различные физические устройства могут отображаться на одно и то же физическое адресное пространство, и, таким образом, одно и то же адресное пространство может быть включено в две различные, возможно незавершенные, операции прямого доступа к памяти. Таким образом, единственный флаг дает недостаточно информации, чтобы знать, когда обе транзакции прямого доступа к памяти завершены. Желателен более усовершенствованный алгоритм.
Одно возможное решение для нескольких незавершенных операций прямого доступа к памяти состоит в том, чтобы обеспечить алгоритм предотвращения запросов прямого доступа к памяти, к определенным областям системной физической памяти. В общих чертах, предоставляется таблица, которая позволяет операционной системе отслеживать, может ли для определенной страницы производиться чтение или запись через агента, не относящегося к центральному процессору, как это происходит во время транзакции прямого доступа к памяти. Таблица имеет один или более флагов для страницы физической памяти, которые определяют, может ли для страницы производиться чтение или запись через операцию прямого доступа к памяти. Эту таблицу называют вектором исключения прямого доступа к памяти. Желательно использовать алгоритм вектора исключения прямого доступа к памяти и все же избегать проблемы множественных транзакций прямого доступа к памяти, направленных по отношению к физическому адресному пространству, которое должно быть очищено или изменено в таблицах гостевых физических адресов.
Таким образом, имеется потребность в способе и системе для разрешения очистки или модификации физического адресного пространства в таблицах ссылок, используемых в переадресации от гостевых в физические адреса главного компьютера, при этом также разрешая некоторый доступ к физическим адресам, таким как прямой доступ к памяти и другие операции ввода-вывода, между виртуальными машинами. Данное изобретение адресовано к вышеупомянутым потребностям и решает их с дополнительными преимуществами, как представлено здесь.
Сущность изобретения
Аспект изобретения включает в себя способ и систему для разрешения доступа между виртуальными машинами, где одна виртуальная машина запрашивает доступ к ресурсам, выделенным для других виртуальных машин. Один вариант воплощения изобретения включает в себя прием запроса на осуществление доступа, такого как прямой доступ к памяти, между двумя виртуальными машинами с использованием временного диапазона гостевых физических адресов первой виртуальной машины. Страницы, к которым осуществляется доступ, отображаются на временное адресное пространство, и используется опорный счетчик, чтобы следить за количеством незавершенных доступов. После того как доступ завершен, значение опорного счетчика уменьшается. Отображение может быть сброшено, если значение опорного счетчика становится равно нулю, указывая, что нет никаких дополнительных незавершенных доступов к представляющим интерес страницам. В одном варианте воплощения изобретение находит утилиту как способ использования в среде виртуальной машины, когда желательно обновить местоположения гостевого физического адреса и необходимо изменить или очистить адреса, соответствующие желаемым страницам, которые все еще являются предметом запросов доступа. Ссылки на страницы, которые будут изменены, могут быть найдены в местоположениях временного гостевого физического адреса, в буфере быстрого преобразования адреса или в таблице теневых страниц.
Перечень фигур чертежей
Предшествующее краткое изложение сущности изобретения, а также последующее подробное описание иллюстративных вариантов воплощения более понятны при прочтении в привязке к приложенным чертежам. С целью иллюстрирования изобретения на чертежах показаны иллюстративные конструкции изобретения; однако изобретение не ограничено раскрытыми конкретными методами и средствами. На чертежах:
фиг.1 - иллюстративная среда виртуальной машины, в которой могут быть осуществлены аспекты изобретения;
фиг.2 - отображение гостевых физических адресов на системные физические адреса для виртуальной машины;
фиг.3 - отображение гостевых виртуальных адресов на системные физические адреса для виртуальной машины;
фиг.4 - отображение гостевых виртуальных адресов на гостевые физические адреса для виртуальной машины;
фиг.5 - блок-схема способа, включающего в себя аспекты изобретения; и
фиг.6 - структурная схема, показывающая иллюстративную вычислительную среду, в которой могут быть осуществлены аспекты изобретения.
Подробное описание иллюстративных вариантов воплощения
Иллюстративные варианты воплощения изобретения
В одном аспекте изобретения создается переходная или временная область гостевого физического адресного пространства, чтобы определять, какие разделы гостевого физического адресного пространства требуют дополнительных структур данных, отображающих гостевые физические адреса на гостевые виртуальные адреса, чтобы позволить быстрое удаление или модификацию гостевого физического адресного пространства. Эта функция полезна для быстрой вставки и удаления гостевого физического адресного пространства, необходимых для поддержки транзакций ввода-вывода между сегментами или виртуальными машинами в среде виртуальной машины. Как один пример, поддержка взаимных транзакций прямого доступа к памяти виртуальных машин может быть обеспечена с использованием временного гостевого физического адресного пространства. В одном варианте воплощения переходная или временная область гостевого физического адресного пространства определяется либо гостем, либо программным обеспечением виртуализации как пространство в пределах гостевого физического адресного пространства, но которое находится вне пространства, выделенного для стандартных прикладных операций с операционной системой гостевой машины. Это местоположение вне стандартного использования гостевой операционной системы устраняет проблему гостевой операционной системы или гостевых приложений, состоящую в случайном использовании переходного или временного пространства в стандартных операциях гостевой виртуальной машины.
Введение переходной или временной области гостевых физических адресов основано на наблюдении, что во время модификации или чистки гостевых физических адресов некоторые области адресов должны быть удалены быстро, в то время как другие области адресов изменяются редко или никогда не изменяются в течение всего времени существования виртуальной машины. Таким образом, если бы была реализована отдельная и временная таблица обратного отображения системных физических адресов на гостевые виртуальные адреса, то она бы использовалась не интенсивно, и расходы ресурсов памяти могли бы быть не оправданы. В результате согласно аспекту изобретения отображение системных физических адресов на гостевые виртуальные адреса для идентификации определенных гостевых виртуальных адресов, которые должны быть изменены, поддерживается только на переходные областях. Когда изменяются непереходные области в отображении гостевых физических адресов на системные физические адреса, тогда выполняются более медленные очистки гостевых виртуальных адресов из отображений гостевых виртуальных адресов на системные физические адреса.
В одном аспекте изобретения для частей пространства гостевых физических адресов, отмеченных как переходные, поддерживается дополнительное отображение гостевых физических адресов на гостевые виртуальные адреса, которое обеспечивает быструю идентификацию гостевого виртуального адреса из гостевого физического адреса. Фиг.4 изображает пример отображения гостевых физических адресов на гостевые виртуальные адреса. Следует отметить, что имеется потенциально несколько гостевых виртуальных адресов, которые могут отображаться на один гостевой физический адрес. Например, на фиг.4 гостевой физический адрес 100 может отображаться на гостевые виртуальные адреса 8000:0000, 8000:1000, 8000:2000 и 8000:3000.
В другом аспекте изобретения идентифицированные страницы могут быть "блокированы" для транзакции ввода-вывода, такой как операция прямого доступа к памяти. Когда становится желательным произвести чистку диапазона гостевых физических адресов и удалить соответствующие ссылки на эти адреса, модификация предпочтительно не выполняется, если страница включена в текущую или ожидающую обработки транзакцию ввода-вывода или другую транзакцию прямого доступа к памяти. Согласно аспекту изобретения поддержка "блокированного" состояния, соответствующего гостевому физическому адресу, позволяет доступу к вводу-выводу или другой операции, такой как прямой доступ к памяти, продолжаться, когда ожидается очистка или модификация пространства гостевых физических адресов.
Как обсуждалось выше, одна страница может быть включена в несколько операций, ожидающих обработки, таких как транзакции ввода-вывода или прямого доступа к памяти. Предпочтительно запретить модификацию отображения гостевых физических адресов на системные физические адреса, пока имеются незавершенные запросы прямого доступа к памяти к части изменяемой области. В одном аспекте изобретения используется опорный счетчик, чтобы подсчитывать количество транзакций ввода-вывода или других транзакций, таких как прямой доступ к памяти, которые ожидают данную страницу. В одной реализации используется опорный счетчик незавершенных транзакций, чтобы разрешить или не разрешить модификации в гостевом физическом адресном пространстве, которое включает в себя страницы с незавершенными транзакциями ввода-вывода или другими транзакциями, такими как операции прямого доступа к памяти. Использование опорных счетчиков решает двойные проблемы предотвращения модификации гостевого физического адресного пространства, пока продолжают выполняться незавершенные транзакции, и поддержки единственного флага в векторе исключения прямого доступа к памяти, в то время как может иметься несколько незавершенных запросов прямого доступа к памяти для одной страницы. Что касается опорного счетчика, предпочтительно, чтобы отображение гостевых физических адресов на системные физические адреса не изменялось, пока значение опорного счетчика не равно нулю. Кроме того, когда принят запрос на изменение отображения гостевых физических адресов на системные физические адреса, и если значение опорного счетчика не равно нулю, новый запрос прямого доступа к памяти может быть отложен для обработки, пока не будет обработан запрос на изменение гостевого физического адресного пространства.
Транзакция ввода-вывода может оставаться блокированной, чтобы избежать ситуации, в которой определенная страница блокирована в памяти, и запрос на изменение или очистку гостевого физического адресного пространства удерживается в течение неопределенно долгого периода времени. Когда гостевой физический адрес находится в закрытом состоянии, новые запросы на блокировку страниц в пределах этой области для транзакции, такой как запрос прямого доступа к памяти, будут либо терпеть неудачу, либо ждать, пока не произойдет модификация гостевого физического адресного пространства. Это состояние предотвращает неопределенно долгое ожидание из-за предотвращения изменений гостевого физического адресного пространства. Вышепринятый подход к защите изменений отображения гостевых физических адресов на системные физические адреса используется также, чтобы защитить вектор исключения прямого доступа к памяти. Более конкретно, поддерживается опорный счетчик для количества незавершенных транзакций прямого доступа к памяти, имеющихся для определенной страницы, и когда опорный счетчик достигает нуля, адреса могут быть изменены. Соответственно, когда опорный счетчик достигает нуля и нет дополнительных незавершенных доступов ввода-вывода к странице, страница помечается как недоступная через прямой доступ к памяти.
В другом аспекте изобретения используется сбалансированное двоичное дерево для быстрого запроса и модификации гостевого физического адресного пространства. Элементы в отображении гостевого физического адресного пространства могут вставляться, удаляться и запрашиваться на основе запросов от гостевых приложений. Чтобы достичь быстрых вставок, удалений и запросов структур данных гостевого физического адресного пространства, предпочтительна структура данных сбалансированного двоичного дерева. Сбалансированное двоичное дерево обеспечивает производительность, в худшем случае оцениваемую как O(log2 n), на всех операциях на гостевом физическом адресном пространстве.
Фиг.5 изображает иллюстративный способ 500 в соответствии с аспектами изобретения. Предполагается, что компьютерная среда, в которой выполнен способ - это среда виртуальной машины, подобная изображенной на фиг.1, в которой главный компьютер предоставляет ресурсы для двух или более виртуальных машин. В среде, в которой виртуальная машина делает запросы к ресурсам главного компьютера, гостевой виртуальный адрес транслируется в гостевой физический адрес и затем транслируется в системный физический адрес. Трансляции адресов после выполнения используются и в таблице теневых страниц, и в буфере быстрого преобразования адреса, чтобы ускорить операции виртуальной машины. Однако когда необходимы изменения в гостевом физическом адресном пространстве, таблица теневых страниц и буфер быстрого преобразования адреса нуждаются в обновлении, чтобы предотвратить излишний доступ к неотображаемым адресам и переназначить отображение к более адекватным областям в адресном пространстве. Иллюстративный способ 500 на фиг.5 работает в этой среде и может использоваться как часть алгоритма изменения и обновления адреса, при этом предоставляя доступ из одного сегмента или виртуальной машины к другому сегменту или виртуальной машине.
Способ 500, возможно, начинается с установки, когда в первой виртуальной машине определено выделение временного гостевого физического адресного пространства для того, чтобы совместно использовать страницы между виртуальными машинами (этап 510). Это временное или переходное пространство расположено предпочтительно в пределах диапазона гостевых физических адресов, но вне операционной досягаемости приложений, которые используют диапазон гостевых физических адресов в этой виртуальной машине. Такая переходная область может первоначально быть выделена программным обеспечением виртуализации в виртуальной машине. Как альтернатива, переходная или временная область может быть выделена гостевой операционной системой. Отмечено, что выделение временной области в гостевом физическом адресном пространстве может быть выполнено в любое время перед транзакцией виртуальной машины к виртуальной машине и не должно выполняться каждый раз, когда транзакция желательна.
Принимается запрос (этап 520) от второй виртуальной машины к первой виртуальной машине, чтобы выполнить операцию, такую какдоступ ввода/вывода к памяти или прямой доступ к памяти. Доступ направляется через программное обеспечение виртуализации на главном компьютере в среде виртуальной машины. В ответ на запрос опорный счетчик, ассоциированный со страницей адреса в запросе, увеличивается (этап 530). Это имеет эффект блокирования рассматриваемой страницы, и может быть сделана подготовка для совместного использования обозначенных страниц. Если запрашиваемая транзакция является операцией прямого доступа к памяти и если опорный счетчик увеличен от нуля до единицы, то вектор исключения прямого доступа к памяти проверяется для подтверждения того, что операции прямого доступа к памяти разрешены. Рассматриваемые страницы также проверяются для гарантии того, что они существуют и являются достоверными отображениями гостевых физических адресов на системные физические адреса.
Рассматриваемые страницы затем отображаются в гостевое физическое адресное пространство первой виртуальной машины в пределах предварительно определенного временного диапазона адресов (этап 540). После того как страницы отображены в гостевые физические адреса первой виртуальной машины, намеченная транзакция может быть начата (этап 550). Если запрос на доступ является запросом прямого доступа к памяти, запуск транзакции включает в себя посылку команд, таких как команды чтения и записи, параметров, таких как транзакции для определенного типа данных, таких как цвет видеоизображения, и определенных адресов источника и назначения со второй виртуальной машины на первую виртуальную машину, чтобы установить и произвести передачу прямого доступа к памяти.
После того как произведен обмен данными между второй виртуальной машиной и первой виртуальной машиной, транзакция завершается (этап 560). Если транзакцией является операция прямого доступа к памяти, первая виртуальная машина сообщает второй виртуальной машине, что данные были переданы. После завершения вторая виртуальная машина посылает указание программному обеспечению виртуализации, чтобы разблокировать и снять совместное использование у страниц, участвовавших в транзакции. Значение опорного счетчика, увеличенное на этапе 530, уменьшается (этап 570). Если транзакция является операцией прямого доступа к памяти и значение опорного счетчика переходит от единицы к нулю, то вектор исключения прямого доступа к памяти может быть установлен так, чтобы не разрешать дальнейшие транзакции прямого доступа к памяти. В аспекте изобретения это действие позволяет системе изменять или очищать диапазоны гостевых физических адресов, которые включают в себя рассматриваемые страницы, после завершения транзакции прямого доступа к памяти.
После того как значение опорного счетчика уменьшено, если все еще имеются ожидающие обработки транзакции, то эти транзакции могут выполняться. После того как они выполнены и значение опорного счетчика становится равным нулю, система может свободно изменять рассматриваемые страницы или отображения, как требуется. Отображения могут быть изменены, как необходимо, (этап 580) после того как значение опорного счетчика уменьшается до нуля. Эта возможность переназначения отображения позволяет системе обновить таблицы теневых страниц и буфер быстрого преобразования адреса, которые нужно изменить, чтобы либо изменить, либо очистить отображения, связанные с адресами, которые должны быть изменены, чтобы согласовать изменения в гостевом физическом адресном пространстве.
Иллюстративное вычислительное устройство
Фиг.6 и дальнейшее обсуждение предназначены для того, чтобы дать краткое общее описание подходящей компьютерной среды, в которой варианты воплощения изобретения могут быть реализованы. Хотя ниже описан компьютер общего назначения, это является всего лишь примером с одним процессором, и могут быть осуществлены варианты воплощения изобретения с несколькими процессорами с другими вычислительными устройствами, такими как клиент, имеющий возможность взаимодействия с сервером по сети/шине. Таким образом, данное изобретение может быть реализовано в среде сетевых услуг, в которой подразумеваются очень малые или минимальные ресурсы клиента, например в сетевой среде, в которой клиентское устройство служит только как интерфейс к сети/шине, такой как объект, помещенный в прибор, или также другие компьютерные устройства и объекты. В сущности, любая среда, где могут храниться данные или откуда данные могут быть извлечены, является желательной или подходящей средой для функционирования.
Хотя это не требуется, варианты воплощения изобретения могут также быть реализованы через операционную систему для использования разработчиком сервисов для устройства или объекта и/или включены в прикладное программное обеспечение. Программное обеспечение может быть описано в общем контексте машиноисполняемых команд, таких как программные модули, выполняемых одним или более компьютерами, такими как клиентские рабочие станции, серверы или другие устройства. В целом программные модули включают в себя процедуры, программы, объекты, компоненты, структуры данных и т.п., которые выполняют конкретные задачи или реализуют определенные абстрактные типы данных. Обычно функциональные возможности программных модулей могут быть объединены или распределены по желанию в различных вариантах воплощения. Кроме того, специалистам в данной области техники должно быть понятно, что различные варианты воплощения изобретения могут применяться на практике с другими конфигурациями компьютерных систем. Другие широко известные компьютерные системы, среды и/или конфигурации, которые могут быть пригодны для использования изобретением, включают в себя, но без ограничения, персональные компьютеры (ПК), банкоматы, серверные компьютеры, карманные или переносные устройства, мультипроцессорные системы, системы на основе микропроцессора, программируемую бытовую электронику, сетевые ПК, приборы, световую сигнализацию, элементы контроля влияния окружающей среды, миникомпьютеры, универсальные вычислительные машины и т.п. Варианты воплощения изобретения также могут быть применены на практике в распределенных компьютерных средах, в которых задания выполняются удаленными устройствами обработки данных, которые связаны через коммуникационную сеть/шину или другое средство передачи данных. В распределенной компьютерной среде программные модули могут быть расположены и в местных, и в удаленных компьютерных носителях данных, включая запоминающие устройства, и клиентские узлы могут в свою очередь вести себя как серверные узлы.
Фиг.6, таким образом, иллюстрирует пример подходящей среды 600 вычислительной системы, в которой варианты воплощения изобретения могут быть реализованы, хотя, как было пояснено выше, среда 600 вычислительной системы является только одним примером подходящей вычислительной среды и не предназначена для того, чтобы предложить какое-либо ограничение относительно сферы использования или функциональных возможностей вариантов воплощения изобретения. Также вычислительная среда 600 не должна интерпретироваться как имеющая какие-либо зависимости или требования по отношению к какому-либо одному или комбинации компонентов, проиллюстрированных в иллюстративной операционной среде 600.
В соответствии с фиг.6, иллюстративная система для реализации изобретения включает в себя вычислительное устройство общего назначения в виде компьютерной системы 610. Компоненты компьютерной системы 610 могут включать в себя, но без ограничения, процессор 620, системную память 630 и системную шину 621, которая соединяет различные компоненты системы, в том числе системную память с процессором 620. Системная шина 621 может быть любой из нескольких типов шин или шинных структур, в том числе шиной памяти или контроллером памяти, шиной периферии и локальной шиной, используя любую из множества архитектур шин. В качестве примера, но не ограничения, такие архитектуры включают в себя шину архитектуры промышленного стандарта (ISA), шину микроканальной архитектуры (MCA), шину усовершенствованной ISA (EISA), локальную шину ассоциации по стандартам в области видеоэлектроники (VESA) и шину межсоединения периферийных компонентов (PCI) (также известную как шина расширения).
Компьютерная система 610 обычно включает в себя множество машиночитаемых носителей. Машиночитаемые носители могут являться любыми доступными носителями, к которым компьютерная система 610 может осуществить доступ, и включают в себя и энергозависимые, и энергонезависимые носители, сменные и несменные носители. В качестве примера, но не ограничения, машиночитаемые носители могут содержать компьютерные носители данных и коммуникационные среды. Компьютерные носители данных включают в себя и энергозависимые, и энергонезависимые, сменные и несменные носители, реализованные любым способом или по любой технологии для хранения информации, такой как машиночитаемые команды, структуры данных, программные модули или другие данные. Компьютерные носители данных включают в себя, но без ограничения, оперативное запоминающее устройство (ОЗУ), постоянное запоминающее устройство (ПЗУ), электрически стираемое программируемое постоянное запоминающее устройство (ЭСППЗУ), флэш-память или память другой технологии, постоянное запоминающее устройство на компакт-диске (CDROM), перезаписываемый компакт-диск (CDRW), цифровой универсальный диск (DVD) или другую оптическую память на диске, магнитные кассеты, магнитную ленту, магнитную память на диске или другие магнитные запоминающие устройства, или любой другой носитель, который можно использовать для хранения полезной информации и к которому может осуществлять доступ компьютерная система 610. Коммуникационные среды обычно воплощают машиночитаемые команды, структуры данных, программные модули или другие данные в модулированном информационном сигнале, таком как несущая или другой транспортный механизм, и включают в себя любые среды доставки информации. Термин «модулированный информационный сигнал» означает сигнал, одна или более характеристик которого установлены или изменены таким образом, чтобы закодировать информацию в этом сигнале. В качестве примера, но не ограничения, коммуникационные среды включают в себя проводные среды, такие как проводная сеть или прямое проводное соединение, и беспроводные среды, такие как акустические, радиочастотные, инфракрасные и другие беспроводные среды. Комбинации любых вышеупомянутых сред и носителей должны также быть включены в рамки понятия «машиночитаемый носитель».
Системная память 630 включает в себя компьютерные носители данных в виде энергозависимой и/или энергонезависимой памяти, такой как постоянное запоминающее устройство (ПЗУ) 631 и оперативное запоминающее устройство (ОЗУ) 632. Базовая система 633 ввода-вывода (BIOS), содержащая основные процедуры, которые помогают передавать информацию между элементами в компьютерной системе 610, например, во время запуска, обычно хранится в ПЗУ 631. ОЗУ 632 обычно содержит данные и/или программные модули, которые мгновенно доступны процессору 620 и/или которые в данный момент обрабатываются процессором 620. В качестве примера, но не ограничения, фиг.6 иллюстрирует операционную систему 634, прикладные программы 635, другие программные модули 636 и данные 637 программ.
Компьютерная система 610 может также включать в себя другие сменные/несменные, энергозависимые/энергонезависимые компьютерные носители данных. Только в качестве примера фиг.6 иллюстрирует накопитель 641 на жестких дисках, который считывает или записывает на несменный энергонезависимый магнитный носитель, магнитный дисковод 651, который считывает или записывает на сменный энергонезависимый магнитный диск 652, и оптический дисковод 655, который считывает или записывает на сменный энергонезависимый оптический диск 656, такой как постоянное запоминающее устройство на компакт-диске (CDROM), перезаписываемый компакт-диск (CDRW), цифровой универсальный диск (DVD) или другой оптический носитель. Другие сменные/несменные, энергозависимые/энергонезависимые компьютерные носители данных, которые могут использоваться в иллюстративной среде, включают в себя, но без ограничения, кассеты магнитной ленты, карты флэш-памяти, цифровые универсальные диски, цифровую видеоленту, полупроводниковое ОЗУ, полупроводниковое ПЗУ и т.п. Накопитель 641 на жестких дисках обычно соединяется с системной шиной 621 через интерфейс несменной памяти, такой как интерфейс 640, и магнитный дисковод 651 и оптический дисковод 655 обычно соединяются с системной шиной 621 интерфейсом сменной памяти, таким как интерфейс 650.
Дисковые накопители и связанные с ними компьютерные носители данных, обсуждаемые выше и проиллюстрированные на фиг.6, обеспечивают хранение машиночитаемых команд, структур данных, программных модулей и других данных для компьютерной системы 610. На фиг.6, например, накопитель 641 на жестких дисках проиллюстрирован как содержащий операционную систему 644, прикладные программы 645, другие программные модули 646 и данные 647 программ. Эти компоненты могут либо быть теми же самыми, либо отличными от операционной системы 634, прикладных программ 635, других программных модулей 636 и данных 637 программ. Операционной системе 644, прикладным программам 645, другим программным модулям 646 и данным 647 программ здесь даны другие номера, чтобы проиллюстрировать, что, как минимум, они являются другими копиями. Пользователь может вводить команды и информацию в компьютер 610 через устройства ввода данных, такие как клавиатура 662 и координатно-указательное устройство 661, обычно называемое мышью, шаровым манипулятором или сенсорной клавиатурой. Другие устройства ввода данных (не показаны) могут включать в себя микрофон, джойстик, игровую клавиатуру, спутниковую антенну, сканер и т.п. Эти и другие устройства ввода данных часто соединяются с процессором 620 через интерфейс 660 пользовательского ввода, который присоединен к системной шине 621, но могут быть соединены другими интерфейсными и шинными структурами, такими как параллельный порт, игровой порт или универсальная последовательная шина (USB). Монитор 691 или другой тип устройства отображения также соединен с системной шиной 621 через интерфейс, такой как видеоинтерфейс 690, который может в свою очередь взаимодействовать с видеопамятью (не показана). В дополнение к монитору 691 компьютерные системы могут также включать в себя другие внешние устройства вывода, такие как динамики 697 и принтер 696, которые могут быть подсоединены через интерфейс периферийных устройств вывода 695.
Компьютерная система 610 может работать в сетевом окружении, используя логические соединения с одним или более удаленными компьютерами, такими как удаленный компьютер 680. Удаленный компьютер 680 может быть персональным компьютером, сервером, маршрутизатором, сетевым ПК, одноранговым устройством или другим общим сетевым узлом и обычно включает в себя многие или все из элементов, описанных выше относительно компьютерной системы 610, хотя только запоминающее устройство 681 проиллюстрировано на фиг.6. Логические соединения, изображенные на фиг.6, включают в себя локальную сеть 671 и глобальную сеть 673, но могут также включать в себя другие сети. Такие сетевые окружения являются обычным явлением в офисах, компьютерных сетях масштаба предприятия, интрасетях и Интернете.
При использовании в окружении локальной сети компьютер 110 связан с локальной сетью 171 через сетевой интерфейс или адаптер 170. При использовании в окружении глобальной сети компьютер 110 обычно включает в себя модем 172 или другие средства для установления связи по глобальной сети 173, такой как Интернет. Модем 172, который может быть внутренним или внешним, может быть соединен с системной шиной 121 через интерфейс 160 пользовательского ввода или другой соответствующий механизм. В сетевом окружении программные модули, изображенные относительно компьютера 110, или их части могут храниться в удаленном запоминающем устройстве. В качестве примера, но не ограничения, фиг.1 иллюстрирует удаленные прикладные программы 185 как находящиеся в запоминающем устройстве 181. Будет оценено, что показанные сетевые соединения являются иллюстративными, и могут быть использованы другие средства установления линии связи между компьютерами.
Различные распределенные вычислительные инфраструктуры были разработаны и разрабатываются в свете сближения вычислений на ПК и Интернета. Индивидуальным и бизнес-пользователям одинаково предоставлен интерфейс для приложений и вычислительных устройств, имеющий возможность однородного взаимодействия по web и делающий вычислительные действия все более и более ориентированными на средства просмотра (браузеры) web или на сеть.
Например, платформа MICROSOFT®'s .NET™, доступная от Microsoft Corporation, включает серверы, службы по принципу стандартных блоков, такие как основывающееся на web хранение данных, и зaгружаемое программное обеспечение для устройств. Хотя иллюстративные варианты воплощения описаны здесь в связи с программным обеспечением, постоянно находящимся на вычислительном устройстве, одна или более частей варианта воплощения изобретения могут также быть осуществлены через операционную систему, интерфейс прикладного программирования (API) или "промежуточный" объект между любым сопроцессором, устройством отображения и запрашивающим объектом таким образом, что операция может быть выполнена, поддержана или доступна через все языки и службы .NET™, а также в других распределенных вычислительных инфраструктурах.
Как упомянуто выше, хотя иллюстративные варианты воплощения изобретения были описаны в связи с различными вычислительными устройствами и сетевыми архитектурами, лежащие в основе понятия могут быть применены к любому вычислительному устройству или системе, в которых желательно осуществить профайлер программ для встроенной системы. Таким образом, способы и системы, описанные в связи с вариантами воплощения данного изобретения, могут быть применены к различным приложениям и устройствам. Хотя иллюстративные языки программирования, названия и примеры выбраны здесь как представления различных вариантов выбора, эти языки, названия и примеры не предусмотрены для ограничения. Специалист в данной области техники может понять, что имеется множество способов обеспечить объектный код, который достигнет тех же самых подобных или эквивалентных систем и способов, которые достигнуты при помощи вариантов воплощения изобретения.
Описанные здесь различные методики могут быть реализованы в связи с аппаратными средствами или программным обеспечением или, где целесообразно, с их комбинацией. Таким образом, способы и устройство согласно данному изобретению или его определенные аспекты или части могут принять форму программного кода (то есть команд), воплощенного на материальных носителях, таких как гибкие дискеты, компакт-диски, накопители на жестких дисках или любые другие машиночитаемые носители данных, причем, когда код программы загружен в машину и выполняется машиной, такой как компьютер, машина становится устройством для применения изобретения на практике. В случае выполнения программного кода на программируемых компьютерах вычислительное устройство будет в целом включать в себя процессор, носитель данных, читаемый процессором (включая энергозависимую и энергонезависимую память и/или запоминающие элементы), по меньшей мере одно устройство ввода и по меньшей мере одно устройство вывода. Одна или более программ, которые могут использовать сервисы обработки сигнала согласно вариантам воплощения данного изобретения, например с помощью интерфейса прикладного программирования обработки данных или подобного, предпочтительно реализуются на процедурном языке программирования высокого уровня или объектно-ориентированном языке программирования для взаимодействия с компьютером. Однако программа(ы) может быть реализована на языке ассемблера или машинном языке, если требуется. В любом случае язык может быть компилируемым или интерпретируемым языком и объединен с реализацией аппаратных средств.
Хотя аспекты данного изобретения были описаны в связи с предпочтительными вариантами воплощения согласно различным фигурам, следует понимать, что могут использоваться другие подобные варианты воплощения или могут быть сделаны модификации и добавления к описанным вариантам воплощения для выполнения той же самой функции данного изобретения без отклонений от нее. Более того, следует подчеркнуть, что рассматривается множество компьютерных платформ, в том числе операционных систем карманных устройств и других операционных систем для отдельных приложений, особенно поскольку количество беспроводных сетевых устройств продолжает быстро увеличиваться. Поэтому заявленное изобретение не должно быть ограничено никаким единственным вариантом воплощения, а скорее должно быть истолковано во всей широте объема, определяемого в соответствии с приложенной формулой изобретения.

Claims (11)

1. Способ совместного использования страниц между виртуальными машинами, работающими с использованием ресурсов главного компьютера, при этом способ содержит этапы, на которых:
выделяют временный диапазон гостевых физических адресов первой виртуальной машины для совместного использования страниц между виртуальными машинами;
принимают от второй виртуальной машины запрос на доступ к страницам, доступным для первой виртуальной машины, при этом запрос принимается программным обеспечением виртуализации на главном компьютере;
увеличивают значение опорного счетчика незавершенных доступов для указания незавершенной передачи прямого доступа к памяти (DMA) и удостоверяются в том, что отображение гостевых физических адресов на физические адреса главного компьютера для упомянутых страниц является действительным и вектор исключения DMA разрешает доступ к этим страницам;
отображают страницы в часть временного диапазона гостевых физических адресов первой виртуальной машины;
предоставляют второй виртуальной машине возможность доступа к страницам, доступным для первой виртуальной машины, посредством настройки контроллера DMA, так чтобы передавать информацию между второй виртуальной машиной и диапазоном физических адресов главного компьютера;
завершают доступ второй виртуальной машины к страницам и уведомляют программное обеспечение виртуализации о завершении доступа;
уменьшают значение опорного счетчика незавершенных доступов к страницам посредством установки вектора исключения DMA так, чтобы исключить выполнение контроллером DMA операций в отношении страниц, если значение опорного счетчика уменьшено до нуля; и
удаляют отображение страниц из временного диапазона гостевых физических адресов, если значение опорного счетчика равно нулю.
2. Способ по п.1, в котором при приеме запроса от второй виртуальной машины на доступ к страницам, доступным для первой виртуальной машины, принимают запрос DMA от второй виртуальной машины на доступ к страницам, отображенным на первую виртуальную машину.
3. Способ по п.1, в котором при завершении доступа к страницам второй виртуальной машины и уведомлении программного обеспечения виртуализации о завершении доступа принимают указание от аппаратных средств главного компьютера, что операции DMA завершены, и посылают сообщение о завершении от первой виртуальной машины на вторую виртуальную машину, причем вторая виртуальная машина уведомляет программное обеспечение виртуализации о завершении.
4. Способ по п.1, в котором при удалении отображения страниц из временного диапазона гостевых физических адресов дополнительно отменяют отображение элементов страниц из одного или более из таблицы теневых страниц и буфера быстрого преобразования адреса.
5. Компьютерная система для совместного использования страниц между виртуальными машинами, содержащая:
главный компьютер, который имеет аппаратные ресурсы, доступные для множества виртуальных машин;
программное обеспечение виртуализации, которое содержит интерфейс между главным компьютером и любой из упомянутого множества виртуальных машин;
первую виртуальную машину и вторую виртуальную машину, при этом первая виртуальная машина имеет доступ к по меньшей мере одному страничному ресурсу;
временный диапазон гостевых физических адресов первой виртуальной машины для совместного использования страниц между виртуальными машинами;
главный процессор, имеющий доступ к памяти главного компьютера, которая имеет команды, которые при их исполнении выполняют способ, содержащий этапы, на которых:
принимают от второй виртуальной машины запрос на доступ к страницам, доступным для первой виртуальной машины, при этом запрос принимается программным обеспечением виртуализации;
увеличивают значение опорного счетчика незавершенных доступов для указания незавершенной передачи прямого доступа к памяти (DMA) и удостоверяются в том, что отображение гостевых физических адресов на физические адреса главного компьютера для упомянутых страниц является действительным и вектор исключения DMA разрешает доступ к этим страницам;
отображают страницы в часть временного диапазона гостевых физических адресов; предоставляют второй виртуальной машине возможность доступа к страницам, доступным для первой виртуальной машины, посредством настройки контроллера DMA, так чтобы передавать информацию между второй виртуальной машиной и диапазоном физических адресов главного компьютера;
уведомляют программное обеспечение виртуализации о завершении доступа;
уменьшают значение опорного счетчика незавершенных доступов к страницам посредством установки вектора исключения DMA так, чтобы исключить выполнение контроллером DMA операций в отношении страниц, если значение опорного счетчика уменьшено до нуля; и
удаляют отображение страниц из временного диапазона гостевых физических адресов, если значение опорного счетчика равно нулю.
6. Система по п.5, дополнительно содержащая по меньшей мере одно из буфера быстрого преобразования адреса и таблицы теневых страниц, причем это по меньшей мере одно из буфера быстрого преобразования адреса и таблицы теневых страниц обновляется в результате этапа способа, на котором удаляют отображение страниц.
7. Система по п.6, в которой при удалении отображения страниц из временного диапазона гостевых физических адресов дополнительно отменяют отображение элементов страниц из одного или более из таблицы теневых страниц и буфера быстрого преобразования адреса.
8. Система по п.5, в которой при завершении доступа к страницам второй виртуальной машины и уведомлении программного обеспечения виртуализации о завершении доступа принимают указание от контроллера DMA, что передача информации завершена, и посылают сообщение о завершении от первой виртуальной машины на вторую виртуальную машину, причем вторая виртуальная машина уведомляет программное обеспечение виртуализации о завершении.
9. Машиночитаемый носитель, имеющий машиноисполняемые команды для выполнения способа совместного использования страниц между виртуальными машинами, работающими с использованием ресурсов с главного компьютера, причем способ содержит этапы, на которых:
выделяют временный диапазон гостевых физических адресов первой виртуальной машины для совместного использования страниц между виртуальными машинами;
принимают от второй виртуальной машины запрос на доступ к страницам, доступным для первой виртуальной машины, при этом запрос принимается программным обеспечением виртуализации на главном компьютере;
увеличивают значение опорного счетчика незавершенных доступов для указания незавершенной передачи прямого доступа к памяти (DMA) и удостоверяются в том, что отображение гостевых физических адресов на физические адреса главного компьютера для упомянутых страниц является действительным и вектор исключения DMA разрешает доступ к этим страницам, при этом опорный счетчик функционирует для блокирования других доступов к страницам;
отображают страницы в часть временного диапазона гостевых физических адресов первой виртуальной машины;
предоставляют второй виртуальной машине возможность доступа к страницам, доступным для первой виртуальной машины, посредством настройки контроллера DMA, так чтобы передавать информацию между второй виртуальной машиной и диапазоном физических адресов главного компьютера;
завершают доступ второй виртуальной машины к страницам и уведомляют программное обеспечение виртуализации о завершении доступа;
уменьшают значение опорного счетчика незавершенных доступов к страницам посредством установки вектора исключения DMA так, чтобы исключить выполнение контроллером DMA операций в отношении страниц, если значение опорного счетчика уменьшено до нуля; и
удаляют отображение страниц из временного диапазона гостевых физических адресов, если значение опорного счетчика равно нулю.
10. Машиночитаемый носитель по п.9, в котором при приеме запроса от второй виртуальной машины на доступ к страницам, доступным для первой виртуальной машины, принимают запрос DMA от второй виртуальной машины на доступ к страницам, отображенным на первую виртуальную машину.
11. Машиночитаемый носитель по п.9, в котором при завершении доступа к страницам второй виртуальной машины и уведомлении программного обеспечения виртуализации о завершении доступа принимают указание от аппаратных средств главного компьютера, что операции DMA завершены, и посылают сообщение о завершении от первой виртуальной машины на вторую виртуальную машину, причем вторая виртуальная машина уведомляет программное обеспечение виртуализации о завершении.
RU2006103559/09A 2005-03-08 2006-02-07 Способ и система для виртуализации гостевого физического адреса в среде виртуальной машины RU2393534C2 (ru)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/075,219 US7334076B2 (en) 2005-03-08 2005-03-08 Method and system for a guest physical address virtualization in a virtual machine environment
US11/075,219 2005-03-08

Publications (2)

Publication Number Publication Date
RU2006103559A RU2006103559A (ru) 2007-08-20
RU2393534C2 true RU2393534C2 (ru) 2010-06-27

Family

ID=36579174

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2006103559/09A RU2393534C2 (ru) 2005-03-08 2006-02-07 Способ и система для виртуализации гостевого физического адреса в среде виртуальной машины

Country Status (13)

Country Link
US (1) US7334076B2 (ru)
EP (1) EP1701268B1 (ru)
JP (1) JP4237190B2 (ru)
KR (1) KR20060099404A (ru)
CN (1) CN100578471C (ru)
AT (1) ATE521036T1 (ru)
AU (1) AU2006200312A1 (ru)
BR (1) BRPI0600347A (ru)
CA (1) CA2535484A1 (ru)
MX (1) MXPA06001608A (ru)
RU (1) RU2393534C2 (ru)
TW (1) TW200634551A (ru)
ZA (1) ZA200601080B (ru)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2616545C2 (ru) * 2011-12-14 2017-04-17 МАЙКРОСОФТ ТЕКНОЛОДЖИ ЛАЙСЕНСИНГ, ЭлЭлСи Подкачка рабочего набора, используя последовательно упорядоченный файл подкачки
RU2681358C1 (ru) * 2015-04-09 2019-03-06 Хуавэй Текнолоджиз Ко., Лтд. Способ и устройство для обработки ошибок на основе виртуализации сетевых функций
US10908968B2 (en) 2009-03-26 2021-02-02 Microsoft Technology Licensing, Llc Instantiating a virtual machine with a virtual non-uniform memory architecture and determining a highest detected NUMA ratio in a datacenter

Families Citing this family (102)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2864398A1 (fr) * 2003-12-23 2005-06-24 France Telecom Terminal de telecommunication a deux espaces d'execution
US7299337B2 (en) * 2005-05-12 2007-11-20 Traut Eric P Enhanced shadow page table algorithms
US7774514B2 (en) * 2005-05-16 2010-08-10 Infortrend Technology, Inc. Method of transmitting data between storage virtualization controllers and storage virtualization controller designed to implement the method
US7467292B2 (en) * 2005-05-19 2008-12-16 Dell Products L.P. Method and system for migrating information between information handling systems
US7370137B2 (en) * 2005-06-06 2008-05-06 Intel Corporation Inter-domain data mover for a memory-to-memory copy engine
US20060288130A1 (en) * 2005-06-21 2006-12-21 Rajesh Madukkarumukumana Address window support for direct memory access translation
US8423747B2 (en) 2008-06-30 2013-04-16 Intel Corporation Copy equivalent protection using secure page flipping for software components within an execution environment
US7426627B2 (en) * 2006-03-10 2008-09-16 Microsoft Corporation Selective address translation for a resource such as a hardware device
US20070220217A1 (en) * 2006-03-17 2007-09-20 Udaya Shankara Communication Between Virtual Machines
US7636831B1 (en) * 2006-03-31 2009-12-22 Vmware, Inc. Optimization of reverse mappings for immutable guest physical pages of virtual memories in a virtualized computer system
DE102006032832A1 (de) * 2006-07-14 2008-01-17 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Netzwerksystem und Verfahren zur Steuerung verteilter Speicher
US7490191B2 (en) * 2006-09-22 2009-02-10 Intel Corporation Sharing information between guests in a virtual machine environment
US7657659B1 (en) * 2006-11-30 2010-02-02 Vmware, Inc. Partial copying of data to transmit buffer for virtual network device
US7685401B2 (en) * 2006-12-27 2010-03-23 Intel Corporation Guest to host address translation for devices to access memory in a partitioned system
JP4952308B2 (ja) 2007-03-09 2012-06-13 日本電気株式会社 メモリ共有システム、方法、及び、プログラム
JP2010522370A (ja) * 2007-03-20 2010-07-01 サンギュ イ 移動型仮想マシンイメージ
US7984483B2 (en) 2007-04-25 2011-07-19 Acxess, Inc. System and method for working in a virtualized computing environment through secure access
US8799620B2 (en) 2007-06-01 2014-08-05 Intel Corporation Linear to physical address translation with support for page attributes
US8078827B2 (en) * 2007-07-05 2011-12-13 International Business Machines Corporation Method and apparatus for caching of page translations for virtual machines
EP2189902A1 (en) * 2007-09-12 2010-05-26 Mitsubishi Electric Corporation Information processor
US7890472B2 (en) 2007-09-18 2011-02-15 Microsoft Corporation Parallel nested transactions in transactional memory
US8117418B1 (en) * 2007-11-16 2012-02-14 Tilera Corporation Method and system for managing virtual addresses of a plurality of processes corresponding to an application
US9418220B1 (en) * 2008-01-28 2016-08-16 Hewlett Packard Enterprise Development Lp Controlling access to memory using a controller that performs cryptographic functions
US8104083B1 (en) * 2008-03-31 2012-01-24 Symantec Corporation Virtual machine file system content protection system and method
US8230155B2 (en) 2008-06-26 2012-07-24 Microsoft Corporation Direct memory access filter for virtualized operating systems
US8151032B2 (en) * 2008-06-26 2012-04-03 Microsoft Corporation Direct memory access filter for virtualized operating systems
JP5146174B2 (ja) * 2008-07-28 2013-02-20 富士通株式会社 仮想マシンモニタ装置およびプログラム,ならびに仮想マシン間メモリ共有管理方法
US8028113B2 (en) * 2008-08-15 2011-09-27 International Business Machines Corporation Methods and systems for deadlock-free allocation of memory
US9450960B1 (en) 2008-11-05 2016-09-20 Symantec Corporation Virtual machine file system restriction system and method
US10255463B2 (en) * 2008-11-17 2019-04-09 International Business Machines Corporation Secure computer architecture
US8135937B2 (en) 2008-11-17 2012-03-13 International Business Machines Corporation Logical partition memory
US8301863B2 (en) * 2008-11-17 2012-10-30 International Business Machines Corporation Recursive logical partition real memory map
CN101800730B (zh) * 2009-02-09 2013-02-27 国际商业机器公司 安全增强的虚拟机通信方法和虚拟机系统
KR101144346B1 (ko) * 2009-02-20 2012-05-11 에스케이플래닛 주식회사 자바 애플리케이션 관리 방법 및 이를 실현시키기 위한 프로그램을 기록한 컴퓨터로 판독 가능한 기록 매체
CN101819564B (zh) 2009-02-26 2013-04-17 国际商业机器公司 协助在虚拟机之间进行通信的方法和装置
US9529636B2 (en) 2009-03-26 2016-12-27 Microsoft Technology Licensing, Llc System and method for adjusting guest memory allocation based on memory pressure in virtual NUMA nodes of a virtual machine
US8225069B2 (en) * 2009-03-31 2012-07-17 Intel Corporation Control of on-die system fabric blocks
JP5246014B2 (ja) * 2009-04-22 2013-07-24 富士通株式会社 仮想化プログラム、仮想化処理方法及び装置
US8458368B2 (en) * 2009-05-26 2013-06-04 Oracle America, Inc. System and method for discovering and protecting shared allocated resources in a shared virtualized I/O device
US8799879B2 (en) * 2009-06-30 2014-08-05 Oracle America, Inc. Method and apparatus for protecting translated code in a virtual machine
US8270405B2 (en) * 2009-06-30 2012-09-18 Intel Corporation Multicast support on a switch for PCIe endpoint devices
US8521919B2 (en) * 2009-06-30 2013-08-27 International Business Machines Corporation Direct memory access in a computing environment
US9389895B2 (en) * 2009-12-17 2016-07-12 Microsoft Technology Licensing, Llc Virtual storage target offload techniques
KR101145144B1 (ko) * 2010-11-23 2012-05-14 한국과학기술정보연구원 가상머신 스케줄링 방법 및 시스템
US9606936B2 (en) * 2010-12-16 2017-03-28 Advanced Micro Devices, Inc. Generalized control registers
US8755283B2 (en) 2010-12-17 2014-06-17 Microsoft Corporation Synchronizing state among load balancer components
JP5573649B2 (ja) 2010-12-17 2014-08-20 富士通株式会社 情報処理装置
US8612550B2 (en) 2011-02-07 2013-12-17 Microsoft Corporation Proxy-based cache content distribution and affinity
US9792136B2 (en) * 2011-04-28 2017-10-17 Microsoft Technology Licensing, Llc Hardware assisted inter hypervisor partition data transfers
KR101303079B1 (ko) * 2011-05-04 2013-09-03 한국과학기술원 멀티-코어 기반의 가상화 환경에서 캐쉬 일관성을 제어하는 장치 및 방법
US8527544B1 (en) * 2011-08-11 2013-09-03 Pure Storage Inc. Garbage collection in a storage system
WO2013032442A1 (en) 2011-08-30 2013-03-07 Hewlett-Packard Development Company , L.P. Virtual high privilege mode for a system management request
JP5809362B2 (ja) 2011-08-30 2015-11-10 ヒューレット−パッカード デベロップメント カンパニー エル.ピー.Hewlett‐Packard Development Company, L.P. 仮想トラステッドランタイムbiosとの通信
US8656137B2 (en) * 2011-09-01 2014-02-18 Qualcomm Incorporated Computer system with processor local coherency for virtualized input/output
US9146785B2 (en) 2011-09-14 2015-09-29 Microsoft Technology Licensing, Llc Application acceleration in a virtualized environment
JP5922898B2 (ja) 2011-09-15 2016-05-24 キヤノン株式会社 情報処理装置、通信方法およびプログラム
WO2013048943A1 (en) 2011-09-30 2013-04-04 Intel Corporation Active state power management (aspm) to reduce power consumption by pci express components
US9817733B2 (en) 2011-10-05 2017-11-14 International Business Machines Corporation Resource recovery for checkpoint-based high-availability in a virtualized environment
BR112014009445B1 (pt) * 2011-10-21 2021-10-13 Hewlett-Packard Development Company, L.P. Método para um dispositivo eletrônico, meio de armazenagem não-transitório legível por máquina armazenando instruções e dispositivo eletrônico
BR112014009356A2 (pt) * 2011-10-21 2017-04-18 Hewlett Packard Development Co Lp método para um dispositivo eletrônico, dispositivo eletrônico e artigo
CN103136059A (zh) * 2011-11-24 2013-06-05 中兴通讯股份有限公司 一种内存区间相互隔离的程序之间的通讯方法及处理单元
US8805990B2 (en) * 2012-07-12 2014-08-12 Microsoft Corporation Load balancing for single-address tenants
US9373182B2 (en) * 2012-08-17 2016-06-21 Intel Corporation Memory sharing via a unified memory architecture
US9246998B2 (en) 2012-10-16 2016-01-26 Microsoft Technology Licensing, Llc Load balancer bypass
US9841927B2 (en) * 2013-09-23 2017-12-12 Red Hat Israel, Ltd Remote direct memory access with copy-on-write support
CN104408222B (zh) * 2014-10-13 2017-05-24 中国电子科技集团公司第十研究所 实时分布式仿真平台可重构方法
US9619401B2 (en) * 2015-02-20 2017-04-11 Wisconsin Alumni Research Foundation Efficient memory management system for computers supporting virtual machines
US20160246715A1 (en) * 2015-02-23 2016-08-25 Advanced Micro Devices, Inc. Memory module with volatile and non-volatile storage arrays
GB2539429B (en) 2015-06-16 2017-09-06 Advanced Risc Mach Ltd Address translation
GB2539428B (en) 2015-06-16 2020-09-09 Advanced Risc Mach Ltd Data processing apparatus and method with ownership table
GB2539433B8 (en) 2015-06-16 2018-02-21 Advanced Risc Mach Ltd Protected exception handling
GB2539435B8 (en) 2015-06-16 2018-02-21 Advanced Risc Mach Ltd Data processing memory access control, in which an owning process for a region of memory is specified independently of privilege level
US10521354B2 (en) * 2015-06-17 2019-12-31 Intel Corporation Computing apparatus and method with persistent memory
US10152612B2 (en) * 2015-09-25 2018-12-11 Intel Corporation Cryptographic operations for secure page mapping in a virtual machine environment
CN108139982B (zh) 2016-05-31 2022-04-08 安华高科技股份有限公司 多信道输入/输出虚拟化
US10241931B2 (en) * 2016-07-29 2019-03-26 Advanced Micro Devices, Inc. Controlling access to pages in a memory in a computing device
US10891237B2 (en) 2016-09-26 2021-01-12 Intel Corporation Apparatus and method for mediate pass through and shared memory page merge
US10180854B2 (en) * 2016-09-28 2019-01-15 Intel Corporation Processor extensions to identify and avoid tracking conflicts between virtual machine monitor and guest virtual machine
US11086632B2 (en) * 2017-02-10 2021-08-10 Alibaba Group Holding Limited Method and apparatus for providing accelerated access to a memory system
US10394585B2 (en) * 2017-03-07 2019-08-27 Microsoft Technology Licensing, Llc Managing guest partition access to physical devices
US10521273B2 (en) * 2017-06-08 2019-12-31 Cisco Technology, Inc. Physical partitioning of computing resources for server virtualization
US10733112B2 (en) * 2017-06-16 2020-08-04 Alibaba Group Holding Limited Method and apparatus for hardware virtualization
US10733096B2 (en) 2017-11-22 2020-08-04 Samsung Electronics Co., Ltd. System and method for frame buffer
US11416395B2 (en) * 2018-02-05 2022-08-16 Micron Technology, Inc. Memory virtualization for accessing heterogeneous memory components
US10782908B2 (en) 2018-02-05 2020-09-22 Micron Technology, Inc. Predictive data orchestration in multi-tier memory systems
US11099789B2 (en) * 2018-02-05 2021-08-24 Micron Technology, Inc. Remote direct memory access in multi-tier memory systems
US10880401B2 (en) 2018-02-12 2020-12-29 Micron Technology, Inc. Optimization of data access and communication in memory systems
US11321249B2 (en) * 2018-03-26 2022-05-03 Samsung Electronics Co., Ltd. Mechanism to autonomously manage SSDS in an array
US10877892B2 (en) 2018-07-11 2020-12-29 Micron Technology, Inc. Predictive paging to accelerate memory access
JP7384900B2 (ja) * 2018-08-03 2023-11-21 エヌビディア コーポレーション 仮想マシン・メモリの安全なアクセス
US10833949B2 (en) * 2018-11-20 2020-11-10 Amazon Technologies, Inc Extension resource groups of provider network services
US10769076B2 (en) 2018-11-21 2020-09-08 Nvidia Corporation Distributed address translation in a multi-node interconnect fabric
KR20200093168A (ko) * 2019-01-28 2020-08-05 삼성전자주식회사 전자 장치 및 전자 장치의 제어 방법
US10852949B2 (en) 2019-04-15 2020-12-01 Micron Technology, Inc. Predictive data pre-fetching in a data storage device
CN110456994B (zh) * 2019-07-19 2023-03-10 南京芯驰半导体科技有限公司 一种远程显示系统及方法
US11064017B2 (en) 2019-09-24 2021-07-13 Amazon Technologies, Inc. Peripheral device enabling virtualized computing service extensions
US11520530B2 (en) 2019-09-24 2022-12-06 Amazon Technologies, Inc. Peripheral device for configuring compute instances at client-selected servers
US11569997B1 (en) 2020-03-09 2023-01-31 Amazon Technologies, Inc. Security mechanisms for data plane extensions of provider network services
CN113577757B (zh) * 2021-08-02 2024-05-28 西安万像电子科技有限公司 一种游戏数据的处理方法、电子设备及存储介质
CN113613182B (zh) * 2021-08-10 2023-03-21 中国平安财产保险股份有限公司 短信发送方法、计算机设备及可读存储介质
CN114218153B (zh) * 2021-12-06 2023-11-14 海飞科(南京)信息技术有限公司 用于存储管理的方法、介质、程序产品、系统和装置
CN114201444B (zh) * 2021-12-06 2023-11-14 海飞科(南京)信息技术有限公司 用于存储管理的方法、介质、程序产品、系统和装置

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4742450A (en) 1986-01-16 1988-05-03 International Business Machines Corporation Method to share copy on write segment for mapped files
US6075938A (en) 1997-06-10 2000-06-13 The Board Of Trustees Of The Leland Stanford Junior University Virtual machine monitors for scalable multiprocessors
US6738977B1 (en) * 2000-05-31 2004-05-18 International Business Machines Corporation Class sharing between multiple virtual machines
GB2369694B (en) * 2000-11-29 2002-10-16 Sun Microsystems Inc Efficient memory modification tracking
US6789156B1 (en) 2001-05-22 2004-09-07 Vmware, Inc. Content-based, transparent sharing of memory units
US7603551B2 (en) * 2003-04-18 2009-10-13 Advanced Micro Devices, Inc. Initialization of a computer system including a secure execution mode-capable processor
US7181744B2 (en) * 2002-10-24 2007-02-20 International Business Machines Corporation System and method for transferring data between virtual machines or other computer entities

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10908968B2 (en) 2009-03-26 2021-02-02 Microsoft Technology Licensing, Llc Instantiating a virtual machine with a virtual non-uniform memory architecture and determining a highest detected NUMA ratio in a datacenter
RU2616545C2 (ru) * 2011-12-14 2017-04-17 МАЙКРОСОФТ ТЕКНОЛОДЖИ ЛАЙСЕНСИНГ, ЭлЭлСи Подкачка рабочего набора, используя последовательно упорядоченный файл подкачки
RU2681358C1 (ru) * 2015-04-09 2019-03-06 Хуавэй Текнолоджиз Ко., Лтд. Способ и устройство для обработки ошибок на основе виртуализации сетевых функций
US10608871B2 (en) 2015-04-09 2020-03-31 Huawei Technologies Co., Ltd. Network functions virtualization based fault processing method and apparatus

Also Published As

Publication number Publication date
EP1701268B1 (en) 2011-08-17
KR20060099404A (ko) 2006-09-19
TW200634551A (en) 2006-10-01
ATE521036T1 (de) 2011-09-15
RU2006103559A (ru) 2007-08-20
US7334076B2 (en) 2008-02-19
CN100578471C (zh) 2010-01-06
US20060206658A1 (en) 2006-09-14
CN1831790A (zh) 2006-09-13
JP2006252554A (ja) 2006-09-21
AU2006200312A1 (en) 2006-09-28
EP1701268A3 (en) 2006-10-11
EP1701268A2 (en) 2006-09-13
CA2535484A1 (en) 2006-09-08
JP4237190B2 (ja) 2009-03-11
ZA200601080B (en) 2008-04-30
MXPA06001608A (es) 2006-09-20
BRPI0600347A (pt) 2006-10-31

Similar Documents

Publication Publication Date Title
RU2393534C2 (ru) Способ и система для виртуализации гостевого физического адреса в среде виртуальной машины
KR102047558B1 (ko) 가상 디스크 저장 기술
US9361218B2 (en) Method of allocating referenced memory pages from a free list
US7814287B2 (en) Using writeable page tables for memory address translation in a hypervisor environment
US7363463B2 (en) Method and system for caching address translations from multiple address spaces in virtual machines
US7428626B2 (en) Method and system for a second level address translation in a virtual machine environment
US20100050173A1 (en) Provisioning Virtual Resources Using Name Resolution
US20120036334A1 (en) Access to shared memory segments by multiple application processes
US8316120B2 (en) Applicability detection using third party target state
US11010355B2 (en) Layer-based file access method and apparatus of virtualization instance
US8255922B1 (en) Mechanism for enabling multiple processes to share physical memory
JP2019523920A (ja) ページ・フォールト解決法
US11321239B2 (en) Dynamically joining and splitting dynamic address translation (DAT) tables based on operational context
JP2022104879A (ja) 境界を越えた参照から保護するための方法、システム、およびコンピュータ・プログラム製品(境界を越えたメモリ参照から保護するための専用の境界情報レジスタ・ファイル)
JP7398472B2 (ja) 割り込みイネーブルのためのセキュア・インターフェース制御ハイレベル命令インターセプト
JP2022522849A (ja) セキュア仮想マシンのディスパッチ
JP2022522679A (ja) セキュア・インターフェース・コントロールの通信インターフェース
US10228859B2 (en) Efficiency in active memory sharing
US20230029331A1 (en) Dynamically allocatable physically addressed metadata storage
CN114003335A (zh) 一种虚拟机热迁移的方法、装置、设备和存储介质
CN115221073A (zh) 用于运行云业务实例的物理服务器的内存管理方法和装置

Legal Events

Date Code Title Description
MM4A The patent is invalid due to non-payment of fees

Effective date: 20150208