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、从内核向进程复制数据;(内核缓冲区 --> 应用进程缓冲区)
如图6-1所示,进程调用recvfrom后,其系统调用 直到数据报达到且被复制到应用程序的缓冲区中 或 发生错误才返回。整个过程中进程是阻塞的,recvfrom成功返回后进程才开始处理数据。
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模型介绍的主要内容,如果未能解决你的问题,请参考以下文章