2.3.3 PRTOS Hypervisor的多核支持

为了更清楚地描述PRTOS Hypervisor对多核处理器的支持情况,这里再次解释一下3个专用名词。

1)pCPU:硬件平台中可以识别出的物理CPU。

2)vCPU:PRTOS Hypervisor提供给分区的虚拟处理器。

3)分区:PRTOS Hypervisor提供的运行时环境,并提供给分区一组vCPU,这些vCPU对应物理环境中的pCPU。在PRTOS的设计中,vCPU和pCPU是多对多(MN)的关系。但是从系统的实时性角度考虑,每个分区中定义的vCPU的数量不应该超过硬件平台中pCPU的数量。

PRTOS的目标是向分区提供vCPU,就像支持多核的操作系统在没有虚拟化层的情况下提供pCPU的情况一样。从这个角度来看,虚拟化层的工作如下。

1)将所有pCPU虚拟化并映射到vCPU,提供vCPU给分区使用。

2)PRTOS Hypervisor在初始化阶段初始化每个pCPU。

3)初始化阶段结束后,开始执行循环调度表策略。

4)初始化每个分区中标识为vCPU0的虚拟CPU。从分区的角度来看,提供给分区的vCPU可以是一个或多个。

5)在只含有一个vCPU的分区中使用vCPU0标识这个vCPU,如图2-3a所示。

①PRTOS Hypervisor负责启动vCPU0。

②通过PRTOS系统配置文件,vCPU0可以分配给任何pCPU。

6)在多核分区中,只有vCPU0由PRTOS Hypervisor初始化,如图2-3b所示。

①在分区中,由vCPU0负责初始化剩余所需启动的vCPU。

②通过PRTOS系统配置文件,所有的vCPU都可以分配给任何pCPU。

图2-3 PRTOS单核/多核分区方案