為什麼要引入程序同步的概念?
多道程式環境下的程序併發執行,它們相互之間存在著不同的制約關係,為了理解和協調這種制約的關係,引入了程序同步的概念。
臨界資源是一次只能為乙個程序使用的資源。
由於臨界資源的特性,就決定了 對它的訪問必須是互斥的。
在每個程序中,訪問臨界資源的那段**稱為臨界區。為了保證臨界資源的正確使用。
可把臨界資源的訪問分為四個部分:
臨界區:程序中訪問臨界資源的那段**,又稱臨界段。
退出區。將正在訪問臨界區的標誌清除,以退出對臨界資源的訪問。
剩餘區。**中的其餘部分。
同步亦稱直接制約關係,是指為完成某種任務而建立的兩個或多個程序,這些程序因為需要在某些位置上協調它們的工作次序而等待,傳遞資訊所產生的制約關係。程序間的直接制約關係源於它們之間的相互合作。
互斥也稱直接制約關係。當乙個程序進入臨界區使用臨界資源時,另乙個程序必須等待,當占用臨界資源的程序退出臨界區後,另一程序才允許去訪問此臨界資源。
為禁止兩個程序同時進入臨界區,同步機制應遵循以下準則:
空閒讓進。臨界區空閒時,可以允許乙個請求進入臨界區的程序立即進入臨界區。
忙則等待。當已有程序進入臨界區時,其他試圖進入臨界區的程序必須等待。
有限等待。對請求訪問的程序,應保證能在有限時間內進入臨界區。
讓權等待。當程序不能進入臨界區時,應立即釋放處理器,防止程序忙等待。
程序同步與互斥
程序同步與互斥 首先,我們看乙個例子 程序p1 p2公用乙個變數count,初始值為0 p1 p2兩個程序的執行順序是隨機的,p1 p2可能順序執行或交錯執行。由圖可見,不同的執行順序,count值會不同,這是不允許的。在多道程式系統中,由於資源共享或程序合作,使程序間形成間接相互制約和直接相互制約...
程序 同步與互斥基礎
臨界區 具體一點,在程式中,臨界區就是一段 區域,這段 區在任何時間點至多只有乙個程序在執行它的 打個比方 有個大公尺庫所,裡面裝了若干袋的大公尺,前台有個記錄冊記錄了當前庫所的庫存。當乙個員工運來大公尺時,他首先參看記錄冊中記錄了多少袋大公尺,然後將自己送來的大公尺放入倉庫,最後將自己新加入的大公...
2 程序同步與互斥
程序同步與互斥 首先,我們看乙個例子 程序p1 p2公用乙個變數count,初始值為0 p1 p2兩個程序的執行順序是隨機的,p1 p2可能順序執行或交錯執行。由圖可見,不同的執行順序,count值會不同,這是不允許的。在多道程式系統中,由於資源共享或程序合作,使程序間形成間接相互制約和直接相互制約...