怎么才能锻炼肌肉:Linux中的几种I/O模型对比
来源:百度文库 编辑:偶看新闻 时间:2024/05/03 06:51:38
在Unix/Linux下共有五种I/O模型,分别是:
1)阻塞I/O
2)非阻塞I/O
3)I/O复用(select和poll)
4)信号驱动I/O(SIGIO)
5)异步I/O(Posix.1的aio_系列函数)
这几个模型,有时还真把我给弄糊涂了,今天就特意来总结比较一下:
阻塞I/O:
应用程序调用一个IO函数,导致应用程序阻塞,等待数据准备好。 如果数据没有准备好,一直等待….数据准备好了,从内核拷贝到用户空间,IO函数返回成功指示
非阻塞I/O:
我们把一个套接口设置为非阻塞就是告诉内核,当所请求的I/O操作无法完成时,不要将进程睡眠,而是返回一个错误。这样我们的I/O操作函数将不断的测试数据是否已经准备好,如果没有准备好,继续测试,直到数据准备好为止。在这个不断测试的过程中,会大量的占用CPU的时间。
I/O复用(select和poll):
I/O复用模型会用到select或者poll函数,这两个函数也会使进程阻塞,但是和阻塞I/O所不同的的,这两个函数可以同时阻塞多个I/O操作。而且可以同时对多个读操作,多个写操作的I/O函数进行检测,直到有数据可读或可写时,才真正调用I/O操作函数。
信号驱动I/O(SIGIO):
首先我们允许套接口进行信号驱动I/O,并安装一个信号处理函数,进程继续运行并不阻塞。当数据准备好时,进程会收到一个SIGIO信号,可以在信号处理函数中调用I/O操作函数处理数据。
异步I/O(Posix.1的aio_系列函数):
当一个异步过程调用发出后,调用者不能立刻得到结果。实际处理这个调用的部件在完成后,通过状态、通知和回调来通知调用者的输入输出操作
linux下的direct i/o
能介绍一下:winsock2 重叠I/O模型么
I.O.I.O..
战略管理中,R/B模型和I/O模型的含义分别是怎样的?
i.o.i.o.是什么意思?
什么是I.O.I.O?
微机中的I/O接口卡位于_______之间
游戏光盘安装中的i/o问题
微机中的I/O接口卡位于________之间。
微机中的I/O接口卡位于 之间
i.o.i.o的英语版伴奏
I/O是什么
I/O是什么意思?
I/O 设备
I/O错误。
什么是I/O
I/O error131
设计中的对比
怎么我一装东西几提示 I/O错误啊
谁知道几种常用的洗衣粉去污力对比情况?
请教linux和windows的性能对比?
t o i a 可组成哪种饮料名
求教几款集成显卡对比~
***几款显卡的对比***