5种IO模型
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了5种IO模型相关的知识,希望对你有一定的参考价值。
1 阻塞式I/O模型:
应用进程 --> 内核 (1 没有数据就等待数据,2当数据到来的时候,内核把数据复制到用户空间)--> 应用进程
2 非阻塞式I/O模型:
应用进程 --> 内核 (1 没有数据的时候,应用进程每隔一段时间就调用一次,2当数据到来的时候,内核把数据复制到用户空间)--> 应用进程
3 I/O 复用模型:
专门设置一个进程(select进程)每隔一定时间轮询注册在它上门的IO是否有数据,如果有就通知有数据的那个进程(注册在select上面的进程)
然后有数据的那个进程--->内核(2 内核把数据复制到用户空间) -->有数据的进程
4 信号驱动模型:
应用进程-->内核(应用进程通知完内核,就去干其他事情了,当有数据到达的时候,内核信号通知应用进程,然后应用进程阻塞,内核把数据复制到用户空间,然后返回)
5 异步模型:
应用进程 -->内核(通知完内核后,应用进程就可以干其他的了,当有数据到来的时候,内核也不用通知应用进程,让应用进程阻塞,而是内核把数据复制到用户空间后才通知应用进程)
同步:内核拷贝数据的时候,应用进程是阻塞状态
异步:内核拷贝数据的时候,应用进程还在做自己的事情
阻塞,非阻塞,I/O复用,信号驱动,都是同步。最后的异步才是真正的异步。
以上是关于5种IO模型的主要内容,如果未能解决你的问题,请参考以下文章