作者q5332159 (chiu)
看板Grad-ProbAsk
标题[理工] OS I/O种类
时间Sun Dec 31 01:56:13 2017
想请问
PollingI/O, Interrupted I/O
和
Blocking I/O, Non-blocking I/O, AsynchronousI/O
之间有什麽关系吗?
是可以2*3这样互相搭配
还是後面三种各自使用到前面两种运作方式之一?
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 39.10.66.86
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Grad-ProbAsk/M.1514656575.A.5F3.html
1F:推 can18: 上面是Cpu如何处理I/O 12/31 09:10
2F:→ can18: 下面是user process如何handle IO 12/31 09:11
3F:→ can18: 我猜两个应该是完全不相关的 12/31 09:12
4F:推 TWkobe: 可以相关或不相关 下面更是描述整个 12/31 11:48
5F:→ TWkobe: Io event 的处理流程 12/31 11:49
6F:→ q5332159: 我目前理解是blocking io是不载入新的process然後是inte 12/31 13:19
7F:→ q5332159: rrupted io 12/31 13:19
8F:→ q5332159: Non blocking是载入新的但是polling 12/31 13:19
9F:→ q5332159: 然後asynchronous io是载入新的然後interrupted io 12/31 13:20
10F:→ q5332159: 请问这样理解正确吗? 12/31 13:20
11F:推 TWkobe: 你可以想像socket通讯中 某个个server 12/31 14:08
12F:→ TWkobe: 有许多task在listen client端的请求 12/31 14:08
13F:→ TWkobe: 若是blocking io ,假设没有pending request 12/31 14:09
14F:→ TWkobe: 则会被强迫一直等到client端有请求 12/31 14:10
15F:推 TWkobe: 而nonblocking就可以此时切换下一个task作别的事 12/31 14:11
16F:→ TWkobe: 至於怎麽检查有没有pending你要用polling 12/31 14:13
17F:→ TWkobe: 或interrupt都可以 所以block/nonblocking 12/31 14:13
18F:→ TWkobe: 看得是一整个流程 12/31 14:14
19F:推 TWkobe: 或者也可以用生产者消耗者问题来思考也行 12/31 14:15
20F:→ q5332159: 了解~那可以再问一下non-blocking和asynchronous差别吗 12/31 15:02
21F:→ q5332159: ?觉得两个好像~ 12/31 15:02