linux内核设计与实现读书笔记——页高速缓存

来源:互联网 发布:chrome 插件 运行js 编辑:程序博客网 时间:2024/06/05 18:16

一、页高速缓存

内容对应磁盘上的物理的内存物理页面。

写缓存实现策略:

1)nonwrite:直接写磁盘,同时将缓存中数据失效。

2)write-through cache:自动更新内存缓存同时更新磁盘文件。

3)写回:写到缓存中并标记页面为脏,加入脏页链表中,由写回进程周期性写回磁盘。(linux使用的方法)

缓存回收策略:

1)最近最少使用LRU:跟踪页面的访问(或按照访问时间顺序的页链表)

2)双链策略:修改的LRU。维护活跃链表和非活跃链表。以队列的形式换出。(linux使用)

 二、laddress_space

linux页高速缓存可以缓存任何基于页的对象,可以包含多个不连续的物理磁盘块。

address_space对象:管理缓存项和页IO操作,对应虚拟地址vm_area_struct的物理地址,定义在<linux/fs.h>中。

i_mmap :优先搜索树,将堆与radix树结合的快速检索书,搜索范围包括address_space中所有共享与私有的映射页面。

基树radixtree:每个address_space都对应唯一基树,是i二叉树,可以根据偏移量检索页。<linux/radix_tree.h>

操作: 提供了与页高速缓存交互的方法,包括读页、更新等。

三、fulsher线程

脏页写回的情况:

1)空闲内存低于特定阈值

2)臧晔在内存中驻留时间超过某个阈值

3)进程调用sync和fsync系统调用时

脏页写回由一群内核线程执行flusher。不同的flusher线程处理不同的设备队列,避免了一个忙磁盘其它饥饿的情况。现在flusher和每个设备关联。

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  

0 0