socket编程中五种I/O模型介绍

Posted 我要出家当道士

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了socket编程中五种I/O模型介绍相关的知识,希望对你有一定的参考价值。

unix下可用五种I/O模型,分别是:
    1、阻塞式 I/O
    2、非阻塞式 I/O
    3、I/O 复用(select、poll)
    4、信号驱动式 I/O(SIGIO)
    5、异步 I/O(POSIX的aio_函数)
输入操作基本上分为两步:
    1、等待数据准备好;(数据从网络中到达,其被复制到内核中的某个缓冲区中)
    2、从内核向进程复制数据;(内核缓冲区 --> 应用进程缓冲区)

1、阻塞式 I/O 模型

    recvfrom函数可以视为是系统调用,无论它是如何实现的,一般都会从应用进程空间中运行切换到内核空间中运行,一段时间后再切换回来。
    如图6-1所示,进程调用recvfrom后,其系统调用 直到数据报达到且被复制到应用程序的缓冲区中 或 发生错误才返回。整个过程中进程是阻塞的,recvfrom成功返回后进程才开始处理数据。

2、非阻塞式 I/O 模型

以上是关于socket编程中五种I/O模型介绍的主要内容,如果未能解决你的问题,请参考以下文章

程序员必备:linux网络I/O+Reactor模型

vSocket模型详解及select应用详解

socket编程:I/O模型

Socket I/O模型之select模型

I/O模型介绍

Nginx 之 I/O模型介绍