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和每个设备关联。
- linux内核设计与实现读书笔记——页高速缓存
- 《Linux内核设计与实现》读书笔记(十六)- 页高速缓存和页回写
- 《Linux内核设计与实现》读书笔记(十六)- 页高速缓存和页回写
- 《Linux内核设计与实现》读书笔记(十六)- 页高速缓存和页回写
- 《Linux内核设计与实现》读书笔记(十六)- 页高速缓存和页回写
- 《Linux内核设计与实现》——页高速缓存和页回写
- LINUX内核设计与实现之页高速缓存和页回写
- linux内核设计与实现读书笔记——内核同步
- 进程管理——linux内核设计与实现读书笔记
- 系统调用——linux内核设计与实现读书笔记
- 中断——linux内核设计与实现读书笔记
- linux内核设计与实现读书笔记——内存管理
- linux内核设计与实现读书笔记——虚拟文件系统
- linux内核设计与实现读书笔记——IO层
- Linux内核设计与实现 学习笔记(6)页高速缓存和页回写
- Linux内核设计与实现读书笔记(1)
- Linux内核设计与实现读书笔记(2)
- 读书笔记--《LINUX内核设计与实现》
- 现金流 for ipad
- java获取文件Mime Type的几种方式
- 程序员想打基础看那几本书
- 一步一步写算法(之单向链表)
- spring mvc绑定对象String转Date
- linux内核设计与实现读书笔记——页高速缓存
- aptitude和apt-get的区别和联系【转,有添加和修改】
- ##* %%* linux变量处理
- 产品经理学习笔记(3)-腾讯亿级用户的团队经验:产品经理如何协同工作
- 1501080931-蓝桥杯-算法训练 排序
- 【机器学习算法班】(一)管窥机器学习
- 一步一步写算法(之双向链表)
- Linux进程关系
- rabbitmq(4)