unix网络编程中的五种I/O模型

Unix和Windows同样是由美国的贝尔实验室所开发的独立分时操作系统,它的操作简洁 , 界面优化好,是编程人员必须熟悉理解的一类操作系统之一 。而网络编程是操作系统开发的一项重要内容,尤其是在网络编程中的I/O模型研究是非常重要的一项任务,那么在Unix网络编程中 , 都有哪些I/O模型呢?
1. 阻塞I/O 模型
【unix网络编程中的五种I/O模型】阻塞I/O模型是一类对无法满足条件的数据进行阻塞传递的一类模型,例如,当计算机使用UDP函数recvfrom的时候,从这一类函数的内核层次到应用层、应用层到内核的相互调用的过程当中,计算机会把数据的相关信息如大小、描述符等传递至内核进行审查,假如这时候的对应缓冲区没有数据存在,不满足条件,就会导致函数卡在数据正在传输的位置而阻塞,这个I/O模型就被称为阻塞I/O模型 。
2. 非阻塞I/O 模型
非阻塞模型和阻塞模型是恰好相反的一类I/O模型,具体特征为,在同样适用UDP函数recvfrom时,对数据的相关信息大小、描述符参数给内核进行判断,假如对应缓冲区没有数据,则将数据进行返回处理,并且反复进行这样的操作,直到缓冲区有数据到来 。
3. I/O 复用模型
假如我们在进行I/O模型设计的时候设计了一组套接字 , 只要在这组套接字中出现可读、可写或者直接错误的情况,select命令都会指派相关套接字进行返回操作 , 出现这种情况的时候,我们能够检查套接字的状态信息,查看它们的位置,这种类型的I/O模型就称为复用I/O模型 。
4. 信号驱动I/O 模型
顾名思义,信号驱动模型就是在运转过程中会产生信号信息的一种I/O模型,当我们在同样的操作情况下,如果内核为我们的相关操作已经准备好了数据信息,就会发送相关的SIGIO 信号,在此基础上我们能够使用sigaction 安装 SIGIO 信号的相关处理函数,并实现接受数据报的功能 。
5. 异步I/O模型
所谓异步指的就是操作反应方式和顺序有些与众不同,异步模型中,是内核在进行数据拷贝完毕之后才会通知我们完成了相关的操作 。配合信号驱动的I/O模型,当内核工作完毕之后就能够发送相关的操作信号,并通知我们进行下一步的操作,这就是异步I/O模型 。

unix网络编程中的五种I/O模型的详细内容就为您分享到这里,【精彩生活】jing111.com小编为您精选以下内容,希望对您有所帮助: