我知道这听起来很普遍的问题。
考虑2操作系统的运行使用虚拟化说操作系统级虚拟化。 如果同时托pipe操作系统使用相同的资源,以及如何工作,如何处理并发?
虚拟化的操作系统从来没有真正看到物理资源,他们“认为”他们在虚拟化层模拟的其他硬件上运行; 所以,虽然虚拟机认为它有一个SCSI控制器和一个本地SCSI磁盘,也许这实际上映射到一个SAN上的LUN上的文件系统上的文件。
并发访问由虚拟化层处理,具体取决于资源types; 如果主机有四个物理CPU,两个虚拟机要分别使用一个,那么他们可以同时安全地完成这个任务,但是他们的工作量实际上将分配到两个物理CPU之间。 如果只有一个物理CPU,那么主机的调度程序将处理concurreny并给每个VM一些CPU时间。 每个资源(磁盘,networking等)都适用同样的原则。
从主机操作系统的angular度来看,一个虚拟机是一个进程,并且该进程正在像其他任何进程一样被分配资源。 这适用于IO处理,CPU排队等。
这是非常短暂的,当然,不会进入SMP,VT和VT-d
通常来宾操作系统不允许访问物理硬件。 他们看到一个虚拟的表示。 例如,他们有虚拟磁盘驱动器,通常映射到文件(但不一定)。 COM,打印机,networking等端口都以同样的方式工作。