Linux的I/O机制经历了一下几个阶段的演进:

1. 同步阻塞I/O: 用户进程进行I/O操作,一直阻塞到I/O操作完成为止。

2. 同步非阻塞I/O: 用户程序可以通过设置文件描述符的属性O_NONBLOCK,I/O操作可以立即返回,但是并不保证I/O操作成功。

3. 异步事件阻塞I/O: 用户进程可以对I/O事件进行阻塞,但是I/O操作并不阻塞。通过select/poll/epoll等函数调用来达到此目的。

4. 异步时间非阻塞I/O: 也叫做异步I/O(AIO),用户程序可以通过向内核发出I/O请求命令,不用等带I/O事件真正发生,可以继续做另外的事情,等I/O操作完成,内核会通过函数回调或者信号机制通知用户进程。这样很大程度提高了系统吞吐量。

下面就AIO做详细介绍:

要使用aio的功能,需要include头文件aio.h,在编译连接的时候需要加入POSIX实时扩展库rt.下面就aio库的使用做介绍。

1. AIO整个过程所使用的数据存放在一个结构体中,struct aiocb,aio control block.看看头文件中的定义:

/* Asynchronous I/O control block.  */

struct aiocb

{

int aio_fildes;              /* File desriptor.  */ 需要在哪个文件描述符上进行I/O

int aio_lio_opcode;          /* Operation to be performed.  */ 这个是针对批量I/O的情况有效,读写操作类型

int aio_reqprio;              /* Reques

linux aio进程简介,Linux AIO机制相关推荐

  1. linux 监控进程重启,linux进程监控与自动重启的简单实现方法

    linux进程监控与自动重启的简单实现方法 目的: linux 下服务器程序会因为各种原因dump掉,就会影响用户使用,这里提供一个简单的进程监控和重启功能. 实现原理: 由定时任务crontab调用 ...

  2. linux mv时间,简介Linux中cp和mv搭配{,}在shel_l当中的用法

    简介Linux中cp和mv搭配{,}在shel_l当中的用法 发布时间:2018-01-03 18:02 来源:互联网 当前栏目:web技术类 这篇文章主要介绍了简介Linux中cp和mv搭配{,}在 ...

  3. linux守护进程编程,Linux守护进程的编程实现

    Linux 守护进程的编程方法 守护进程(Daemon)是执行在后台的一种特殊进程.它独立于控制终端而且周期性地执行某种任务或等待处理某些发生的事件.守护进程是一种非常实用的进程.Linux的大多数s ...

  4. linux看进程所在,linux 查看进程所在目录

    一下内容转自:https://blog.csdn.net/spring21st/article/details/50561550 通过 ps 及 top 命令查看进程信息时,只能查到 相对路径,查不到 ...

  5. linux的进程命令,Linux基础进程命令详解

    进程有关基础命令 一.进程定义 1.进程就是CPU未完成的工作,而且它是其中运行着一个或多个线程的地址空间和这些线程所需要的系统资源. 二.Linux系统进程和一些有关进程的命令 1.ps命令ps   ...

  6. linux ps 进程组,linux进程管理(2)---进程的组织结构

    一.目的 linux为了不同的进程管理目的,使用了不同的方法组织进程之间的关系,为了体现父子关系,使用了"树形"图:为了对同一信号量统一处理,使用了进程组:为了快速查找某个进程,使 ...

  7. linux nmon 进程io,linux监控占用磁盘IO进程的工具

    介绍 Linux下的IO统计工具如iostat, nmon等大多数是只能统计到per设备的读写情况, 如果你想知道每个进程是如何使用IO的就比较麻烦. 一.iotop详解 iotop 是一个用来监视磁 ...

  8. linux修改进程名字,linux修改进程名

    一.linux中的进程名 linux中有很多查看/操作进程的命令. 这些命令的参数或显示的结果,有的是真实的进程名(top/pstree/pgrep/kill/killall),有的是进程的命令行参数 ...

  9. linux僵尸进程理解,Linux僵尸进程详细解析

    在fork()/execve()过程中,假设子进程结束时父进程仍存在,而父进程fork()之前既没安装SIGCHLD信号处理函数调用waitpid()等待子进程结束,又没有显式忽略该信号,则子进程成为 ...

最新文章

  1. BERT模型超酷炫,上手又太难?请查收这份BERT快速入门指南
  2. Java线程详解(18)-障碍器
  3. 【含义解析】%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %m%n
  4. MySQL 中事务、事务隔离级别详解
  5. iOS 通知中心(NSNotificationCenter)
  6. Android之解决toolbar里面显示返回按钮图片太大和没有水平居中的问题
  7. MySQL故障检测_检测MySQL的表的故障的方法
  8. 荷兰牛栏 荷兰售价_荷兰研究小组授予的数据共享项目
  9. azure云数据库_Microsoft Azure SQL数据库-分步创建教程
  10. ValueError: I/O operation on closed file 解决办法
  11. 编译原理c语言词法分析器,用C语言实现一个真正的词法分析器
  12. asp.net中英文转换
  13. 网络技术-Cisco路由器
  14. (转)Weblogic 8.1的安装与配置
  15. 从0开始的视频特效制作之路
  16. 聋校计算机教学案例,聋校汉语拼音b、p的教学案例
  17. 计算机是uefi启动 不能装win7,UEFI模式安装Win7系统方法_Win7 Uefi下安装详细教程
  18. IPC$入侵的4种方式
  19. Axure RP 9”已损坏,无法打开。 您应该将它移到废纸篓。
  20. 联想电脑G40无法使用 非要睡眠后才能启用wifi

热门文章

  1. 如何为窗体应用程序显示控制台
  2. IntelliJ Idea入门教程:如何新建项目
  3. Linux 网络之netlink 简介
  4. tickeys 1.1.0 中文版 (键盘打字音效模拟)
  5. Python面试题之数据类型
  6. java元数据的概念_元数据 概念及分类
  7. activemq断线重连
  8. Win32中设置窗体失去焦点,并重新获取焦点
  9. 嵌入式系统硬件构成-嵌入式系统硬件体系结构
  10. ASO代理业务浅析(一)aso服务商