Unix网络编程中,selectpoll的IO复用原理是怎样的?

2026-05-25 05:190阅读0评论SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计3608个文字,预计阅读时间需要15分钟。

Unix网络编程中,select/poll的IO复用原理是怎样的?

IO复用select/poll系列文章导航:《Unix网络编程》笔记:描述进程需要一种预先告知内核的能力,以便内核一旦发现进程指定的I/O条件就立即通知该进程。这种能力使得内核能及时响应进程的I/O请求。

IO复用之select/poll

系列文章导航:《Unix 网络编程》笔记

概述

进程需要一种预先告知内核的能力,使得内核一旦发现进程指定的一个或多个 I/O 条件准备就绪,他就通知进程。这个能力被称为 I/O 复用。

典型应用场景有:

  • 客户处理多个描述符(如之前的应用那样)
  • 客户同时处理多个套接字,不过这种情况比较少见
  • 服务器既要处理监听套接字,又要处理已经连接的套接字
  • 服务器既要处理 TCP,又要处理 UDP
  • 服务器要处理多个服务或多个协议
  • 许多重要的应用程序也需要这种技术
IO模型

Unix 下的 5 种 I/O 模型:

  1. 阻塞式 I/O
  2. 非阻塞式 I/O
  3. I/O 复用(select 和 poll)
  4. 信号驱动式 I/O (SIGIO)
  5. 异步 I/O (aio_)

输入操作的阶段

  1. 等待数据准备好
  2. 从内核向进程复制数据

不同的 I/O 模型就是这两个阶段的行为的不同

阻塞式 I/O

阻塞 I/O 就是两个阶段都等待。

阅读全文

本文共计3608个文字,预计阅读时间需要15分钟。

Unix网络编程中,select/poll的IO复用原理是怎样的?

IO复用select/poll系列文章导航:《Unix网络编程》笔记:描述进程需要一种预先告知内核的能力,以便内核一旦发现进程指定的I/O条件就立即通知该进程。这种能力使得内核能及时响应进程的I/O请求。

IO复用之select/poll

系列文章导航:《Unix 网络编程》笔记

概述

进程需要一种预先告知内核的能力,使得内核一旦发现进程指定的一个或多个 I/O 条件准备就绪,他就通知进程。这个能力被称为 I/O 复用。

典型应用场景有:

  • 客户处理多个描述符(如之前的应用那样)
  • 客户同时处理多个套接字,不过这种情况比较少见
  • 服务器既要处理监听套接字,又要处理已经连接的套接字
  • 服务器既要处理 TCP,又要处理 UDP
  • 服务器要处理多个服务或多个协议
  • 许多重要的应用程序也需要这种技术
IO模型

Unix 下的 5 种 I/O 模型:

  1. 阻塞式 I/O
  2. 非阻塞式 I/O
  3. I/O 复用(select 和 poll)
  4. 信号驱动式 I/O (SIGIO)
  5. 异步 I/O (aio_)

输入操作的阶段

  1. 等待数据准备好
  2. 从内核向进程复制数据

不同的 I/O 模型就是这两个阶段的行为的不同

阻塞式 I/O

阻塞 I/O 就是两个阶段都等待。

阅读全文