One or more virtual machines (VM's) run via a virtual machine monitor (VMM)
on a hardware platform that has a segmented memory architecture. Each VM
has at least one VM descriptor table that has, as entries, VM segment
descriptors. At least one VMM descriptor table is established, including
at least one shadow descriptor table that stores shadow descriptors for
certain of the VM segment descriptors, which are then shadowed
descriptors. The VMM compares the shadow descriptors with their respective
corresponding shadowed VM descriptors, detects any lack of correspondence
between the shadow descriptor table and the corresponding VM descriptor
table, and updates and thereby synchronizes each shadow descriptor with
its respective shadowed VM descriptor no later than, and preferably only
upon the first use of, the respective descriptor by the VM. Whenever the
VMM detects any attempt by the VM to load an usynchronized shadowed
descriptor, the VMM verifies that the VM is allowed to load it, and then
establishes synchronization for the pair of descriptors. One detection
mechanism is the tracing of entire memory pages in which VM descriptors
are stored; another involves sensing and setting the state of a segment
present bit for individual descriptors. The invention improves
virtualization performance by reducing the number of descriptors that need
to be kept coherent. The VMM also has a flexible mechanism to invalidate
descriptors, for example, when the VM unmaps or remaps the memory page it
is located in, or when the VM sets a new segment descriptor table.
One or more фактически машины (vM's) бегут через фактически монитор машины (VMM) на платформе аппаратных средств имеет поделенное на сегменты зодчество памяти. Каждый vm имеет по крайней мере одну таблицу дискриптора vm имеет, как входы, дискрипторы этапа vm. По крайней мере установлена одна таблица дискриптора VMM, вклюая по крайней мере одну таблицу дискриптора тени которая хранит дискрипторы тени для уверенного дискрипторами этапа vm, которые будут после этого затеняемые дискрипторы. VMM сравнивает дискрипторы тени с их соответственно соответствуя затеняемыми дискрипторами vm, обнаруживает любое отсутсвие корреспонденции между таблицей дискриптора тени и соответствуя таблицей дискриптора vm, и уточнения и таким образом синхронизирует каждый дискриптор тени с своим соответственно затеняемым дискриптором vm не более поздно чем, и предпочтительн только на первого пользование, соответственно дискриптор vm. Когда VMM обнаруживает любая попытка vm нагрузить usynchronized затеняемый дискриптор, VMM проверяет что vm позволен нагрузить его, и после этого устанавливает синхронизацию для пары дискрипторов. Одним механизмом обнаружения будет вычерчивание всех страниц памяти в дискрипторы vm хранятся; другое включает воспринять и установить положение настоящего момента этапа сдержанного для индивидуальных дискрипторов. Вымысел улучшает представление виртуализации путем уменьшение числа дискрипторов быть сдержанным когерентным. VMM также имеет гибкий механизм для того чтобы invalidate дискрипторы, например, когда unmaps vm или remaps страница памяти, котор она обнаружена местонахождение внутри, или когда vm устанавливает новую таблицу дискриптора этапа.