主要区别是,buffer cache缓存元信息,page cache缓存文件数据

buffer 与 cache 是作为磁盘文件缓存(磁盘高速缓存disk cache)来使用,主要目的提高文件系统系性能。具体工作过程参见上一篇blog Linux 内核read工作过程.
不同点是buffer以块为大小操作,所以称块缓存,cache是以页为大小操作,所以称为页缓存(page cache)。
什么情况块为单位操作磁盘呢?
1.读写inode节点和超级块等操作

2.读写裸块设备。所谓裸块设备就是没有格式化的设备,磁盘上没有划分信息,只能按块读写。

实际可以这样认为,直接读写块设备(/dev/sda),就是以buffer缓冲。读写普通文件,就是页缓存。

除了上述情况,一般读写文件以页来缓冲文件。

什么又是Swap Cache呢?请注意不要同Swap混淆,

当内存回收时(或者内存不够用时),需要时交换到交换分区中内存页,称为Swap Cache。例如

#cat /proc/meminfo 
SwapCached:            0 kB

http://blog.chinaunix.net/uid-1829236-id-3152172.html

http://blog.csdn.net/column/details/linux--mm.html?page=1 linux内存管理专栏,其他专栏也很不错csdn

另外附带一个内存模型的博客 http://www.cnblogs.com/sunyubo/archive/2010/12/22/2282080.html

裸设备 http://www.cnblogs.com/rootq/articles/1487267.html

cache实现细节百度文库

http://wenku.baidu.com/link?url=K49cyCFFT8_59kCigSw79QCBlCEIcrx6-KIMU1Vy6JujR4dLxWYCTOisRegyikn-pYYTTq7y9KNlud22UcXYgIK4Ja7BgG31xhg_9beHEpK

百度百科关于page cache和buffer cache的实现

free命令 http://blog.csdn.net/turkeyzhou/article/details/6426738

两个博客:http://hi.baidu.com/rwen2012和http://hi.baidu.com/_kouu 其中第二个博客非常值得读一下,文件系统和内存部分挺好

这个博客也是讲linux内核的,其中只看了网络编程部分,不错的样子 http://hi.baidu.com/linux_kernel

又是一个kernel的博客:http://hi.baidu.com/wzt85/archive/tag/kernel

龙泉居士:http://hi.baidu.com/zeyu203

不知道是什么的博客:

http://blog.csdn.net/qq575787460

关于linux进程调度系统的文章:http://www.ibm.com/developerworks/cn/linux/kernel/l-kn26sch/

linux page cache和buffer cache的更多相关文章

  1. Linux系统中的Page cache和Buffer cache

    Linux系统中的Page cache和Buffer cache Linux中有两个很容易混淆的概念,pagecache和buffercache,首先简单将一些Linux系统下内存的分布,使用free ...

  2. linux Page cache和buffer cache正解

    Page cache和buffer cache一直以来是两个比较容易混淆的概念,在网上也有很多人在争辩和猜想这两个cache到底有什么区别,讨论到最后也一直没有一个统一和正确的结论,在我工作的这一段时 ...

  3. Page cache和Buffer cache[转1]

    http://www.cnblogs.com/mydomain/archive/2013/02/24/2924707.html Page cache实际上是针对文件系统的,是文件的缓存,在文件层面上的 ...

  4. 【转】Linux 查看内存(free buffer cache)

    转自:http://elf8848.iteye.com/blog/1995638 Linux下如何查内存信息,如内存总量.已使用量.可使用量.经常使用Windows操作系统的朋友,已经习惯了如果空闲的 ...

  5. page cache和buffer cache

    因为要优化I/O性能,所以要理解一下这两个概念,这两个cache着实让我迷糊了好久,通过查资料大概明白了两者的区别,试着说下. page cache:文件系统层级的缓存,从磁盘里读取的内容是存储到这里 ...

  6. linux内存 free命令 buffer cache作用

    free命令用于查看linux内存使用情况 #free shared:用于进程之间相互共享数据. Used:已使用内存. total:内存总量. free:未使用的内存. available:开启一个 ...

  7. 【Linux】清理缓存buffer/cache

    运行sync将dirty的内容写回硬盘 sync 通过修改proc系统的drop_caches清理free的cache echo 3 > /proc/sys/vm/drop_caches ech ...

  8. page cache和buffer cache 图解

    http://www.cnblogs.com/yrpen/p/3777963.html http://www.cnblogs.com/hustcat/archive/2011/10/27/222699 ...

  9. linux page buffer cache深入理解

    Linux上free命令的输出. 下面是free的运行结果,一共有4行.为了方便说明,我加上了列号.这样可以把free的输出看成一个二维数组FO(Free Output).例如: FO[2][1] = ...

随机推荐

  1. makefile--编码修改-空格出现错误

    "makefile", line 40: make: 1254-055 Dependency line needs colon or double colon operator. ...

  2. C++ 文件读写方案选型

    严格来说, 有 3 种风格. UNIX 底层读写库 c 语言 stdio 标准库 iostream 流 一般的工程中, 底层读写库封装程度太低, 需要自己处理缓存和很多通用的异常场景. 不适合. 网络 ...

  3. C/C++易错小记录

    一:对字符串的 strlen() 与 sizeof #include <string.h> #include <stdio.h> int main(void) { char* ...

  4. 创建型模式——Abstract Factory

    1.意图 提供一个创建一系列相关或相互依赖的接口,而无需指定它们具体的类. 2.结构 3.参与者 AbstractFactory声明一个创建抽象产品对象的操作接口 ConcreteFactory实现创 ...

  5. Centos 6.5 配置nginx服务

    官方网站:http://nginx.org最新版本:1.7.11官方文档:http://nginx.org/en/docs/ 一.安装NGINX查看当前centos版本: #cat /etc/redh ...

  6. HTML5跨文档消息传递

    HTML5定义了一些javascript API,其中有一个就是跨文档消息传递(cross-document-messaging简称XDM). 现在XDM已经作为一个规范独立了出来,名字为:Web M ...

  7. js优化 ----js的有序加载

    说到有序加载,我们先来说说js的无序加载: <script src="jquery/jquery-1.4.1.js" type="text/javascript&q ...

  8. WF 快速入门

    WF(Windows Workflow Foundation ,中文译为:Windows工作流基础)是一种基于更高级抽象概念的编程语言,适合于实现业务流程.虽然可以通过使用图形化的工具(Workflo ...

  9. sublime text2之js压缩-Js Minifier

    一款基于Google Closure compiler压缩Js文件插件. 快捷键: Ctrl+Alt+M            当前文件内压缩Js代码(不推荐) Ctrl+Alt+Shift+M   ...

  10. JavaScript 防止事件冒泡

    在我们书写一个弹窗的时候,我们往往需要点击弹窗的其他地方来隐藏弹窗. 通常我们会写成: $(document).bind('click',function(){ $('.pop-box').hide( ...