四個程序abcd共享乙個檔案,要求可以多程序共享檔案,但ac、bd不能同時共享檔案。
/*四個程序a、b、c、d、都要讀乙個共享檔案f,系統允許多個程序同時讀檔案f,但限制是:
程序a和程序c不能同時讀檔案f
程序b和程序d不能同時讀檔案f
為了使這四個程序併發執行時能按照系統要求執行檔案,用pv操作編寫相關程式*/
要想實現程序ab、ad、bc、cd的併發執行,我們讓abcd程序訊號量為1時,睡眠不同的時間,這裡我設定的是sleep(700)~sleep(1000)
,如果設定睡眠的時間相同,你會發現總是兩個相同的程序在執行,另外兩個程序等待,不斷迴圈。此外,每乙個cout之前我設定了sleep(10)
短暫的睡眠,保證在進入乙個與之互斥的程序之前,cout有時間顯示在控制台上,否則,等待的互斥程序在操作v(flag_**);
之後立即顯示分享檔案,造成亂序輸出。
作業系統 程序同步
臨界資源 critical resouce 臨界區 critical section 硬體同步機制 訊號量機制 訊號量的應用 管程3使用多道批處理系統不僅能有效的改善資源的利用率,還可以顯著地提高系統的吞吐量,但同時會使系統變得更加複雜,會使程式的執行結果存在不確定性。所以必須引入程序同步機制從而保...
作業系統 程序同步
引入程序 提高了資源的利用率和系統的吞吐量 程序的非同步性 會給系統造成混亂 程序同步基本概念 1,兩種形式的制約關係 a 間接相互制約 ab兩程序爭用一台印表機 b 直接相互制約 a程序放資料 緩衝區 b程序從緩衝區取資料 2,臨界資源 硬體臨界資源 軟體臨界資源 印表機,磁帶機,緩衝區。3,臨界...
作業系統 程序同步
ipc.件 include include include include include include include define bufsz 256 建立或獲取 ipc 的一組函式的原型說明 int get ipc id char proc file,key t key char set s...