(通用有过度简化的风险——即它是如何工作的)
Parent process has Virtual Page 10 as readwrite physical page 1000.
Parent process has Virtual Page 11 as readwrite physical page 1001.
父叉子。
Parent process has Virtual Page 10 as readonly physical page 1000.
Parent process has Virtual Page 11 as readonly physical page 1001.
Child process has Virtual Page 10 as readonly physical page 1000.
Child process has Virtual Page 11 as readonly physical page 1001.
父级写入虚拟页面 10。
触发保护故障。
操作系统检测到它是写入页面上的副本
将物理页 1000 复制到 1002
减少对物理页 1000 的引用计数
重启指令
Parent process has Virtual Page 10 as readwrite physical page 1002.
Parent process has Virtual Page 11 as readonly physical page 1001.
Child process has Virtual Page 10 as readonly physical page 1000.
Child process has Virtual Page 11 as readonly physical page 1001.
子级写入虚拟页面 11
触发保护故障。
操作系统检测到它是写入页面上的副本
复制物理页 1001 到 1003
减少对物理页 1001 的引用计数
重启指令
Parent process has Virtual Page 10 as readwrite physical page 1002.
Parent process has Virtual Page 11 as readonly physical page 1001.
Child process has Virtual Page 10 as readonly physical page 1000.
Child process has Virtual Page 11 as readwrite physical page 1003.
父级写入虚拟页面 11
触发保护故障。
操作系统检测到它是写入页面上的副本,并且引用计数为 1。
操作系统将页面更改为读写
重启指令
Parent process has Virtual Page 10 as readwrite physical page 1002.
Parent process has Virtual Page 11 as readwrite physical page 1001.
Child process has Virtual Page 10 as readonly physical page 1000.
Child process has Virtual Page 11 as readwrite physical page 1003.