考虑拥有 10 个物理帧的进程 P。假设进程 P 调用 fork() 并创建一个子进程 Q。
在没有写时复制的情况下,子进程最初拥有多少个物理帧? 10
使用写入时复制,子级最初拥有多少帧? 0 不确定这是否是正确答案。
谢谢你!
答案1
分叉进程需要表现得好像它是父进程的精确图像,因此如果没有 COW,它最初确实会拥有 10 个帧。
但它最初不能完全拥有自己的内存 - 至少需要一个非共享框架:fork
在父级和子级中不返回相同的值,因此存储该返回值的页面不能被共享。
实际上,可能会有一些页面不共享,确切的数量可能取决于操作系统。唯一确定的是它不可能为零。