最近读了波网络 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 处理完毕后返回进程。最后应用进程解除阻塞状态,处理数据。