• 深入理解Linux内核-访问文件


    文件的访问模式:
    1、规范模式:
    2、同步模式:
    3、内存映射模式:
    4、直接IO模式
    5、异步模式:

    内存映射模式:
    1、共享型:在线性区页上的任何写操作都会修改磁盘上的文件;而且这种修改对映射了同一文件的所有进程都是可见的。
    2、私有型:进程创建只读文件的时候用到,效率更高。对它对写操作不会改变磁盘文件,也对其他进程不可见。
    3、内存映射的创建同样不是立即分配页框,而是尽量推迟;当进程对它进行寻址时,就产生一个缺页异常。
    4、非线性内存映射,它映射的不是文件的顺序页,而是每一内存页都映射文件数据的随机页。

    直接IO传送:
    1、自缓存应用程序:更愿意具有控制IO数据传输机制的全部权利,例如高性能数据库服务器。
    2、很多页框浪费在复制已经在RAM中的磁盘数据上。
    3、处理页高速缓存和预读的多余指令降低了read和write系统调用的执行效率,也降低了与文件内存映射相关的分页操作
    4、read 和 write 系统调用不是在磁盘和用户态存储器直接直接传送数据,而是分两次传送:磁盘和内核缓冲区,内核缓冲区和用户态存储器。

    异步IO传送:
    1、异步实现方式就是创建一个子进程,由它去执行read、write的系统调用。父进程继续执行。














  • 相关阅读:
    fckeditor上传问题的解决
    重装系统
    JQuery中文日期控件
    Log4Net使用心得
    not过滤的几种写法
    三级日期选择
    Log4Net本地正常,发布到服务器却不能工作
    工具栏设置大按钮
    Log4Net与Log2Console配合时中文问题的解决
    服务器不能发邮件
  • 原文地址:https://www.cnblogs.com/lipeil/p/4747442.html
Copyright © 2020-2023  润新知