文件的访问模式:
1、规范模式:
2、同步模式:
3、内存映射模式:
4、直接I\O模式
5、异步模式: 内存映射模式:
1、共享型:在线性区页上的任何写操作都会修改磁盘上的文件;而且这种修改对映射了同一文件的所有进程都是可见的。
2、私有型:进程创建只读文件的时候用到,效率更高。对它对写操作不会改变磁盘文件,也对其他进程不可见。
3、内存映射的创建同样不是立即分配页框,而是尽量推迟;当进程对它进行寻址时,就产生一个缺页异常。
4、非线性内存映射,它映射的不是文件的顺序页,而是每一内存页都映射文件数据的随机页。 直接I\O传送:
1、自缓存应用程序:更愿意具有控制I\O数据传输机制的全部权利,例如高性能数据库服务器。
2、很多页框浪费在复制已经在RAM中的磁盘数据上。
3、处理页高速缓存和预读的多余指令降低了read和write系统调用的执行效率,也降低了与文件内存映射相关的分页操作
4、read 和 write 系统调用不是在磁盘和用户态存储器直接直接传送数据,而是分两次传送:磁盘和内核缓冲区,内核缓冲区和用户态存储器。 异步I\O传送:
1、异步实现方式就是创建一个子进程,由它去执行read、write的系统调用。父进程继续执行。

深入理解Linux内核-访问文件的更多相关文章

  1. 读书笔记之Linux系统编程与深入理解Linux内核

    前言 本人再看深入理解Linux内核的时候发现比较难懂,看了Linux系统编程一说后,觉得Linux系统编程还是简单易懂些,并且两本书都是讲Linux比较底层的东西,只不过侧重点不同,本文就以Linu ...

  2. 《深入理解Linux内核》 读书笔记

    深入理解Linux内核 读书笔记 一.概论 操作系统基本概念 多用户系统 允许多个用户登录系统,不同用户之间的有私有的空间 用户和组 每个用于属于一个组,组的权限和其他人的权限,和拥有者的权限不一样. ...

  3. Linux 内核的文件 Cache 管理机制介绍

    Linux 内核的文件 Cache 管理机制介绍 http://www.ibm.com/developerworks/cn/linux/l-cache/ 1 前言 自从诞生以来,Linux 就被不断完 ...

  4. Linux内核访问外设I/O--动态映射(ioremap)和静态映射(map_desc) (转载)

    [转](转)Linux内核访问外设I/O资源的方式-静态映射(map_desc)方式 Linux内核访问外设I/O资源的方式 Author: Dongas Date: 08-08-02 我们知道默认外 ...

  5. Linux 内核的文件 Cache 管理机制介绍-ibm

    https://www.ibm.com/developerworks/cn/linux/l-cache/ 1 前言 自从诞生以来,Linux 就被不断完善和普及,目前它已经成为主流通用操作系统之一,使 ...

  6. Linux内核头文件与内核与库的关系

    看上一篇文章中对buildroot的介绍,里面的文档第 3.1.1.1 Internal toolchain backend 节内容 C库会去访问Linux kernel headers(*.h)文件 ...

  7. 【读书笔记::深入理解linux内核】内存寻址【转】

    转自:http://www.cnblogs.com/likeyiyy/p/3837272.html 我对linux高端内存的错误理解都是从这篇文章得来的,这篇文章里讲的 物理地址 = 逻辑地址 – 0 ...

  8. 【读书笔记::深入理解linux内核】内存寻址

    我对linux高端内存的错误理解都是从这篇文章得来的,这篇文章里讲的 物理地址 = 逻辑地址 – 0xC0000000:这是内核地址空间的地址转换关系. 这句话瞬间让我惊呆了,根据我的CPU的知识,开 ...

  9. linux内核initrd文件自定义方法

    linux内核initrd文件自定义方法 重新编译内核后,可能加入了自定义的模块,就有可能需要修改init文件,而init文件就在initrd中,这里记录下操作步骤,以防遗忘. 1.  cp  /bo ...

  10. Linux内核DTB文件启动的几种方式

      版权:  凌云物网智科实验室< www.iot-yun.com > 声明:  本文档由凌云物网智科实验室郭工编著! 作者:  郭文学< QQ: 281143292  guowen ...

随机推荐

  1. appium界面运行过程(结合日志截图分析)

    appium界面运行过程: 1.启动一个http服务器:127.0.0.1:47232.根据测试代码setUp()进行初始化,在http服务器上建立一个session对象3.开始调用adb,找到连接上 ...

  2. Python是解释性语言吗? 直到看到有 python py、pyc、pyo、pyd 文件

    py是源文件,pyc是源文件编译后的文件,pyo是源文件优化编译后的文件,pyd是其他语言写的python库 1. Python是一门解释型语言? Python是一门解释性语言,我就这样一直相信下去, ...

  3. gnu screen的用法

    在使用ssh或者telnet登录远程主机后执行一些耗时的命令, 如果此时ssh或者telnet中断, 那么远程主机上正在执行的程序或者说命令也会被迫终止. screen能够很好地解决这个问题, scr ...

  4. 自己动手做——简易下载工具 SimpleDownloader

    一.说明 二.开发 三.源代码 源代码:https://github.com/FrankFan/SimpleDownloader 可执行文件下载地址

  5. uri.js的用法事例

    来源于:http://smoothprogramming.com/tutorials/get-set-query-string-values-from-url-using-uri-js/ Get or ...

  6. Netty-gRPC介绍和使用

    转自:http://www.saily.top/2017/07/23/netty5/ gRPC Define your service using Protocol Buffers, a powerf ...

  7. scipy稀疏矩阵

    那些零元素数目远远多于非零元素数目,并且非零元素的分布没有规律的矩阵称为稀疏矩阵(sparse matrix). 不同类型的矩阵有不同的压缩方式,比如对角矩阵只存储对角元素即可.要想充分压缩,就要找到 ...

  8. linux shell 脚本攻略学习6-xargs详解

    xargs是一条Unix和类Unix操作系统的常用命令.它的作用是将参数列表转换成小块分段传递给其他命令,以避免参数列表过长的问题. 例如,下面的命令: rm `find /path -type f` ...

  9. 基于24位AD转换模块HX711的重量称量实验(已补充皮重存储,线性温度漂移修正)

    转载:http://www.geek-workshop.com/thread-2315-1-1.html 以前在X宝上买过一个称重放大器,180+大洋.原理基本上就是把桥式拉力传感器输出的mV级信号放 ...

  10. 利用hadoop来解决“单表关联”的问题

    已知 child parent a b a c d b d c b e b f c g c h x g x h m x m n o x o n 则 c 2+c+g 2+c+h 1+a+c 1+d+c ...