免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1034 | 回复: 2
打印 上一主题 下一主题

缓冲区页的疑问 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-04-19 09:24 |只看该作者 |倒序浏览
ulk讲,内核创建缓冲区页的两种普通情况: 1. 读写文件在磁盘中不连续,或者文件洞。 2. 访问一个磁盘块时。 直接读写/dev/sda设备文件的时候,就对应了上面的第2种情况。 但是读写/dev/sda设备的时候,跟读文件相比,这个设备在磁盘中始终是连续的。为什么还要分配buffer_head来多进行一次映射了,又浪费时间,又浪费空间。 不知道内核这么实现有什么好处?

论坛徽章:
0
2 [报告]
发表于 2012-04-19 16:21 |只看该作者
没有人意识到这个问题么????

论坛徽章:
2
CU十二周年纪念徽章
日期:2013-10-24 15:41:34处女座
日期:2013-12-27 22:22:41
3 [报告]
发表于 2012-04-20 12:10 |只看该作者
那是因为,bdev的page cache同时作为系统的buffer cache。系统没有单独的buffer cache,如果要发起,比如读super block时,“得到某个device的某个block”这种命令,实际上是将block nr换算成page nr,再到bdev的radix tree里找相应的page,再从返回page中得到所请求的buffer header。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP