KVM实战系列之CPU

vCPU概念

QEMU/KVM为客户机提供一套完整的硬件系统环境,在客户机看来,其所拥有的 CPU即是vCPU(virtual CPU)。在KVM环境中,每个客户机都是一个标准的Linux进程 (QEMU进程),而每一个vCPU在宿主机中是QEMU进程派生的一个普通线程。 在普通的Linux系统中,进程一般有两种执行模式:内核模式用户模式。而在KVM 环境中,增加了第3种模式:客户模式
vCPU在3种执行模式下的不同分工如下:

  • 用户模式(User Mode)

主要处理I/O的模拟和管理,由QEMU的代码实现。

  • 内核模式(Kernel Mode)

主要处理特别需要高性能和安全相关的指令,如处理客户模式到内核模式的转换,处 理客户模式下的I/O指令或其他特权指令引起的退出(VM-Exit),处理影子内存管理 (shadow MMU)。

  • 客户模式(Guest Mode)

主要执行Guest中的大部分指令,I/O和一些特权指令除外(它们会引起VM-Exit,被 Hypervisor截获并模拟)。

KVM中的一个客户机是作为一个 用户空间进程(qemu)运行的,它和其他普通的用户空间进程(如gnome、kde、 firefox、chrome等)一样由内核来调度,使其运行在物理CPU上,不过它由kvm模块的控 制,可以在前面介绍的3种执行模式下运行。多个客户机就是宿主机中的多个QEMU进 程,而一个客户机的多个vCPU就是一个QEMU进程中的多个线程。和普通操作系统一 样,在客户机系统中,同样分别运行着客户机的内核和客户机的用户空间应用程序。

你可能感兴趣的:(KVM实战系列之CPU)