Hi,
Chris is correct that VM mostly executed in regular OS thread (called
EMT - emulation thread), things gets somewhat non-trivial when we talk
about priveledged guest execution. Guest R0 code is executed in
virtualized R0 (technically, in host kernel, inside ioctl() performed by
EMT), and in sense, R0 code has its own preemption mechanism (details
depends on virtualization technology used). Device emulation code is
also partially in R0, but probably not of much relevance here.
Guest SMP spawns multiple threads of execution (thus can use multiple
physical CPUs), and they interact via emulated interrupt controller (APIC)
and indirectly via shared resources locks (such as device lock).
Is there any specific problem you see?
Thanks,
Nikolay.
Christian Pötzsch пишет:
Hi,
AFAIK, there is one EMT thread per VM and as different VM's are
executed as different processes they are scheduled by the host OS
scheduler. In the SMP case is more than one EMT thread, but these
threads are schedules by the OS as well.
I will resent this to the dev mailing list, cause there are people
which know that stuff much more. Please ask and answer there.
Christian
On 7/2/10 7:19 AM, Suk Kyu Lee wrote:
Hello,
My name is Suk Kyu Lee and I’m a graduate research assistant at Korea
University.
I’m currently doing a research regarding about virtualization and was
using the VirtualBox OSE 3.1.6.
I was wondering if it is possible to know the general idea of the how
the VM scheduling mechanism within the Virtual Box.
I was having some problem with the code and it appears that there are
EMT thread within each VM, but couldn’t find the location within the
code regarding about how the VMM schedules the VM.
Thank you.
Sincerely,
Suk Kyu Lee
_______________________________________________
vbox-dev mailing list
vbox-dev@virtualbox.org
http://vbox.innotek.de/mailman/listinfo/vbox-dev