Unix网络编程中,selectpoll的IO复用原理是怎样的?
- 内容介绍
- 文章标签
- 相关推荐
本文共计3608个文字,预计阅读时间需要15分钟。
IO复用select/poll系列文章导航:《Unix网络编程》笔记:描述进程需要一种预先告知内核的能力,以便内核一旦发现进程指定的I/O条件就立即通知该进程。这种能力使得内核能及时响应进程的I/O请求。
IO复用之select/poll概述系列文章导航:《Unix 网络编程》笔记
进程需要一种预先告知内核的能力,使得内核一旦发现进程指定的一个或多个 I/O 条件准备就绪,他就通知进程。这个能力被称为 I/O 复用。
典型应用场景有:
- 客户处理多个描述符(如之前的应用那样)
- 客户同时处理多个套接字,不过这种情况比较少见
- 服务器既要处理监听套接字,又要处理已经连接的套接字
- 服务器既要处理 TCP,又要处理 UDP
- 服务器要处理多个服务或多个协议
- 许多重要的应用程序也需要这种技术
Unix 下的 5 种 I/O 模型:
- 阻塞式 I/O
- 非阻塞式 I/O
- I/O 复用(select 和 poll)
- 信号驱动式 I/O (SIGIO)
- 异步 I/O (aio_)
输入操作的阶段
- 等待数据准备好
- 从内核向进程复制数据
不同的 I/O 模型就是这两个阶段的行为的不同
阻塞式 I/O阻塞 I/O 就是两个阶段都等待。
本文共计3608个文字,预计阅读时间需要15分钟。
IO复用select/poll系列文章导航:《Unix网络编程》笔记:描述进程需要一种预先告知内核的能力,以便内核一旦发现进程指定的I/O条件就立即通知该进程。这种能力使得内核能及时响应进程的I/O请求。
IO复用之select/poll概述系列文章导航:《Unix 网络编程》笔记
进程需要一种预先告知内核的能力,使得内核一旦发现进程指定的一个或多个 I/O 条件准备就绪,他就通知进程。这个能力被称为 I/O 复用。
典型应用场景有:
- 客户处理多个描述符(如之前的应用那样)
- 客户同时处理多个套接字,不过这种情况比较少见
- 服务器既要处理监听套接字,又要处理已经连接的套接字
- 服务器既要处理 TCP,又要处理 UDP
- 服务器要处理多个服务或多个协议
- 许多重要的应用程序也需要这种技术
Unix 下的 5 种 I/O 模型:
- 阻塞式 I/O
- 非阻塞式 I/O
- I/O 复用(select 和 poll)
- 信号驱动式 I/O (SIGIO)
- 异步 I/O (aio_)
输入操作的阶段
- 等待数据准备好
- 从内核向进程复制数据
不同的 I/O 模型就是这两个阶段的行为的不同
阻塞式 I/O阻塞 I/O 就是两个阶段都等待。

