Linux系統中的I O模型

2021-06-22 22:52:44 字數 820 閱讀 5014

1.linux系統中i/o模型

io模型有四種:

(1)同步阻塞i/o模型

(2)同步非阻塞i/o模型

(3)非同步阻塞i/o模型

(4)非同步非阻塞i/o模型

備註,像select、poll以及epoll屬於是非同步阻塞io的類別。阻塞與非阻塞是正對程序自身而言的,就是程序在進行io操作的時候,可不可以處理其他的任務。同步與非同步是程序和核心的互動上,例如,程序呼叫read系統呼叫時,一定要等到read系統呼叫返回結果為止,這稱之為「同步」。程序呼叫read系統呼叫時立即返回,等資料已經準備好後,再通知程序發起read操作,這稱之為「非同步」

2.各個io的模型的流程圖

(1)同步阻塞io

(2)同步不阻塞io

(3)非同步阻塞io

(4)非同步不阻塞io

參見ibm developworks文章《使用非同步 i/o 大大提高應用程式的效能》

Linux系統的五種IO模型

在linux系統中,共有5種io模型,它們分別是 阻塞io模型,非阻塞io模型,訊號驅動io模型,多路復用io模型和非同步io模型 執行io操作的過程分為兩個步驟 資料準備和資料拷貝 程序或執行緒等待某個條件,如果條件不滿足,一直等下去 如果條件滿足,進行下一步操作 應用程序通過系統呼叫recvfr...

UNIX系統的IO模型

其實並非原創,只是摘錄了stevens的大作 unix網路程式設計 寫下來,一 加深理解和記憶 二 書是借的,記錄一下備忘。感謝臻,借我此書一閱,受益匪淺。阻塞式i o 非阻塞式i o i o復用 訊號驅動式i o 非同步i o 乙個輸入操作通常包括兩個不同的階段 1 等待資料準備好 2 從核心向程...

linux系統中的IO操作

同步io分為阻塞io 非阻塞io 訊號驅動的io和多路轉接io。阻塞io 一直阻塞程序直到完成io操作。非阻塞io 有資料時進行io操作,沒有資料時立即返回不阻塞程序。訊號驅動io 當有資料到來是傳送訊號給程序執行io操作,提高cpu的利用率。當設定開啟檔案描述字o async標誌是可以用於訊號驅動...