nit*_*ian 4 process copy-on-write linux-kernel
之前copy on write (COW),当它表示父进程和子进程共享相同的地址空间时,这意味着它们共享相同的代码段,数据段,堆和堆栈吗?
如果父进程和子进程在COW之前共享相同的地址空间,那the page table entries are copied from parent process to child process意味着什么?
重复页表条目是否意味着重复地址空间?
假设您的进程具有var名称X,其具有虚拟地址100和物理地址200.PTE正在保持从虚拟100到物理200的地址映射.
在fork之后,每个进程(父进程和子进程)将拥有他的私有PTE.此时,两个PTE都将虚拟100映射到物理200.
只要两个进程都从那里读取,它们都将从物理地址200读取.
当第一个将尝试在那里写入时,来自物理地址的数据将被复制到新的物理空间,比方说300,并且他的(并且只有他的)PTE将被更新,因此虚拟100将被映射到物理300.它对进程是透明的,因为他仍在使用相同的(虚拟)地址.
*注意:这只是一个摘要,真实的事情发生在页面解析中.
| 归档时间: |
|
| 查看次数: |
1965 次 |
| 最近记录: |