作業系統第三次作業 訊號量 多執行緒

2021-09-28 19:55:22 字數 1333 閱讀 8732

忙等待:

當乙個程序處於臨界區的時候,其他程序想進入臨界區要迴圈等待

//吸菸者

semaphore mutex =

1, empty =

1, full =

0set s =

thing r[3]

=供給者()}

吸菸者(

) signal(mutex)}}

}

奇偶判斷

semaphore mutex =

1, empty =

1, full =

0enum

bw1()

signal

(mutex)}}

w2()signal

(mutex)}}

r()}

動物園

enum

cell

semaphore empty =

1, mutex =

1, zoo =

0, rest =

0framer()

}hunter()

}rest()

}zoo()

}

和尚打水喝水

semaphore t =

3//桶的鎖

semaphore mj =

1//水井的鎖

semaphore mg =

1//水缸的鎖

semaphore empty =

10, full =

0小和尚()

老和尚(

)

//附加題 - 獨木橋

//a, b為兩個方向

int counta,countb;

semaphore sa =1;

semaphore sb =1;

semaphore mutex =1;

a() counta ++

signal

(sa)

//通過獨木橋

wait

(sa)

counta--

if counta ==

0signal

(sa)}}

b() countb ++

signal

(sb)

//通過獨木橋

wait

(sb)

countb--

if countb ==

0signal

(sb)

}}

作業系統第三次實驗

include include include include include define m 10 緩衝區容量為10 void productor void ptr 消費者執行緒 void customer void ptr 生產者執行緒 void produce 生產過程 void consu...

作業系統(Linux)多執行緒 訊號量實現同步

程序通訊ipc inter process communication 實現程序通訊的方法有很多,管道,訊息佇列,共享記憶體,訊號量和socket。題目為 假定有乙個生產者和乙個消費者,生產者每次生產一件產品,並且把生產的產品存入共享緩衝區以供消費者取走使用。消費者每次從緩衝區內取出的一件產品去消費...

計算機作業系統第三次實驗 訊號通訊

供大家交流學習,最好自己動手做,這樣才有最深切的體會。1.實驗目的 了解並掌握利用訊號通訊機制在父子程序間進行通訊。2.實驗軟硬體環境 3.實驗內容 在linux下利用訊號通訊機制在父子程序間進行通訊。由子程序傳送事件訊號,父程序獲取事件訊號後進行相應的處理,將結果輸出到終端。使用函式 4.實驗程式...