5种IO模型
2022-04-26 14:11:51 10 举报
1. 阻塞IO模型:在数据读取或写入之前,进程会被挂起,直到数据操作完成。 2. 非阻塞IO模型:即使数据操作未完成,进程也不会被挂起,可以进行其他操作。 3. 信号驱动IO模型:通过注册信号处理函数来通知进程数据就绪,避免了轮询的开销。 4. 异步IO模型:通过将数据操作交给操作系统内核来完成,进程可以在等待数据操作完成的同时执行其他任务。 5. 事件驱动IO模型:通过检测文件描述符的状态变化来触发事件,避免了轮询的开销。
作者其他创作
大纲/内容
将数据从内核拷贝到用户空间
5种IO模型
数据报准备好拷贝数据报
数据拷贝到应用缓冲区期间进程阻塞
系统调用sigaction
递交SIGIO
进程反复调用recvfrom,等待返回成功指示(轮询)
信号处理程序
无数据报准备好
等待数据
信号驱动IO
拷贝完成
recvfrom
EWOULDBLOCK
非阻塞型IO
系统调用
表示阻塞时间
进程受阻于select调用,等待可能多个套接口中的任一个变为可读
多路复用IO
进程继续执行
内核无数据报准备好
异步IO
递交在aio_read中指定的信号
应用进程select
处理数据报
返回可读条件
阻塞时间
应用进程建立SIGIO的信号处理程序
返回成功指示
应用进程aio_read
内核
应用进程recvfrom
返回
信号处理程序处理数据报
阻塞型IO
进程阻塞于recvfrom的调用
收藏
0 条评论
回复 删除
下一页