5种IO模型

1、五种I/O模型:异步

阻塞I/O,非阻塞I/O,I/O复用模型,信号驱动I/O,异步I/O
前四种属于同步iO,最后一种属于异步IO。由于前四种真正的I/O操做将阻塞进程。异步I/O不致使请求被进程阻塞。由内核完成I/O操做。函数

 

一、阻塞IOblog

二、非阻塞IO进程

非阻塞IO,recv返回错误-1(EWOUDBLOCK) 不多用,数据未到的这段时间,数据要一直循环接收(忙等待)同步

 

三、IO复用模型select

管理多个文件描述符,一旦其中一个描述符或多个有数据到来,select就返回。这时再调用recv就不会再阻塞了。循环

 

四、信号驱动IO请求

用户空间程序能够安装信号处理函数,安装以后,程序处理其余任务。一旦有数据到来,用信号来通知信号处理程序,信号处理程序来读取数据。程序

 

五、异步IOim

异步IO与信号驱动IO的区别在于,异步IO中内核将内核缓冲区数据写入到用户缓冲区(推)以后才发信号给进程来处理数据;而信号驱动IO模型中,内核有数据到来时发信号通知进程

由进程的信号处理函数recv来从内核读取数据(拉)。

相关文章
相关标签/搜索