Abstract:
The policies and mechanisms of VCPU (virtual CPU) scheduling in a virtual machine system are key factors to determine the system performance. Because the architecture of the software stack in the virtual machine system is different from the traditional computer systems, when scheduling the VCPUs in virtual machines, simply adopting scheduling strategies and algorithms of existing operating systems without any modifications can lead to drastic degradation of the system performance. Moreover, with the multi-core technology being employed for physical processors, the complexity of the VCPU scheduling is increased. Firstly, the architecture of the virtual machine system and its two-stage scheduling framework are depicted and analyzed in detail in this paper. Because the deterministic mapping relationship between application threads and physical cores is difficult to establish in the two-stage framework, and part functions of operating systems move down to virtual machine monitor, VCPU scheduling will confront many problems and challenges that mainly embody four aspects: the semantic gap between guest operating systems and a virtual machine monitor, the synchronization mechanisms in a multiprocessor operating system, the structure of shared cache in multi-core processors and emerging asymmetric multi-core structure. And then advantages and limitations of the existing solutions for these problems are discussed and analyzed deeply, and suggestions for further researches are presented.