• [操作系统]关于 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 机制定期更新到磁盘上.

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

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

  • 相关阅读:
    软考下午题具体解释---数据流图设计
    透视表提取不反复记录(4)-每一个物品的最大值
    运用python抓取博客园首页的所有数据,而且定时持续抓取新公布的内容存入mongodb中
    [经验总结]material design效果与开发总结
    cocos2d-x 3.0 回调函数
    P1334 瑞瑞的木板
    P2776 [SDOI2007]小组队列
    P1886 滑动窗口
    P1160 队列安排
    P1823 音乐会的等待
  • 原文地址:https://www.cnblogs.com/zll-0405/p/12534088.html
Copyright © 2020-2023  润新知