5种I/O模型
1.阻塞式I/O模型
其系统调用直到数据报到达且被拷贝到应用进程的缓冲区中或者发生错误才返回。
2.非阻塞式I/O模型
应用进程持续轮询内核,以查看某个操作是否就绪
3.I/O多路复用(事件驱动)模型
A先发请求给B,B准备好了在执行通知A,然后A在执行并返回结果。
4.信号驱动式I/O(SIGIO)
同上,A先发请求给B,AB中间建立SIGIO信号通道。节约IO
5.异步I/O模型
A先发请求给B,A直接返回,等B准备结束且拿到结果后返回。(回调函数的样子)
IO多路复用:通过一种机制,一个进程可以监视多个描述符,一旦某个描述符就绪能够通知程序进行相应的读写操作。
总结:
IO分为阻塞,非阻塞。异步,非异步。
区别在于A阶段的请求是否需要等待直到完成,是就为阻塞。
结果阶段是由A返回还是由B 若B返回结果则为异步。
BIO
同步阻塞IO
NIO
非阻塞IO
AIO(NIO.2)
异步IO(带回调函数)
网友评论