文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>《基于Linux的C编程与内核导读》连载(18)

《基于Linux的C编程与内核导读》连载(18)

时间:2007-06-13  来源:gaowp

4.1.5 linux的高速缓冲机制

为了提高系统的性能,减少CPU执行速度和内存访问速度,以及和设备的访问速度之间的不匹配关系,配合内存管理功能的实现,linux使用了多个高速缓冲。

(1)缓冲区高速缓冲(Buffer Cache)

这是块设备驱动使用的数据缓冲。这些缓冲的单元的大小一般固定(如512B),并且包含从块设备读出或者写入的信息块。利用设备标志符和所需块号做索引可以在Buffer Cache中迅速地找到数据。块设备只能通过Buffer Cache 来存取。如果数据在Buffer Cache中可以找到则无需从硬盘中读取,这样可以加速访问。

(2)页面高速缓冲(Page Cache)

这是页面进行输入/输出操作时,访问程序和数据所用的磁盘高速缓存,它以页为单位存储数据,页面从磁盘上读入内存后缓存在Page Cache中。

(3)交换高速缓冲(Swap Cache)

交换文件中保存的是修改过的页面。只要这些页面在写入到交换文件后没有被修改过,则下次此页面被交换出内存时,就不必再进行更新写操作,这些页面都可以简单地丢失。

(4)转换后援存储器(TLB)

    这是一个具有并行查询能力的高速缓存,也叫联想存储器。基于局部性原理,程序在一段时间的执行总是在几个页面中进行。而linux采用的是三级页表机制,要多次访问内存,降低了程序执行的效率。设置该缓冲器后,它包含页表入口的缓冲拷贝。当需要进行地址转换时,CPU去与TLB中的内容匹配,若命中则直接将逻辑地址转换为物理地址。若没有命中,则按照正常次序访问页表,然后从TLB中淘汰一项,替换成刚找到的页表项。
相关阅读 更多 +
排行榜 更多 +
几何飞行内购修改版

几何飞行内购修改版

飞行射击 下载
别踩白块内购修改版

别踩白块内购修改版

休闲益智 下载
乐涂数字填色游戏

乐涂数字填色游戏

休闲益智 下载