http://www.ibm.com/developerworks/cn/aix/library/1207_weixy_powervmamd/ 的这个解释很棒!
这对这个概念,可以举一个形象例子,参照上图进行理解。在服务器上,有三个区 :vioc1,vioc2,vioc3。三个分区上分别有一个逻辑内存页:a,b,c,指向同一个物理内存页 A,A 中的内容是:甲。逻辑内存页 a,b,c 中的内容也是“甲”。
若三个分区均没有修改内存页内容的请求,则状态将会保持下去。在某一时刻,vioc1 对逻辑内存页 a 发出写请求,要将这个页面中的“甲”变成“乙”。此时,Hypervisor 会先对 AMS pool 内存页 A 做一份拷贝,生成一个新的物理内存页 B,Hypervisor 修改逻辑内存表,将 B 指向 vioc1 的逻辑内存页 a;然后告诉 vioc1 可以开始修改数据。vioc1 通过从 a 到 B 的映射关系,将物理内存页中“甲”修改成“乙”。这样,vioc1 对内存的修改就完了。由于,因为 vioc2 和 vioc3 并没有对内存的修改请求,因此这两个分区依然指向物理内存页 A,里面含有内容“甲”。
Jobs 教主曾经说过,大意是:只有真正理解了,才能将复杂的东西 用简单的语言描述之!