1

我基本上想知道虚拟处理器到底是什么。在 IBM 的网站上,他们将其定义为:

“虚拟处理器是物理处理器核心对使用共享处理器的逻辑分区操作系统的表示。”

我的理解是,如果有 x 个处理器,每个处理器可以同时执行两个操作,那么系统可以同时执行 2x 个操作。但是虚拟处理器在哪里适合这个。我尝试查找逻辑分区和其他分区(例如主分区)之间的区别,但并不确定。

4

1 回答 1

1

我想在虚拟内存和虚拟处理器之间进行类比。

从期望开始:

  • 用户程序是针对内存外观的一组预期编写的(一个漂亮的扁平、大、连续的内存模型是最好的......)
  • 操作系统系统是针对硬件如何执行的一组预期编写的(哪些 CPU 保护模式操作可用,中断如何到达以及如何被阻止和处理,如何与 IO 设备通信等......)

意识到可以通过硬件或抽象层直接满足期望

  • 虚拟内存是一组(专门的,在简单芯片中找不到的)硬件工具和操作系统服务,它们会假装用户程序认为它有很好的、平坦的、大的、连续的内存空间,即使操作系统正在忙着分割真实的内存空间。内存分成小块,并将其中一些存储在磁盘上,将其他的带回来,否则对其进行真正的哈希处理。但是你的代码不在乎。一切正常。
  • 虚拟处理器系统是一组(专用的,不存在于消费类 CPU 中)硬件工具和管理程序服务,它们允许您的操作系统相信它可以直接访问具有预期保护模式、中断等的一个或多个处理器,即使管理程序正忙着在一个或多个真实处理器上交换整个操作系统上下文,开始和停止对 IO 总线的访问,等等。但是操作系统不在乎。一切正常。

执行此操作的硬件支持是最近才开始在“桌面”CPU 中提供的,但 Big Iron 已经拥有它很长时间了。它很有用有几个原因

  1. 保护。在适当保护的操作系统中,一个进程或用户很难监视另一个进程或用户。但是由于它们可以驻留在相同的上下文中,所以它仍然是可能的。虚拟化操作系统将它们划分为另一个更薄的通道,使数据泄漏和恶意行为变得更加困难。
  2. 稳健性。如果您可以将操作系统上下文交换进出,您可以将它们从一台机器迁移到另一个机器并检查点并重新启动。这允许计算机在自己的处理器上检测故障并正常恢复。

这些是让人们为 Big Iron 买单的东西(除了数百万个经过大量调试的关键任务代码之外)。

于 2010-11-09T20:12:09.447 回答