最近读了波网络 I/O 相关的文章,做下总结、摘录。(未完)

经典 I/O 模型

  • 阻塞式 I/O(blocking I/O)

  • 非阻塞式 I/O(non-blocking I/O)

  • I/O 多路复用(I/O multiplexing)

  • 信号驱动式 I/O(signal driven I/O)

  • 异步 I/O(asynchronous I/O)

阻塞式 I/O 模型

对于阻塞式 I/O,以套接字(Socket)的输入操作为例。

  • 1、首先应用进程发起 I/O 系统调用后,应用进程阻塞,转到内核空间处理。
  • 2、之后,内核开始等待数据,等待数据到达之后,将内核中的数据拷贝到用户的缓冲区中,整个 I/O 处理完毕后返回进程。最后应用进程解除阻塞状态,处理数据。