首页 >运维 >linux运维 >5中oi模型怎么用?

5中oi模型怎么用?

PHP中文网
PHP中文网原创
2017-06-20 09:21:341195浏览

应用进程是:小明

内核:小王

1 阻塞式I/O模型:

  小明向小王借大米做饭,小王暂时没有,但是小明这时候其它啥事情也不做了(例如这时候他还可以洗菜),就在哪里等的,直到小王有了大米,然后小明把大米搬运到自己家里,开始做饭。

2 非阻塞式I/O模型:

  小明向小王借大米做饭,小王暂时没有,但是小明这时候这时候他去洗菜了,每洗一回就去问小王大米准备好了吗,直到小王有了大米,然后小明把大米搬运到自己家里,开始做饭。

3 I/O 复用模型:

      村里面好多人做饭没有米了,都去向小王借米。这样的话无论是向小王借米的人每隔一段时间问小王也好,还是在哪里死等小王的消息也罢,借米的人都至少不会好好的做其他的事情了,

   这样大家就找一个代理人,然后大家吧情况和这个代理人说了,让这个代理人和小王交互。等有数据到达的时候,这个代理人就通知具体的某个人,然后这个人把大米搬运到自己家里面,开始做饭。

4 信号驱动模型:

    小明向小王借大米做饭,小王暂时没有,但是小明这时候去洗菜,而不是在哪里等着,或者不断的问小王,因为小王有了大米会主动通知小明,等通知到来的时候,小明把大米搬运到自己家里,开始做饭。

5 异步模型:

     小明向小王借大米做饭,小明向小王说完借大米的事情就去做别的事情了,等小王有了大米,并且主动把大米搬运到小明的家里,才通知小明大米到了,这时候小明开始做饭。

 

同步:应用进程主动拷贝数据到用户空间。

异步:内核负责拷贝数据到用户空间,这个过程中应用进程还在做自己的事情。

阻塞,非阻塞,I/O复用,信号驱动,都是同步。最后的异步才是真正的异步。

 

以上是5中oi模型怎么用?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn