当前位置:  技术问答>linux和unix

关于page cache 和buffer cache的问题

    来源: 互联网  发布时间:2016-02-12

    本文导语:  在2.4之前有page cache和buffer cache之分,但是page cache的主要用途是什么呢?buffer cache的主要用途的什么呢?因为他两是两套独立的系统,为什么要分别设置呢?各自的职责是什么呢? | 在 Linu...

在2.4之前有page cache和buffer cache之分,但是page cache的主要用途是什么呢?buffer cache的主要用途的什么呢?因为他两是两套独立的系统,为什么要分别设置呢?各自的职责是什么呢?

|
在 Linux 的实现中,文件 Cache 分为两个层面,一是 Page Cache,另一个 Buffer Cache,每一个 Page Cache 包含若干 Buffer Cache。内存管理系统和 VFS 只与 Page Cache 交互,内存管理系统负责维护每项 Page Cache 的分配和回收,同时在使用 memory map 方式访问时负责建立映射;VFS 负责 Page Cache 与用户空间的数据交换。而具体文件系统则一般只与 Buffer Cache 交互,它们负责在外围存储设备和 Buffer Cache 之间交换数据。


而在linuxforum上的一些文章上看到比较深入的分析里面说:
page 不会同时存在于 buffer cache 和 page cache.add_page_to_hash_queue将此思想显露无余.buffer_head 定义在fs.h,和文件系统有着更为紧密的关系.
从文件读写角度看buffer cache缓存文件系统的管理信息像root entry, inode等,而page cache缓存文件的内容

注意函数block_read_full_page,虽然位于buffer.c,但并没有使用buffer cache. 但是确实使用了buffer:只是再指定page上创建buffer提交底层驱动读取文件内容.这个流程有两个值得注意的地方:
一是普通file的read通过page cache进行
二是page cache读取的时候不和buffer cache进行同步
三是page cache的确使用了buffer,不过注意,buffer 不是buffer cache.

http://linux.chinaunix.net/bbs/thread-903787-1-11.html

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 【求助】关于page结构的一个问题!
  • 简单问题:response.sendRedirect(page.jsp?);传递多个参数如何表示?
  • do_page_fault()的问题
  • 关于<%@ page contentType="application/msword" %>的问题?
  • 关于page - mem_map的问题
  • 问个__get_free_pages的问题
  • 关于man page的分类问题
  • 一个很菜的问题,关于JavaBean:小弟第一次用Bean,总提示"sample1BeanId" not a defined bean variable on this page
  • 请教 Unable to handle kernel paging request at virtual address 60519ad0 问题
  • java命名空间java.awt类event的类成员方法: scroll_page_down定义及介绍
  • 请教关于linux内存分析中提到的page out/ page in指标的理解
  • java命名空间java.awt类event的类成员方法: scroll_page_up定义及介绍
  • 如何使用javascript语言实现在打开PAGE的时候,自动弹出另外一个窗口PAGE2,
  • java命名空间javax.accessibility类accessiblerole的类成员方法: page_tab定义及介绍
  • 如何使用javascript语言实现在打开PAGE的时候,自动弹出另外一个窗口PAGE2,
  • java命名空间javax.accessibility类accessiblerole的类成员方法: page_tab_list定义及介绍
  • The deference between <jsp:include page=""> and <jsp:formard page="">
  • java命名空间java.awt类gridbagconstraints的类成员方法: page_start定义及介绍
  • Linux中 怎么得到 一定时间内(timer) page fault 的数量怎么提取阿……什么数据结构存有page fault 的信息?
  • java命名空间java.awt类gridbagconstraints的类成员方法: page_end定义及介绍
  • 如何使用javascript语言实现在打开PAGE的时候,自动弹出另外一个窗口PAGE2,
  • java命名空间java.awt.event类keyevent的类成员方法: vk_page_up定义及介绍
  • 如何使用javascript语言实现在打开PAGE的时候,自动弹出另外一个窗口PAGE2,
  • java命名空间java.awt.event类keyevent的类成员方法: vk_page_down定义及介绍
  • PAGE_BUG(PAGE)??
  • java命名空间java.awt.print接口printable的类成员方法: page_exists定义及介绍
  • 谁知道request与page、session范围的差别?
  • java命名空间java.awt类borderlayout的类成员方法: page_end定义及介绍
  • page_to_virt疑问,大家看看
  • java命名空间java.awt类borderlayout的类成员方法: page_start定义及介绍
  • ZERO_PAGE如何保证页对齐?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3