程序的同步和互斥是併發程序的兩種重要的關係,程序互斥反映了程序間的競爭的關係,程序同步反映了程序間協作的關係,從以上對程序互斥和同步的分析中,程序互斥其實就是一種特殊的程序的同步,例如,程序的互斥是程序之間對臨界區的一種排他訪問,當有乙個程序在臨界區是,其他的程序不允許進入臨界區。當在臨界區中的
程序完成任務離開臨界區時,改程序歸還了臨界資源後,該程序通過v操作喚醒了其他等待進入臨界區的程序,被喚醒的程序可以進入臨界區,因此,互斥的程序也是存在乙個程序依賴另乙個程序發出的訊息而形成一種制約與協作的關係,因此,互斥是一種特殊的同步,程序互斥和同步可以簡稱為同步。
程序的互斥和同步也有一些內在的不同。當乙個臨界區是空閒的,程序的互斥條件下,程序就可以進入臨界區去去使用臨界區的資源,在程序同步的情況下,當沒有程序的在使用資源的時候,程序不一定能夠使用共享資源的。例如生產者和消費者的問題,如果在消費者不在消費,那麼緩衝容器是不被使用的,但是由於緩衝容器滿的情況下,生產者不能使用共享的資源緩衝容器的。
程序的同步和互斥反映了 程序同步和互斥機制
程序同步的幾種機制 多程序的系統中避免不了程序間的相互關係。本講將介紹程序間的兩種主要關係 同步與互斥,然後著重講解解決程序同步的幾種機制。程序互斥是程序之間發生的一種間接性作用,一般是程式不希望的。通常的情況是兩個或兩個以上的程序需要同時訪問某個共享變數。我們一般將發生能夠問共享變數的程式段稱為臨...
程序同步與互斥
程序同步與互斥 首先,我們看乙個例子 程序p1 p2公用乙個變數count,初始值為0 p1 p2兩個程序的執行順序是隨機的,p1 p2可能順序執行或交錯執行。由圖可見,不同的執行順序,count值會不同,這是不允許的。在多道程式系統中,由於資源共享或程序合作,使程序間形成間接相互制約和直接相互制約...
程序同步 互斥量
程序間也可以使用互斥鎖,來達到同步的目的。但應在pthread mutex init初始化之前,修改其屬性為程序間共享。mutex的屬性修改函式主要有以下幾個。pthread mutexattr tmattr 型別 用於定義mutex鎖的 屬性 int pthread mutexattr init ...