Skip to content

Commit 9ea7f35

Browse files
committed
fix typo
1 parent f5aae14 commit 9ea7f35

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

source/chapter8/1io-interface.rst

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -280,7 +280,7 @@ IO multiplexing对应的I/O系统调用是 ``select`` 和 ``epoll`` 等,也称
280280
信号驱动IO(signal driven I/O)
281281
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
282282

283-
当进程发出一个 ``read`` 系统调用时,会向内核注册一个信号处理函数,然后系统调用返回,进程不会被阻塞,而是继续执行。当内核中的IO数据就绪时,会发送一个信号给进程,进程便在信号处理函数中调用IO读取数据。这是模型的特点是,采用了回调机制,这样开发和调试应用的难度加大。
283+
当进程发出一个 ``read`` 系统调用时,会向内核注册一个信号处理函数,然后系统调用返回,进程不会被阻塞,而是继续执行。当内核中的IO数据就绪时,会发送一个信号给进程,进程便在信号处理函数中调用IO读取数据。此模型的特点是,采用了回调机制,这样开发和调试应用的难度加大。
284284

285285
异步IO(Asynchronous I/O)
286286
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -310,4 +310,4 @@ IO multiplexing对应的I/O系统调用是 ``select`` 和 ``epoll`` 等,也称
310310

311311
有人可能会说,执行非阻塞IO系统调用的用户进程并没有被阻塞。其实这里定义中所指的 **IO操作** 是指实际的 **IO操作** 。比如,非阻塞IO在执行 ``read`` 系统调用的时候,如果内核中的IO数据没有准备好,这时候不会block进程。但是当内核中的IO数据准备好且收到用户进程发出的 ``read`` 系统调用时(处于第二阶段), 内核中的 ``read`` 系统调用的实现会将数据从kernel拷贝到用户内存中,这个时候进程是可以被阻塞的。
312312

313-
而异步IO则不一样,当用户进程发起IO操作之后,就直接返回做其它事情去了,直到内核发送一个通知,告诉用户进程说IO完成。在这整个过程中,用户进程完全没有被阻塞。
313+
而异步IO则不一样,当用户进程发起IO操作之后,就直接返回做其它事情去了,直到内核发送一个通知,告诉用户进程说IO完成。在这整个过程中,用户进程完全没有被阻塞。

0 commit comments

Comments
 (0)