在hypervisor中,除了少量的共享内存外,内存和设备仅由单个实体(guest 或hypervisor主机)拥有。
在不同VM中运行的多个guests 可以使用相同的系统资源,例如物理CPU。 这些资源的管理完全属于hypervisor的领域。系统集成商的职责仅限于为每个VM配置适当数量的vCPU、设置其优先级以及将vCPU线程绑定(固定)到特定物理CPU的(very important)。 如果需要,参考章节的SMP。
其他资源(如内存和物理设备)由虚拟机配置分配给特定的虚拟机,hypervisor使用这些配置来组装虚拟机 (查看Configuration章节). 这些资源成为在每个VM中运行的guest的专有财产。它们不能在guests之间共享,也不能在两个独立的板上共享物理设备。
共享内存
当您为VM配置RAM和ROM时,让qvm进程为内存选择host-physical地址通常是最佳策略,因为该进程不会为多个VM分配相同的内存位置。 然而,小的shared memory区域可以是在不同VM中的访客之间传递数据的有效机制。 如果需要配置共享内存区域,可以使用vdev(如vdev shmem)来利用hypervisor’s 的共享内存服务。
更多有关shared memory实现的信息,以及如何使用,参考Using a QNX Hypervisor System章节的Memory sharing。
共享设备
与内存一样,设备不能直接共享。虚拟设备(无论是仿真还是半虚拟化)要么是隐式的(在qvm过程代码中),要么是配置到VM中的共享对象; 因此它们对VM是专用的。物理设备可以作为 pass-through直接分配给guest ,也可以分配给hypervisor主机,并由guest 通过虚拟设备访问。 如果物理设备所有者以外的实体需要访问该设备,则必须通过设备所有者,就像设备物理上位于另一个板上一样。 如果设备由hypervisor主机拥有,则称为mediated sharing; 如果它是由另一位guest拥有的,这称为referred sharing。 更多信息,参考Shared devices。