为了应对日益增长的并发需求,操作系统的 I/O 模型经历了一场从“死等”到“全自动”的进化。

这场进化的核心矛盾在于:如何处理 I/O 操作的两个阶段(等待数据就绪、数据从内核拷贝到用户空间)

模型对比

模型第一阶段
(等待)
第二阶段
(拷贝)
特点结论
阻塞 I/O阻塞阻塞程序“死等”,简单但低效同步
非阻塞 I/O轮询 (非阻塞)阻塞“忙轮询”,解放线程但空转 CPU同步
I/O 多路复用阻塞 (select/epoll)阻塞内核代管,单线程处理万级并发同步
信号驱动 I/O非阻塞阻塞“取餐铃”通知,省去轮询辛苦同步
异步 I/O非阻塞非阻塞全自动,内核送饭到桌上异步

通过理解这些模型的演进,你将能够根据业务场景选择最合适的并发策略。