信號量介紹

為了擺脫浪費喚醒信號的問題,Dijkstra提出了一種包含存儲所有喚醒調用的方法。 迪克斯特拉(Dijkstra)表示,生產者可以將喚醒調用存儲在一個變數中,而不是將喚醒調用直接發送給消費者。 任何消費者只要需要就可以讀取。

信號量是存儲從生產者轉移到消費者的整個喚醒調用變數。 它是在內核模式下自動進行讀取,修改和更新的變數。

信號量不能在用戶模式下實現,因為在兩個或更多進程試圖同時訪問變數時總會出現競爭條件。 它始終需要操作系統的支持才能實施。

根據情況的需求,信號量可以分為兩類。

  • 計算信號量
  • 二進位信號量或互斥量

在接下的教學文章中,我們將詳細討論它們。


上一篇: 睡眠和喚醒 下一篇: 計算信號量的問題