虚拟化与多任务以及超线程有啥区别呢

你可以理解为它们是在不同的层面上提供对不同资源进行不同形式的“虚拟化”“:1. 超线程在硬件层面上提供对物理 CPU Core 的虚拟化。对于其上的软件而言,每个虚拟的 CPU Core,即逻辑 CPU Core 提供和物理 CPU Core 大致相同的功能和性能。2. 虚拟化可以理解为在操作系统内核层面上提供对宿主机上的所有硬件的虚拟化。对于其 (Hypervisor) 上所运行的操作系统内核和应用程序而言,每个虚拟化的硬件系统 (即虚拟机) 提供和实际的物理硬件大致相同的功能和性能。3. 多任务也可以理解为在操作系统层面上的对硬件资源的虚拟化。与 2 中的虚拟化不同的是,对于运行在操作系统上的程序而言,多任务”虚拟化“出的是抽象的硬件资源,例如 CPU 可能被抽象为 CPU 时间,内存可能被抽象为虚拟地址空间等。


    推荐阅读