From 50fab322bb02585b0ebf6882df75fba80c26f659 Mon Sep 17 00:00:00 2001 From: CyC2018 <1029579233@qq.com> Date: Sun, 1 Apr 2018 10:55:06 +0800 Subject: [PATCH] auto commit --- notes/Linux.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/notes/Linux.md b/notes/Linux.md index 16c19d3f..bcff25dd 100644 --- a/notes/Linux.md +++ b/notes/Linux.md @@ -1131,7 +1131,7 @@ I/O Multiplexing 又被称为 Event Driven I/O,它可以让单个进程具有 ### 2. 同步-非阻塞 -非阻塞意味着用户程序在执行系统调用后还可以执行,内核并不是马上执行完 I/O,而是以一个错误码来告知用户程序 I/O 还未完成。为了获得 I/O 完成事件,用户程序必须调用多次系统调用去询问内核,甚至是忙等,也就是在一个循环里面一直询问并等待。 +非阻塞意味着用户程序在执行系统调用后还可以继续执行,内核并不是马上执行完 I/O,而是以一个错误码来告知用户程序 I/O 还未完成。为了获得 I/O 完成事件,用户程序必须调用多次系统调用去询问内核,甚至是忙等,也就是在一个循环里面一直询问并等待。 由于 CPU 要处理更多的用户程序的询问,因此这种模型的效率是比较低的。 @@ -1145,7 +1145,7 @@ I/O Multiplexing 又被称为 Event Driven I/O,它可以让单个进程具有 ### 4. 异步-非阻塞 -该模式下,I/O 操作会立即返回,之后可以处理其它操作,并且在 I/O 完成时会收到一个通知,此时会中断正在处理的操作,然后完成 I/O 事务。 +该模式下,I/O 操作会立即返回,之后可以处理其它操作,并且在 I/O 完成时会收到一个通知,此时会中断正在处理的操作,然后继续的操作。

@@ -1322,7 +1322,7 @@ select 和 poll 方式中,进程只有在调用一定的方法后,内核才 新版本的 epoll_create(int size) 参数 size 不起任何作用,在旧版本的 epoll 中如果描述符的数量大于 size,不保证服务质量。 -epoll_ct() 执行一次系统调用,用于向内核注册新的描述符或者是改变某个文件描述符的状态。已注册的描述符在内核中会被维护在一棵红黑树上,通过回调函数内核会将 I/O 准备好的描述符加入到一个链表中管理。 +epoll_ctl() 执行一次系统调用,用于向内核注册新的描述符或者是改变某个文件描述符的状态。已注册的描述符在内核中会被维护在一棵红黑树上,通过回调函数内核会将 I/O 准备好的描述符加入到一个链表中管理。 epoll_wait() 取出在内核中通过链表维护的 I/O 准备好的描述符,将他们从内核复制到程序中,不需要像 select/poll 对注册的所有描述符遍历一遍。