fork写时拷贝

fork函数创建新进程时,使用写时拷贝机制,初始时父子进程共享内存,仅标记为只读。当任一进程尝试写入时,内核创建新的物理页面,确保各自进程空间独立。代码段通常共享,数据段、堆栈段因写操作触发拷贝。
摘要由CSDN通过智能技术生成
当fork函数被当前进程调用时,内核为新进程创建各种数据结构,并分配它一个唯一的PID,为了给这个新进程创建虚拟存储器,它创建了当前进程的mm_struct、区域结构和页表的 原样拷贝。它将两个进程中的每个页面都标记为只读,并将两个进程中的每个区域结构都 标记为私有的写时拷贝
当fork在新进程中返回时,新进程现在的虚拟存储器刚好和调用fork时存在的虚拟存储器相同(就是父进程 运行到fork时的虚拟存储器,所以子进程运行的地方是从fork返回时开始的,并不是从头开始)。当这两个进程的任一个后来进行写操作时,写时拷贝机制就会创建新的 物理页面。(深入理解计算机系统二 558页)
通俗一点说,就是在exec之前 两个进程用的是 相同的物理空间(内存区)(所谓用是只读,不能写的&
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值