阻塞 非阻塞IO 非同步通知的區別

2022-02-19 07:29:14 字數 456 閱讀 3474

參考:linux裝置驅動開發詳解 --宋寶華

一:它們在時間上先後順序不同:

1.阻塞io首先是發起讀寫io操作,然後系統會呼叫讀寫io的函式,核心在排程這個讀寫操作任務時會檢查資源是否可獲得,由於是阻塞io,所以系統的任務排程會一直等待(阻塞)在這裡(當然,2.6是可搶占核心,不會讓這個程式這麼霸道的佔著cpu不放手)。當資源可用時就開始執行io讀寫操作,然後返回給呼叫處(使用者空間)。

3.非同步通知首先就等待中斷資源可獲得的通知,如果主程式沒有收到通知則幹別的,突然,它收到了這個通知,然後它就按照預先的約定去執行指定的讀寫io的函式(核心空間),然後就返回乙個訊號給主程式(使用者)說操作完成。

阻塞、非阻塞io、非同步通知本身沒有優劣之分,關鍵是你如何運用。

阻塞 非阻塞 同步 非同步通知

就好比,你買東西,付過錢以後,你可以 等著東西做好 同步 主動獲得結果 做其他的。等著老闆做好了喊我 非同步 被動獲得結果 再比如 使用者程式從核心讀取資料,如果核心快取中資料還沒有準備好,如果是同步操作,程序觸發io操作,一直等待或者輪詢的去檢視io操作是否完成 這個步驟不執行結束,接下來的事情都...

IO 同步,非同步,阻塞,非阻塞

參考文章 好文推薦 唉最近真是高產似母豬,剛進新公司工作量暫時不飽和,只能每天學學學學學學查漏補缺啦,學習使我快樂哈哈哈哈哈哈哈哈 標題裡的詞彙相信都經常看到,但是能說清楚的估計20個人裡面能有1個就不錯了,網上的資料也是五花八門,大部分描述差不多,很多時候估計作者本身也是似懂非懂,我也看了很多文章...

同步 非同步 阻塞 非阻塞 I O

一 同步 非同步 首先要是多個事物,只有乙個事物,是不存在同步或非同步的。同步 指協同步調。即,多個事物不能同時進行,必須乙個乙個的來,上乙個事物結束後,下乙個事物才開始。那當乙個事物正在進行時,其他事物在幹嘛呢?嚴格來講並沒有要求,但一般都處於 等待 狀態,因為後面事物的正常進行都需要依賴前面事物...