號誌介紹


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

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

號誌不能在使用者模式下實現,因為在兩個或更多進程試圖同時存取變數時總會出現競爭條件。 它始終需要作業系統的支援才能實施。

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

  • 計算號誌
  • 二進位制號誌或互斥量

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