当我在Unix中调用fork()时会发生什么?

前端之家收集整理的这篇文章主要介绍了当我在Unix中调用fork()时会发生什么?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图看这个,但是在调用fork()之后,我很难理解父进程和子进程之间的关系。

它们是完全独立的进程,只能通过id / parent id相关联吗?还是分享记忆?例如,每个进程的“代码”部分是重复的,以便每个进程具有自己相同的副本,或者以某种方式“共享”,以便只有一个存在?

我希望这是有道理的。

以充分披露的名义,这是“作业相关”;虽然不是这本书的直接问题,但我有一种感觉,这主要是学术性的,实际上我可能不需要知道。

在进程看来,整个内存被重复。

实际上,它使用“复制写入”系统。第一次任一进程在fork()之后更改其内存,单独的副本由修改页面(通常为4kB)组成。

通常,进程的代码段不被修改,在这种情况下它仍然被共享。

猜你在找的Bash相关文章