【问题标题】:Guest OS in VirtualBox using more cores than allocatedVirtualBox 中的来宾操作系统使用的内核数多于分配的内核数
【发布时间】:2015-12-11 11:27:46
【问题描述】:

我在 VirtualBox 中做一个实验。这是我的设置。

我在客户操作系统中运行了一个简单的代码

# include <stdio.h>
# include <stdlib.h>

int main()
{
    while(1)
    {
        int * p = (int *)malloc(sizeof(int));
    }

    return 0;
}

我看到主机操作系统的所有 4 个内核同时出现峰值。

我认为来宾操作系统应该使用单核。 我做错了什么或者这种行为是否正常(如果是,那么为什么)?

PS:我的核心设置

【问题讨论】:

    标签: virtual-machine virtualbox ubuntu-10.04


    【解决方案1】:

    我的猜测是,虽然您的代码只占用一个内核,但您的程序在执行时可以在操作系统执行期间在不同内核上切换进出上下文。这就是为什么您会看到所有内核都已使用,但峰值出​​现在不同时间的原因。 (但这比查看资源监视器更准确)。

    【讨论】:

    • 我在想这个逻辑,但它会不会非常低效?
    • @xavier666,我不知道。我认为这可能是必要的,因为具有无限循环的程序(如您的示例)可能会阻止执行必要的操作系统进程。此外,与计算时间相比,如果设计得当,主机操作系统不应花费太多时间切换。
    猜你喜欢
    • 1970-01-01
    • 2019-06-02
    • 1970-01-01
    • 2014-04-23
    • 1970-01-01
    • 2016-10-21
    • 1970-01-01
    • 1970-01-01
    • 2020-03-21
    相关资源
    最近更新 更多