COW 和叉子 - 多少个框架

COW 和叉子 - 多少个框架

考虑拥有 10 个物理帧的进程 P。假设进程 P 调用 fork() 并创建一个子进程 Q。

在没有写时复制的情况下,子进程最初拥有多少个物理帧? 10

使用写入时复制,子级最初拥有多少帧? 0 不确定这是否是正确答案。

谢谢你!

答案1

分叉进程需要表现得好像它是父进程的精确图像,因此如果没有 COW,它最初确实会拥有 10 个帧。

但它最初不能完全拥有自己的内存 - 至少需要一个非共享框架:fork在父级和子级中不返回相同的值,因此存储该返回值的页面不能被共享。

实际上,可能会有一些页面不共享,确切的数量可能取决于操作系统。唯一确定的是它不可能为零。

相关内容