【发布时间】:2012-11-15 07:10:24
【问题描述】:
我对 fork() 用例很感兴趣。
1) 在fork之后,内核为子进程创建一个新的PCB。它将父级中所有页表条目的权限更改为只读。然后它在新的子 PCB 中复制父页面目录和表格。 它是否正确?还是父子进程共享?
2) 如果内核在复制页面后将它们全部更改为只读,那么内核如何知道页面的实际权限?
【问题讨论】:
-
难道 fork() 不会为子进程克隆父级的 PCB 吗? fork()ed 进程是子进程,而不是线程。 init(1) 进程 fork() 整个运行环境,包括 shell 以及我们执行的程序,但我们无法“读取”init(1) 的 PCB。