系統I/O模型
阿新 • • 發佈:2022-04-16
同步/非同步
關注的是事件處理的訊息通訊機制,在等待一件事情的處理結果時,被呼叫者是否提供完成通知
-
同步
呼叫者等待被呼叫者返回訊息後才能繼續執行,如果被呼叫者不提供訊息返回則為同步,同步需要呼叫者主動詢問事件是否完成程序發出請求後,核心不提供通知機制,即檔案完成IO不通知程序,需要程序主動詢問核心
-
非同步
被呼叫者通過狀態、通知和回撥機制主動通知呼叫者,即非同步會主動返回被呼叫者狀態給呼叫者程序發出請求後,核心會在呼叫處理完成後返回呼叫結果給程序
阻塞/非阻塞
關注呼叫者在等待結果返回之前所處的狀態
- 阻塞
指IO操作需要徹底完成後才返回到使用者空間,呼叫結果返回之前,呼叫者被掛起 - 非阻塞
指IO操作被呼叫後立即返回給使用者一個狀態值,無需等到IO操作徹底完成,最終的呼叫結果返回之前,呼叫者不被掛起,可以繼續處理其他事件