美文网首页
I/O访问方式

I/O访问方式

作者: SnailFast | 来源:发表于2018-11-26 17:58 被阅读0次

 缓存IO

       缓存I/O又被称作标准I/O,大多数文件系统的默认I/O操作都是缓存I/O。在Linux的缓存I/O机制中,数据先从磁盘复制到内核空间的缓冲区,然后从内核空间缓冲区复制到应用程序的地址空间。

       读操作:操作系统检查内核的缓冲区有没有需要的数据,如果已经缓存了,那么就直接从缓存中返回;否则从磁盘中读取,然后缓存在操作系统的缓存中。

       写操作:将数据从用户空间复制到内核空间的缓存中。这时对用户程序来说写操作就已经完成,至于什么时候再写到磁盘中由操作系统决定,除非显示地调用了sync同步命令。

       缓存I/O的优点:1)在一定程度上分离了内核空间和用户空间,保护系统本身的运行安全;2)可以减少读盘的次数,从而提高性能。

       缓存I/O的缺点:数据在传输过程中需要在应用程序地址空间和缓存之间进行多次数据拷贝操作,这些数据拷贝操作所带来的CPU以及内存开销是非常大的。

图 1. 以标准的方式对文件进行读写

直接IO

       直接IO就是应用程序直接访问磁盘数据,而不经过内核缓冲区,这样做的目的是减少一次从内核缓冲区到用户程序缓存的数据复制。比如说数据库管理系统这类应用,它们更倾向于选择它们自己的缓存机制,因为数据库管理系统往往比操作系统更了解数据库中存放的数据,数据库管理系统可以提供一种更加有效的缓存机制来提高数据库中数据的存取性能。

       直接IO的缺点:如果访问的数据不在应用程序缓存中,那么每次数据都会直接从磁盘加载,这种直接加载会非常缓存。通常直接IO与异步IO结合使用,会得到比较好的性能。(异步IO:当访问数据的线程发出请求之后,线程会接着去处理其他事,而不是阻塞等待)

 图2. 数据传输不经过操作系统内核缓冲区

内存映射

       内存映射是指将硬盘上文件的位置与进程逻辑地址空间中一块大小相同的区域一一对应,当要访问内存中一段数据时,转换为访问文件的某一段数据。这种方式的目的同样是减少数据在用户空间和内核空间之间的拷贝操作。当大量数据需要传输的时候,采用内存映射方式去访问文件会获得比较好的效率。

       使用内存映射文件处理存储于磁盘上的文件时,将不必再对文件执行I/O操作,这意味着在对文件进行处理时将不必再为文件申请并分配缓存,所有的文件缓存操作均由系统直接管理,由于取消了将文件数据加载到内存、数据从内存到文件的回写以及释放内存块等步骤,使得内存映射文件在处理大数据量的文件时能起到相当重要的作用。

图 3. 内存映射方式访问

相关文章

  • I/O访问方式

    缓存IO 缓存I/O又被称作标准I/O,大多数文件系统的默认I/O操作都是缓存I/O。在Linux的缓存I/...

  • 设备管理(一)

    目录 5.1 I/O硬件原理 I/O系统 I/O控制方式 设备控制器 5.2 I/O软件原理 I/O软件设计目标和...

  • 操作系统:I/O子系统

    I/O特点 常见的I/O系统有三类: 字符设备 这些设备的访问特征是以字节为单位顺序访问,例如键盘、鼠标、串口等。...

  • 漫谈I/O多路复用与其在SS中的应用

    I/O多路复用概述 我们知道,Unix-like系统中一共有5种I/O方式: 阻塞I/O(Blocking I/O...

  • Java中的IO和流

    I/O和流 I/O: input/output 从读写设备,包括硬盘文件,内存,键盘输入,屏幕输出,访问网络 目的...

  • I/O控制方式

    设备管理的主要任务之一是控制设备和内存或处理机之间的数据传送。外围设备和内存的输入/输出控制方式有4种,即本文的内...

  • i/o控制方式

    I/O控制方式主要有程序查询方式、中断方式、DMA方式和通信方式。 1、程序查询方式 程序查询方式也称为程序轮询...

  • 系统分析师-第二章(计算机组成与体系结构 B)

    输入输出(I/O)接口 I/O系统的工作方式程序控制:CPU使用I/O指令编程控制,需要不停的查询I/O系统是否完...

  • java专题之大型分布式网站术语分析 15 条

    一、I/O优化 (1)增加缓存,减少磁盘的访问次数。 (2)优化磁盘的管理系统,设计最优的磁盘方式策略,以及磁盘的...

  • Akka 2.5.12 Using TCP

    本部分内容都需要引用: 所有的 Akka I/O API都需要通过manager访问,当使用 I/O API时,第...

网友评论

      本文标题:I/O访问方式

      本文链接:https://www.haomeiwen.com/subject/entiqqtx.html