Virtual machine VirtualBox中的来宾操作系统使用的内核数超过分配的内核数
我在VirtualBox中做一个实验。这是我的设置 我在来宾操作系统中运行了一个简单的代码Virtual machine VirtualBox中的来宾操作系统使用的内核数超过分配的内核数,virtual-machine,virtualbox,ubuntu-10.04,Virtual Machine,Virtualbox,Ubuntu 10.04,我在VirtualBox中做一个实验。这是我的设置 我在来宾操作系统中运行了一个简单的代码 # include <stdio.h> # include <stdlib.h> int main() { while(1) { int * p = (int *)malloc(sizeof(int)); } return 0; } #包括 #包括 int main() { 而(1) { int*p=(int*)malloc(
# include <stdio.h>
# include <stdlib.h>
int main()
{
while(1)
{
int * p = (int *)malloc(sizeof(int));
}
return 0;
}
#包括
#包括
int main()
{
而(1)
{
int*p=(int*)malloc(sizeof(int));
}
返回0;
}
我看到主机操作系统的所有4个内核中同时出现峰值
我认为来宾操作系统应该使用单核。
我做错了什么,或者这种行为正常吗(如果是,为什么)
PS:我的核心设置
我的猜测是,虽然您的代码只占用一个内核,但在操作系统执行过程中,您的程序在执行时可以在不同的内核上切换上下文。这就是为什么你看到所有的核心使用,但尖峰出现在不同的时间。(但这使得测量比查看资源监视器更准确)。我在考虑这个逻辑,但它不是非常低效吗?@xavier666,我不知道。我认为这可能是必要的,因为具有无限循环的程序(如您的示例)可能会阻止执行必要的操作系统进程。此外,如果设计良好,主机操作系统不应该花费太多的时间进行切换,而不是花太多的时间进行计算。