知识卡片
授权表机制让虚拟机间传数据时避免不必要的内存复制
内容
用CPU把数据从一个地址空间复制到另一个开销很高,理想是让硬件直接内存访问,完全不用CPU参与。但虚拟机间不能简单互相读对方内存,否则破坏隔离性。Xen的解法是授权表:每个虚拟机维护表明确记录哪些内存页允许被哪些其他虚拟机访问,系统管理程序保证只有指定接收方能映射该内存,既避免额外复制又不需完全互信。
参考来源
- 位置:《架构之美》第7章《Xen和虚拟化之美》7.5节《Xen的变换形式》(源文件:程序之美系列套装(6册)团队之美、项目管理之美、架构之美、数据之美、测试之美、安全之美/_epub-src/OEBPS/Text/part0165.xhtml)
- 结论依据:原文明确"Xen支持一种称为授权表(grant table)的共享内存机制,由此每个虚拟机维护一张定义它的哪些页能够由其他虚拟机访问的表……系统管理程序确保只有预期的接收者可以映射这个授权引用,这反过来维持了内存的隔离性"。
- 原始内容:Xen支持一种称为授权表(grant table)的共享内存机制,由此每个虚拟机维护一张定义它的哪些页能够由其他虚拟机访问的表。这张表中的索引称为授权索引(grant reference),当给与另一个虚拟机时,它代表一种能力。