LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1343|回复: 5

请问某个页被设置为file-backed的映射,指的是什么?

[复制链接]
发表于 2007-6-13 19:51:51 | 显示全部楼层 |阅读模式
不知道file_backed是什么样的标志?
发表于 2007-6-14 03:35:49 | 显示全部楼层
页面对应于一个文件。比如可执行文件的页或用mmap打开的文件。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-6-14 12:24:10 | 显示全部楼层
Post by roamingo
页面对应于一个文件。比如可执行文件的页或用mmap打开的文件。

哦,再问一个问题:如果一个实现了copy_on_write的内核在为一个进程fork子进程的时候,并且这个进程有一个页面是file-backed的,那么在fork时,内核会复制一个新的页面给子进程页面吗?如果内核没有实现copy_on_write,又会怎么样呢?
回复 支持 反对

使用道具 举报

发表于 2007-6-14 15:28:26 | 显示全部楼层
copy_on_write顾名思义,fork时只拷贝page tables,不拷贝具体页面,并将页面属性设为只读。只在父进程或子进程对共享的页面做修改时,陷入内核,分配新页并割断共享关系。这样fork的速度快多了,而且大部分情况下,需要修改执行代码的情况很少,所以性能会有很大提高。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-6-14 18:33:27 | 显示全部楼层
Post by roamingo
copy_on_write顾名思义,fork时只拷贝page tables,不拷贝具体页面,并将页面属性设为只读。只在父进程或子进程对共享的页面做修改时,陷入内核,分配新页并割断共享关系。这样fork的速度快多了,而且大部分情况下,需要修改执行代码的情况很少,所以性能会有很大提高。

file-backed的页面会不会有不同的情况呢?
回复 支持 反对

使用道具 举报

发表于 2007-6-14 19:46:36 | 显示全部楼层
进程的代码页面就是file-backed,数据页面不是file-backed,fork时都是COW。不过一些细节就不清楚了。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表