新闻中心

EEPW首页>嵌入式系统>设计应用> Linux中代码段和数据段的加载

Linux中代码段和数据段的加载

作者: 时间:2016-09-12 来源:网络 收藏

请注意:

entry = mk_pte(new_page, vma->vm_page_prot); /*这里是PAGE_COPY,_PAGE_PRESENT | _PAGE_USER | _PAGE_ACCESSED */

当我们对这样的页进行写操作的时候,mmu当然会触发page_fault.

if (write_access) {

if (!pte_write(entry))

return do_wp_page(mm, vma, address, pte, entry);

entry = pte_mkdirty(entry);

}

当一个vma是可写的,而vma中对应的pte又是不可写的,这就触发了copy_on_write机制:do_wp_page会进行相应的copy_on_write处理过程。

所以,不存在是否第一份不能被换出的情况。如果对数据段都是只读的操作,那么你可以把数据段的页想象成一个软链接。一旦有了写操作,那么数据段就变成了一份本地的page。


上一页 1 2 下一页

关键词:

评论


相关推荐

技术专区

关闭