Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1875901
  • 博文数量: 184
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 2388
  • 用 户 组: 普通用户
  • 注册时间: 2016-12-21 22:26
个人简介

90后空巢老码农

文章分类

全部博文(184)

文章存档

2021年(26)

2020年(56)

2019年(54)

2018年(47)

2017年(1)

我的朋友

分类: LINUX

2018-05-27 22:16:53

UNIX下五种I/O模型如下所示,可以将每一种I/O分为两个部分---->内核等待数据(第一阶段)和内核将数据复制到用户空间(第二阶段)~~~
  • 阻塞式I/O:如果没有数据供读/写,进入睡眠,直到有数据供读/写,直接完成,从第一阶段开始一直阻塞。
  • 非阻塞式I/O:如果没有数据供读/写,返回错误,若有,直接读/写,若第一阶段准备好,阻塞在第二阶段
  • I/O复用:poll, select, pselect, 检测文件描述符状态,第一阶段阻塞在函数本身,第二阶段阻塞在读/写调用
  • 信号驱动式I/O:使用信号,让内核在第一阶段结束时通知进程,进程阻塞在第二阶段
  • 异步I/O:内核直到全部完成两个阶段,才通知进程。。。(甩手掌柜既视感。。。)
简单归纳如下图:

阅读(2597) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~