作者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/m.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