【操作系统/OS笔记19】数据块缓存
本次笔记内容:
12.11 数据缓存
数据缓存的目的
如上图,从硬盘访问要比从内存访问慢很多,因此需要在内存中开辟一块缓存数据的区域。接下来的访问都会在内存中,即buffer数据缓冲技术。
数据缓存的方式
数据块按需读入内存:
- 提供read()操作;
- 预读:预选读取后面的数据块。
数据块使用后被缓存:
- 假设数据将会再次被使用;
- 写操作可能被缓存和延迟写入。
两种数据块缓存方式:
- 普通缓冲区缓存;
- 页缓存:统一缓存数据块和内存页。
基于分页的缓存机制
如上图,将缓存机制与页结合起来,使系统更方便访问数据。
分页要求:
- 当需要一个页时才将其载入内存。
支持存储:
- 一个页(在虚拟地址空间中)可以被映射到一个本地文件中(在二级存储中)。
文件数据块的页缓存:
- 在虚拟内存中文件数据块被映射成页;
- 文件的读/写操作被转换成对内存的访问;
- 可能导致缺页/设置为脏页;
- 问题:页置换,从进程或文件页缓存中如何选择?答:类似之前页替换的算法。