zoukankan      html  css  js  c++  java
  • PageCache, BufferCache, SwapCache

    BufferCache

      • 块缓冲,通常1K,对应于一个磁盘块,用于减少磁盘IO
      • 由物理内存分配,通常空闲内存全是bufferCache
      • 应用层面,不直接与BufferCache交互,而是与PageCache交互(见下)
      • 读文件:

    直接从bufferCache中读取

    • 写文件:

           方法一,写bufferCache,后写磁盘

           方法二,写bufferCache,后台程序合并写磁盘

    PageCache

    • 页缓冲/文件缓冲,通常4K,由若干个磁盘块组成(物理上不一定连续),也即由若干个bufferCache组成
    • 读文件:

          可能不连续的几个磁盘块》》bufferCache》》pageCache》》应用程序进程空间

    • 写文件:

           pageCache, bufferCache》》磁盘

    SwapCache

    • 交换空间(虚拟内存的表现形式)

    如何使用PageCache

    • 以下日志,属摘抄部分,我自己还没理解。
    • 【1】通过VFS直接在不同文件的Cache之间或者Cache与应用程序所提供的用户空间buffer之间拷贝数据,其实现原理如下图

    • 【2】是通过VMM(虚拟内存管理)将Cache项映射到用户空间,使得应用程序可以像使用内存指针一样访问文件,Memory map访问Cache的方式在内核中是采用请求页面机制实现的,其工作过程如图

    • 【3】总结1与2,总的访问图:

    参考:

    http://blog.csdn.net/cheungjustin/article/details/5853399

    http://baike.baidu.com/view/1111885.htm

  • 相关阅读:
    解决ERROR C2011: 'FD_SET' : 'STRUCT' TYPE REDEFINITION问题
    github简单使用教程
    Win32 多线程的创建方法和基本使用
    day 05
    day04
    day03
    day02
    day 06
    day_05
    day 05
  • 原文地址:https://www.cnblogs.com/alipayhutu/p/2492152.html
Copyright © 2011-2022 走看看