百科名片
互斥電路就是兩個進程不能同時訪問同一臨界資源的臨界區的現象。這種制約關係又可分為直接相互制約和間接相互制約。
相關內容
直接相互制約源於多個進程相互合作完成某一項任務,一組在異步環境下的並發進程,各自的執行結果互為對方的執行條件,從而限制各進程的執行速度的過程稱為並發進程的直接制約。直接制約的並發進程相互合作的制約關係稱為同步關係。間接相互制約源於資源共享,由於共享某一公有資源而引起的在臨界區內不允許並發進程交叉執行的現象,稱為由共享公有資源而造成的對並發進程執行速度的間接制約。這種制約關係稱為互斥(MutualExclusion)。
為了實現進程互斥的同步,作業系統的進程同步機制必須遵循如下準則:空閒讓進,忙則等待,有限等待,讓權等待。互斥同步的本質就是合理地為互斥進程分配臨界資源。在軟體領域內,實現互斥編程的算法有銀行家算法,生產者-消費者算法等,而在硬體設計中,軟體的方法可以借鑑和參考。需要對硬體互斥象進行分析和轉換,進行一些抽象化和具體化的過程。
通過規定輸入信號的優先權別和邏輯功能的真值表,按優先權別分配臨界資源,然後用卡諾圖來設計其實現電路。如優先編碼器,對輸出同為0的兩種輸入狀態選用其中一個由各輸入信號組合輸出信號作為輸出使能信號實現互斥同步。然而,多數互斥具有時序關係,其狀態的轉換與時間有關,必須通過時序電路來實現,通過增加時鐘信號、使能信號、片選信號或其他指令信號作為輸入信號,實現臨界資源的加鎖-解鎖,使之協調各級與門或三態門的動作,實現互斥同步:對於CPU的內部數據匯流排通過軟體的指令來完成,對於記憶體單元,互斥通過讀與控制線和地址匯流排來實現。