父程序中使用fork()建立乙個子程序,使兩程序能夠互斥訪問乙個變數並改寫其值。
#include
#include
#include
//關於訊號量的庫
#include
//關於檔案管理的庫(有名訊號量會用到)
#include
//關於共享記憶體的庫
sem_t *sem;
//建立乙個訊號量指標
int shmid;
//建立儲存共享記憶體標識的變數
int* shm =
null
;//指向共享記憶體首位址的指標
void
user_delay
(int td)}}
void
subp1()
shmdt
(&shm)
;//解除安裝共享記憶體
sem_post
(sem)
;//釋放訊號量
}//內容同subp1
void
subp2()
shmdt
(&shm)
;sem_post
(sem);}
intmain()
subp2()
;wait
(null);
printf
("a = %d\n"
,*shm)
;sem_unlink
("name_sem");
//斷開連線,刪除有名訊號量檔案
return0;
}
作業系統學習 5 程序同步
這一篇部落格主要學習程序同步的知識。程序同步的主要任務是對多個相關程序在執行次序上進行協調,以使併發執行的諸程序之間能有效地共享資源和相互合作,從而使程式的執行具有可再現性。在多道程式環境下,當程式併發執行時,由於資源共享和程序合作,使同處於乙個系統中的諸程序之間可能存在著以下兩種形式的制約關係 間...
作業系統 程序同步
臨界資源 critical resouce 臨界區 critical section 硬體同步機制 訊號量機制 訊號量的應用 管程3使用多道批處理系統不僅能有效的改善資源的利用率,還可以顯著地提高系統的吞吐量,但同時會使系統變得更加複雜,會使程式的執行結果存在不確定性。所以必須引入程序同步機制從而保...
作業系統 程序同步
引入程序 提高了資源的利用率和系統的吞吐量 程序的非同步性 會給系統造成混亂 程序同步基本概念 1,兩種形式的制約關係 a 間接相互制約 ab兩程序爭用一台印表機 b 直接相互制約 a程序放資料 緩衝區 b程序從緩衝區取資料 2,臨界資源 硬體臨界資源 軟體臨界資源 印表機,磁帶機,緩衝區。3,臨界...