Linux中有关使用缓存的思维导图,包括缓冲区高速缓存、页面高速缓存、交换高速缓存等
树图思维导图提供 使用缓存思维导图 在线思维导图免费制作,点击“编辑”按钮,可对 使用缓存思维导图 进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:4e0baa722706ec3c23b0f93ba4045507
使用缓存思维导图思维导图模板大纲
不管在硬件设计还是软件设计中,高速缓存是获得高性能的常用手段
Linux 使用了多种和内存管理相关的高速缓存
由块设备使用的数据缓冲区
从设备中读取的数据块或写入设备的数据块
由设备标识号和块标号索引
快速找出数据块
内核为每个缓冲区维护很多信息以有助于缓和写操作
“脏(dirty)”位
表示内存中的缓冲区已被修改,必须写到磁盘
时间标志
表示缓冲区被刷新到磁盘之前已经在内存中停留了多长时间
缓冲区高速缓存的大小可以变化
当需要新缓冲区而现在又没有可用的缓冲区时,就按需分配页面
就释放缓冲区并反复使用相应的页面
页面 I/O 操作访问数据所使用的磁盘高速缓存
read( )、write( )和 mmap( )系统调用对常规文件的访问都是通过页面高速缓存来完成的
高速缓存中所保留的信息单元是一个整页面
页面高速缓存有关的操作
当访问的文件部分不在高速缓存中时增加一页面
当高速缓存变得太大时删除一页面
查找一个给定文件偏移量所在的页面
只有修改后的(脏)页面才保存在交换文件中
修改后的页面写入交换文件后,如果该页面再次被交换但未被修改时,就没有必要写入交换文件
交换缓存的部分函数及功能
初始化交换缓冲,设定大小,位置的函数
extern unsigned long init_swap_cache(unsigned long, unsigned long)
显示交换缓冲信息的函数
extern void show_swap_cache_info(void)
加入交换缓冲的函数
int add_to_swap_cache(unsigned long index, unsigned long entry)
复制被换出的页面
extern void swap_duplicate(unsigned long)