【问题标题】:guest threads in qemu-kvmqemu-kvm 中的来宾线程
【发布时间】:2018-01-19 20:11:38
【问题描述】:

我对 qemu 和虚拟化还很陌生,有一些不清楚的地方。

据我所知,每个 vcpu 都分配给一个主机线程。 例如,如果有四个 vcpus,则有四个主机线程运行每个 vcpus。
调度来宾线程取决于主机调度程序,主机调度程序将 CPU 资源分配给每个 vcpus。 到目前为止我是对的吗?

那么,我想知道谁负责调度来宾线程?主机调度程序或访客调度程序(它甚至存在)吗?
我知道主机调度程序处理 vcpus。但是一般来说,来宾机器中的线程比 vcpus 多。来宾线程如何获取 CPU 资源?
我发现有从内核文档创建 vm 和 vcpu 的 KVM API,但我找不到有关来宾线程的资料。如果有一些我可以参考的材料,请告诉我。

【问题讨论】:

    标签: virtualization qemu kvm


    【解决方案1】:

    VM 中运行着一个普通的操作系统。它的调度程序将线程调度到 (V)CPU 上,就像任何操作系统一样。

    【讨论】:

    • 您的意思是主机将 CPU 资源分配给 vCPU,而客户调度程序决定哪些客户线程将在给定时间内运行?那么来宾调度程序是如何调用的呢?据我所知,定时器中断将调用调度程序。主机定时器中断是否中继到了gust机器?
    • VM 的全部意义在于它看起来就像一台真实的机器。因此来宾可以访问计时器和中断以及页面错误和系统调用,就像它在物理平台上运行一样。 VMM 有责任让这些工作按应有的方式工作,包括让计时器在客人对它们进行编程时触发。
    猜你喜欢
    • 2022-06-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-29
    相关资源
    最近更新 更多