看板 Grad-ProbAsk 關於我們 聯絡資訊
想請問 PollingI/O, Interrupted I/O 和 Blocking I/O, Non-blocking I/O, AsynchronousI/O 之間有什麼關係嗎? 是可以2*3這樣互相搭配 還是後面三種各自使用到前面兩種運作方式之一? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 39.10.66.86 ※ 文章網址: https://www.ptt.cc/bbs/Grad-ProbAsk/M.1514656575.A.5F3.html
can18: 上面是Cpu如何處理I/O 12/31 09:10
can18: 下面是user process如何handle IO 12/31 09:11
can18: 我猜兩個應該是完全不相關的 12/31 09:12
TWkobe: 可以相關或不相關 下面更是描述整個 12/31 11:48
TWkobe: Io event 的處理流程 12/31 11:49
q5332159: 我目前理解是blocking io是不載入新的process然後是inte 12/31 13:19
q5332159: rrupted io 12/31 13:19
q5332159: Non blocking是載入新的但是polling 12/31 13:19
q5332159: 然後asynchronous io是載入新的然後interrupted io 12/31 13:20
q5332159: 請問這樣理解正確嗎? 12/31 13:20
TWkobe: 你可以想像socket通訊中 某個個server 12/31 14:08
TWkobe: 有許多task在listen client端的請求 12/31 14:08
TWkobe: 若是blocking io ,假設沒有pending request 12/31 14:09
TWkobe: 則會被強迫一直等到client端有請求 12/31 14:10
TWkobe: 而nonblocking就可以此時切換下一個task作別的事 12/31 14:11
TWkobe: 至於怎麼檢查有沒有pending你要用polling 12/31 14:13
TWkobe: 或interrupt都可以 所以block/nonblocking 12/31 14:13
TWkobe: 看得是一整個流程 12/31 14:14
TWkobe: 或者也可以用生產者消耗者問題來思考也行 12/31 14:15
q5332159: 了解~那可以再問一下non-blocking和asynchronous差別嗎 12/31 15:02
q5332159: ?覺得兩個好像~ 12/31 15:02