wait queue

wait.h 提供一個等待隊列類,用于進(jìn)程等待某種資源或者事件。結(jié)構(gòu)wait_queue_head_t可以被嵌入到資源或者事件的結(jié)構(gòu)中。
進(jìn)程需要的資源不滿足條件,就將回調(diào)函數(shù)加入到資源的等待隊列里,然后調(diào)用schedule切到別的進(jìn)程。
硬件中斷或者別的進(jìn)程都能使資源產(chǎn)生變化,等資源滿足了就遍歷等待隊列調(diào)用回調(diào)。

這是進(jìn)程間同步和異步機(jī)制的基礎(chǔ)。

epoll就是個例子,epoll_ctl,add的時候就是把一個節(jié)點加入了資源fd的等待隊列上。
進(jìn)程互斥鎖,讀寫鎖都差不多。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 必備的理論基礎(chǔ) 1.操作系統(tǒng)作用: 隱藏丑陋復(fù)雜的硬件接口,提供良好的抽象接口。 管理調(diào)度進(jìn)程,并將多個進(jìn)程對硬件...
    drfung閱讀 3,755評論 0 5
  • 案例:當(dāng)串口設(shè)備不可讀的時候(沒有數(shù)據(jù)可讀),那么應(yīng)用程序應(yīng)該怎么辦? 案例:當(dāng)按鍵設(shè)備沒有操作時(按鍵數(shù)據(jù)不可讀...
    小葉大孟閱讀 4,617評論 0 1
  • epoll概述 epoll是linux中IO多路復(fù)用的一種機(jī)制,I/O多路復(fù)用就是通過一種機(jī)制,一個進(jìn)程可以監(jiān)視多...
    發(fā)仔很忙閱讀 11,082評論 4 35
  • wake_up()與wait_event()或者wait_event_timeout成對使用, wake_up_i...
    小葉大孟閱讀 3,418評論 0 1
  • 傳統(tǒng)的BIO BIO和QPS的關(guān)系: 1個線程的qps就是1. 100個線程的qps就是100 1000個線程的q...
    swoft_閱讀 630評論 0 0

友情鏈接更多精彩內(nèi)容