首页 > 代码库 > 5种io模式

5种io模式

1)阻塞I/O(blocking I/O)

发起请求,等待数据报准备好,拷贝数据,数据返回指令

应用程序调用一个IO函数,导致应用程序阻塞,等待数据准备好。 如果数据没有准备好,一直等待….数据准备好了,从内核拷贝到用户空间,IO函数返回成功指示。

2)非阻塞I/O (nonblocking I/O)

轮训数据报什么时候准备好,准备好之后阻塞拷贝数据,数据返回指令


3) I/O复用(select 和poll) (I/O multiplexing)

就是应用函数select poll epoll 监听就绪的设备 select就是遍历查询每个设备的就绪状态 如果就绪再返回,接着阻塞拷贝数据

 

4)信号驱动I/O (signal driven I/O (SIGIO))


5)异步I/O (asynchronous I/O (the POSIX aio_functions))

 

首先来讲一下linux的组成,linux的每一个对象都可以称为文件,比如显示器、 打印机、驱动程序等等,对于文件会有一个描述符叫做fd(file description)。

 

这个文章讲的很好 http://blog.csdn.net/jay900323/article/details/18141217/

5种io模式