1. 程式人生 > >linux二進位制訊號量的概念

linux二進位制訊號量的概念

互斥型訊號量必須是同一個任務申請,同一個任務釋放,其他任務釋放無效。同一個任務可以遞迴申請。 二進位制訊號量,一個任務申請成功後,可以由另一個任務釋放。二進位制訊號量實現任務互斥: 印表機資源只有一個,abc三個任務共享,當a取得使用權後,為了防止其他任務錯誤地釋放了訊號量(),必須將印表機房的門關起來(進入臨界段),用完後,釋放訊號量,再把門開啟(出臨界段),其他任務再進去列印。(而互斥型訊號量由於必須由取得訊號量的那個任務釋放,故不會出現其他任務錯誤地釋放了訊號量的情況出現,故不需要有臨界段。互斥型訊號量是二進位制訊號量的子集。) 二進位制訊號量實現任務同步: a任務一直等待訊號量,b任務定時釋放訊號量,完成同步功能

互斥型訊號量必須是同一個任務申請,同一個任務釋放,其他任務釋放無效。同一個任務可以遞迴申請。 二進位制訊號量,一個任務申請成功後,可以由另一個任務釋放。二進位制訊號量實現任務互斥: 印表機資源只有一個,abc三個任務共享,當a取得使用權後,為了防止其他任務錯誤地釋放了訊號量(),必須將印表機房的門關起來(進入臨界段),用完後,釋放訊號量,再把門開啟(出臨界段),其他任務再進去列印。(而互斥型訊號量由於必須由取得訊號量的那個任務釋放,故不會出現其他任務錯誤地釋放了訊號量的情況出現,故不需要有臨界段。互斥型訊號量是二進位制訊號量的子集。) 二進位制訊號量實現任務同步: a任務一直等待訊號量,b任務定時釋放訊號量,完成同步功能