您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

具体来说,fork()如何处理Linux中malloc()的动态分配内存?

具体来说,fork()如何处理Linux中malloc()的动态分配内存?

复制为该进程分配的每个页面(它是具有堆栈或堆的虚拟内存页面),以便派生的进程能够访问它。

实际上,它并非一开始就被复制,而是将其设置为“写时复制”,这意味着一旦其中一个进程(父级或子级)尝试修改要复制的页面,这样它们就不会对彼此造成伤害,并且仍然可以访问fork()处的所有数据。

例如,将实际可执行文件映射到内存中的代码页通常是只读的,因此会在所有分叉的进程中重用- 它们将不会再次被复制,因为没有人在此处写,只能读等等。不再需要写时复制。

在此处此处获得更多信息。

其他 2022/1/1 18:16:53 有471人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶