首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

C|内存管理|COW in Linux

简介 众所周知,在fork时,属于进程private的内存页将会进行COW机制。所谓COW,就是一个资源如果需要值拷贝,在读时不创建出副本,仅当写时再创建。...设置父子进程的所有内存页的标志为write protected, 而在mmap中被标识为shared的内存则会通过wp_page_reuse标记为wriable 因为谁先写不知道,所以两者都应该是wp,都能进行COW...这里产生了一个问题: 假如父子进程都使用COW,那么在子进程已经copy过的情况下,父进程再copy一次就会造成浪费。...COW 首先和常识相同,write这些页会触发page fault: handle_pte _fault linux使用handle_pte_fault函数处理: 如果vma是writable但是却触发了...总结 COW机制下,父子进程的页都会被标记为write protect 父子进程均有可能进行copy 最后一个写的进程不会进行copy,而是直接使用原本的物理页。

2.5K20
领券