[操作系统]关于 Windows 文件访问方式,你可能真的不是很了解
在 Windows 操作系统下,想要访问文件时,一般有以下三种方式:
- 不使用文件缓存
- 使用文件缓存
- 异步模式
动动小脑就应该知道,最常用的是「使用文件缓存」这种方式(好吧,小脑是为了保证身体平衡,不是为了思考;
接下来就说说,在 Windows 操作系统下,当我们以「使用文件缓存」这种方式来访问文件时,操作系统所做的事情.
使用文件缓存访问:
- 由 Windows 的 Cache Manager 实现对缓存的控制,读取数据时,进行预取
- 如果 Cache 满了怎么办?
Cache Manager 会根据 LRU ( Least Recently Used ,最近最少使用)原则,来清除一些缓存内容
同时还需要定期更新磁盘内容,让磁盘内容和 Cache 中保持一致(通常是 1 秒更新一次)
- 如果 Cache 满了怎么办?
- Write-back 机制:
- 在对文件进行访问时,会涉及到对文件的一些修改,这就涉及到了对磁盘写数据
此时,我们不直接对磁盘进行更改,而是只更改 Cache 中的内容,然后由 Cache Manager 决定什么时候将用户所做的更新反映到磁盘上- 为什么不直接对磁盘进行更改?
对任何操作系统来说, I/O 的读写速度永远都是硬伤,如果频繁对磁盘进行 I/O 操作,会使得系统性能降低
- 为什么不直接对磁盘进行更改?
- 在对文件进行访问时,会涉及到对文件的一些修改,这就涉及到了对磁盘写数据
画一个图,能够更直观的看到(请忽略我的画图水平):
如上图,阴影部分表示需要访问的数据.
数据在磁盘,系统缓存和进程地址空间有 3 份拷贝,通常情况下用户对数据的修改并不直接反映到磁盘上,而是通过 write-back 机制定期更新到磁盘上.
为了尽可能提高读取速度,我们应该将要存储的数据,尽量放在同一个柱面上.
以上,就是想要分享的内容
感谢您的阅读~