1. 程式人生 > 其它 >系統I/O模型

系統I/O模型

同步/非同步
關注的是事件處理的訊息通訊機制,在等待一件事情的處理結果時,被呼叫者是否提供完成通知

  • 同步
    呼叫者等待被呼叫者返回訊息後才能繼續執行,如果被呼叫者不提供訊息返回則為同步,同步需要呼叫者主動詢問事件是否完成
    程序發出請求後,核心不提供通知機制,即檔案完成IO不通知程序,需要程序主動詢問核心

  • 非同步
    被呼叫者通過狀態、通知和回撥機制主動通知呼叫者,即非同步會主動返回被呼叫者狀態給呼叫者
    程序發出請求後,核心會在呼叫處理完成後返回呼叫結果給程序

阻塞/非阻塞
關注呼叫者在等待結果返回之前所處的狀態

  • 阻塞
    指IO操作需要徹底完成後才返回到使用者空間,呼叫結果返回之前,呼叫者被掛起
  • 非阻塞
    指IO操作被呼叫後立即返回給使用者一個狀態值,無需等到IO操作徹底完成,最終的呼叫結果返回之前,呼叫者不被掛起,可以繼續處理其他事件