[操作系统]关于 Windows 文件访问方式,你可能真的不是很了解

在 Windows 操作系统下,想要访问文件时,一般有以下三种方式:

  • 不使用文件缓存
  • 使用文件缓存
  • 异步模式

动动小脑就应该知道,最常用的是「使用文件缓存」这种方式(好吧,小脑是为了保证身体平衡,不是为了思考;
接下来就说说,在 Windows 操作系统下,当我们以「使用文件缓存」这种方式来访问文件时,操作系统所做的事情.

使用文件缓存访问:

  • 由 Windows 的 Cache Manager 实现对缓存的控制,读取数据时,进行预取
    • 如果 Cache 满了怎么办?
      Cache Manager 会根据 LRU ( Least Recently Used ,最近最少使用)原则,来清除一些缓存内容
      同时还需要定期更新磁盘内容,让磁盘内容和 Cache 中保持一致(通常是 1 秒更新一次)
  • Write-back 机制:
    • 在对文件进行访问时,会涉及到对文件的一些修改,这就涉及到了对磁盘写数据
      此时,我们不直接对磁盘进行更改,而是只更改 Cache 中的内容,然后由 Cache Manager 决定什么时候将用户所做的更新反映到磁盘上
      • 为什么不直接对磁盘进行更改?
        对任何操作系统来说, I/O 的读写速度永远都是硬伤,如果频繁对磁盘进行 I/O 操作,会使得系统性能降低

画一个图,能够更直观的看到(请忽略我的画图水平):
在这里插入图片描述
如上图,阴影部分表示需要访问的数据.
数据在磁盘,系统缓存和进程地址空间有 3 份拷贝,通常情况下用户对数据的修改并不直接反映到磁盘上,而是通过 write-back 机制定期更新到磁盘上.

为了尽可能提高读取速度,我们应该将要存储的数据,尽量放在同一个柱面上.

以上,就是想要分享的内容
感谢您的阅读~

原文地址:https://www.cnblogs.com/zll-0405/p/12534088.html