From e4c5f6d1f544fe87f2d3055e82748571f7cef512 Mon Sep 17 00:00:00 2001 From: CyC2018 <1029579233@qq.com> Date: Tue, 20 Mar 2018 23:43:37 +0800 Subject: [PATCH] auto commit --- notes/Linux.md | 85 +++++++++++++++++- pics/00eda100-dba1-4ec2-9140-5fe5f3855951.jpg | Bin 0 -> 14336 bytes pics/1582217a-ed46-4cac-811e-90d13a65163b.png | Bin 0 -> 46080 bytes pics/5e9b10f3-9504-4483-9667-d4770adebf9f.png | Bin 0 -> 27648 bytes pics/b4b29aa9-dd2c-467b-b75f-ca6541cb25b5.jpg | Bin 0 -> 29696 bytes pics/dbc5c9f1-c13c-4d06-86ba-7cc949eb4c8f.jpg | Bin 0 -> 38912 bytes 6 files changed, 83 insertions(+), 2 deletions(-) create mode 100644 pics/00eda100-dba1-4ec2-9140-5fe5f3855951.jpg create mode 100644 pics/1582217a-ed46-4cac-811e-90d13a65163b.png create mode 100644 pics/5e9b10f3-9504-4483-9667-d4770adebf9f.png create mode 100644 pics/b4b29aa9-dd2c-467b-b75f-ca6541cb25b5.jpg create mode 100644 pics/dbc5c9f1-c13c-4d06-86ba-7cc949eb4c8f.jpg diff --git a/notes/Linux.md b/notes/Linux.md index 3365a392..fdaeb074 100644 --- a/notes/Linux.md +++ b/notes/Linux.md @@ -50,7 +50,10 @@ * [九、进程管理](#九进程管理) * [查看进程](#查看进程) * [查看端口](#查看端口) -* [十、IO 多路复用](#十io-多路复用) +* [十、I/O 多路复用](#十io-多路复用) + * [概念理解](#概念理解) + * [I/O 模型](#io-模型) + * [select() poll() epoll()](#select-poll-epoll) * [参考资料](#参考资料) @@ -1010,10 +1013,88 @@ ps aux | grep threadx netstat -anp | grep 80 ``` -# 十、IO 多路复用 +# 十、I/O 多路复用 +## 概念理解 + +I/O Multiplexing 又被称为 Event Driven I/O,它可以使用单个进程来处理多个 I/O 事件。它的基本原理是,先挂起进程,通过不断轮询监听的 I/O 事件,在一个或多个 I/O 事件发生后才将控制权返回给进程。 + +## I/O 模型 + +- 阻塞(Blocking) +- 非阻塞(Non-blocking) +- 同步(Synchronous) +- 异步(Asynchronous) + +阻塞非阻塞是等待数据的方式,阻塞要求用户程序停止执行,直到 I/O 完成,而非阻塞在 I/O 完成之前还可以继续执行。 + +同步异步是获知 I/O 完成的方式,同步需要时刻关心 I/O 是否已经完成,异步无需主动关心,在 I/O 完成时它会收到通知。 + +
ygLaYDyzqRT+lbrut67GVF1jg~-0u!lzpLfj)j>OkG^wIH2n=wh8JN#q
zL~Sk9qVK40O!Po*RTMw0CY6T~5pmtDK_q9^V*9ruuVwk9s?DjjV8*)|2e?$?d`OwY
zBMt0> evF+6nt|KqvC*}wb
z R$pU(I 8!C_1!K%3l7>1lAg81r4{*mGGQw92a&l
z7DO+k%NV}v8Y^NC|2u~Mtc9Omy<39F5a~2rbTasQIHY9?JVlFe{ljUYoNvgEZ
zWwk?M*9c=C#L(TBjIjv6OK%!OEBffCgJ-YD+2OVskhW+B_$x8ss$2Uxr8Ohe3v&w-
zSni
u-^@dm)5q-nTw??nFJW
z`6?O(t#RG!jyaQjrgkwW`tOEMuLlCS4wp!Be~2$8*}Lmep>Ofe1sk=mvXG;Q8GzN2H_
zkSpI=8BCuhG4nKA&5bRvf4!MGj}P@nQH=IH#y4NG`=A=fAja}$yEDxKGgPi;QGFVI
znmpci
#V1-mV!lqXk7wIpw!scHXti&;`O%6gNh77
zSri1T<{7Id2>s*~cN#m44|jMoKa_p>hy7DHnIdlDs}w%7UoNH>f@JNhqHK36&AOv>
z`8}G)i^jE`f~|;9_r2JlQ!w0l3C!s>0dr}h0&-!;CPn)e`=9-8<)vb6;k~RAU?jsrFnITJ?^?bn#H05H&rTWS@)-ag3TWAUT*)
zX)tdyw{*yGrihx92af}X`(}Q?uYS0yHi
zY9-nkC4YiE+V`y{caQF17uJdnjZ&q5o|*opqSgQF;t^OP`0VDlW#+P+=VO=3x*1(-
zcY6+Y6JL=!8)?%S?d??$p5ah4bFcbMK3k{VWwNQUt(;eWS6iJ?^TI7)=&g?nD&Zl
zMn(tJT3|FB6Qk}0ZYC
z=6Ch?;OOJxPT0k{5)v_IsTW}ctrMamd4s