【操作系统/OS笔记19】数据块缓存

本次笔记内容:
12.11 数据缓存

数据缓存的目的

【操作系统/OS笔记19】数据块缓存

如上图,从硬盘访问要比从内存访问慢很多,因此需要在内存中开辟一块缓存数据的区域。接下来的访问都会在内存中,即buffer数据缓冲技术。

数据缓存的方式

数据块按需读入内存:

  • 提供read()操作;
  • 预读:预选读取后面的数据块。

数据块使用后被缓存:

  • 假设数据将会再次被使用;
  • 写操作可能被缓存和延迟写入。

两种数据块缓存方式:

  • 普通缓冲区缓存;
  • 页缓存:统一缓存数据块和内存页。

基于分页的缓存机制

【操作系统/OS笔记19】数据块缓存

如上图,将缓存机制与页结合起来,使系统更方便访问数据。

分页要求:

  • 当需要一个页时才将其载入内存。

支持存储:

  • 一个页(在虚拟地址空间中)可以被映射到一个本地文件中(在二级存储中)。

文件数据块的页缓存:

  • 在虚拟内存中文件数据块被映射成页;
  • 文件的读/写操作被转换成对内存的访问;
  • 可能导致缺页/设置为脏页;
  • 问题:页置换,从进程或文件页缓存中如何选择?答:类似之前页替换的算法。