加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

进程 – 共享地址空间与复制页表条目

发布时间:2020-12-14 01:21:56 所属栏目:Linux 来源:网络整理
导读:在写入时复制(COW)之前,当它表示父进程和子进程共享相同的地址空间时,这意味着它们共享相同的代码段,数据段,堆和堆栈吗? 如果父进程和子进程在COW之前共享相同的地址空间,那么页表条目从父进程复制到子进程意味着什么? 重复页表条目是否意味着重复地址空间
>在写入时复制(COW)之前,当它表示父进程和子进程共享相同的地址空间时,这意味着它们共享相同的代码段,数据段,堆和堆栈吗?
>如果父进程和子进程在COW之前共享相同的地址空间,那么页表条目从父进程复制到子进程意味着什么?
>重复页表条目是否意味着重复地址空间?

解决方法

假设您的进程具有var名称X,其具有虚拟地址100和物理地址200.
PTE持有从虚拟100到物理200的地址映射.

在fork之后,每个进程(父进程和子进程)将拥有他的私有PTE.此时,两个PTE都将虚拟100映射到物理200.

只要两个进程都从那里读取,它们都将从物理地址200读取.

当第一个将尝试在那里写入时,来自物理地址的数据将被复制到新的物理空间,比方说300,并且他的(并且只有他的)PTE将被更新,因此虚拟100将被映射到物理300.它对进程是透明的,因为他仍在使用相同的(虚拟)地址.

*注意:这只是一个摘要,真正的事情发生在页面解析中.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读