虚拟化技术:从多核处理器到虚拟集群的全面解析
1. 虚拟网卡与数据包传输
虚拟网卡对 AMD Lance Am79C970A 控制器进行建模。在客户操作系统中,Lance 控制器的设备驱动程序通过读写一系列虚拟 I/O 端口来发起数据包传输。每一次读写操作都会切换回 VMApp 以模拟 Lance 端口访问。当遇到序列中的最后一条 OUT 指令时,Lance 模拟器会调用对 VMNet 驱动程序的普通 write() 操作。接着,VMNet 驱动程序通过主机网卡将数据包传递到网络,然后 VMApp 切换回 VMM。这次切换会引发一个虚拟中断,以通知客户设备驱动程序数据包已发送。数据包接收过程则相反。
2. 多核处理器虚拟化
多核处理器虚拟化比单核处理器虚拟化更为复杂。尽管多核处理器通过在单个芯片中集成多个处理器核心声称具有更高的性能,但多核虚拟化给计算机架构师、编译器构造者、系统设计师和应用程序员带来了新的挑战,主要有两个难点:
- 应用程序并行化 :应用程序必须进行并行化以充分利用所有核心。
- 任务分配 :软件必须明确地将任务分配给各个核心,这是一个非常复杂的问题。
为应对第一个挑战,需要新的编程模型、语言和库来简化并行编程。第二个挑战催生了涉及调度算法和资源管理策略的研究。然而,这些努力难以在性能、复杂性和其他问题之间取得良好平衡。更糟糕的是,随着技术的发展,一种称为动态异构性的新挑战正在出现,即同一芯片上混合了胖 CPU 核心和瘦 GPU 核心,这进一步加剧了多核或众核资源管理的复杂性。
超级会员免费看
订阅专栏 解锁全文
40

被折叠的 条评论
为什么被折叠?



