16---页高速缓存和页回写

页高速缓存有什么作用?

主要实现Linux的磁盘缓存,用来减少磁盘的IO操作,具体讲就是把磁盘中数据缓存到物理内存,把对磁盘的访问转换为对物理内存的访问。

磁盘高速缓存为什么这么重要?

  • 访问磁盘的速度(ms)远远低于访问内存的速度(nm)
  • 数据一旦被访问,就有可能在短期内再次被访问到

什么是临时局部原理?

在短期内访问同一片数据区的原理称为临时局部原理

页高速缓存有什么特点?

  • 由内存中的物理页组成
  • 内容对应磁盘上的物理块
  • 大小可以动态调整

页高速缓存的大小如何动态调整?

通过占用空闲内存扩张大小,通过自我收缩缓解内存压力

什么是后备存储?

正在被缓存的存储设备

什么是缓存命中,什么是缓存未命中?

当内核开始一个读操作,它首先会检查数据是否在页高速缓存中。如果在,则放弃对磁盘的访问,直接从内存中读取,这个行为称为缓存命中;如果不在,内核调度块IO从磁盘读取数据并将数据放入页高速缓存中,这个行为称为缓存未命中。

进程执行写操作,页高速缓存如何使用,有哪些策略?

  • 不缓存----进行写时,直接跳过缓存,写到磁盘,同时使缓存中的数据失效
  • 写透缓存----同时更新内存和磁盘,使缓存数据时刻与后备存储保持一致
  • 回写----数据先写到缓存中,将被写入的页标记为“脏”并加入脏页链表,由页回写进程周期性的将脏页链表中的页写回到磁盘。

内核进行写操作的具体过程是怎样的?

  • 1--在页高速缓存中搜索需要的页
  • 2--如果需要的页不在高速缓存中,内核在高速缓存组新分配一个空闲项
  • 3--内核创建一个写请求
  • 4--数据被从用户空间拷贝到内核缓冲
  • 5--将数据写入磁盘

什么是缓存回收策略?

决定缓存中什么内容将被清除的策略

Linux如何进行缓存回收?

通过选择干净页(不脏)进行替换,如果缓存中没有足够的干净页,内核强制进行回写操作,以腾出更多的干净页

有哪些缓存回收策略,原理是什么?

  • 最近最少使用(LRU)----缓存的数据很久没被访问,那么近期被访问的概率就很低,通过维护一个按时间为序的链表,回收链表头(最老时间戳)的页面
  • 双链表(改进的LRU)----活跃链表中页面不会被回收,非活跃链表中页面有可能被回收,当活跃链表中页面太多,为了维护平衡,会取出活跃链表头部的页面将其加入非活跃链表尾部。

address_space结构体有什么作用?

address_space结构体用来管理缓存项和页IO操作,一个文件可以被多个vm_area_struct结构体标识有多个虚拟地址,但是只能被一个address_space结构体标识有一个物理地址。

什么是缓冲,有什么作用?

缓冲是一个物理磁盘块在内存中的表示,它的作用是映射内存中的页面到磁盘块。

什么是脏数据?

当页高速缓存中的数据比后台存储的数据先更新时,该数据称为脏数据,最终脏数据会被写回到后台存储设备(磁盘)

哪些情况下,脏页被写回磁盘?

  • 空闲内存大小低于一个特定阈值,内核将脏页写回到磁盘,释放脏页,使之成为空闲内存
  • 脏页在内存中驻留时间超过一个特定阈值,内核将超时的脏页写回磁盘
  • 用户进程执行sync()和fsync()系统调用,内核按要求执行回写动作
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值