作者b76516 (阿聪)
看板Grad-ProbAsk
标题[理工] [作业系统]monitor的制作
时间Tue Aug 25 23:20:24 2009
请问用semaphore制作monitor的程式码的意义为何?
这样比较好记
谢谢
程式码如下
变数宣告:
mutex: Semaphore = 1
next: Semaphore = 0
next_count: Integer = 0
x_sem: Semaphore = 0
x_count: Integer =0
[1] 针对每一个 procedure entry F,改写如下:
wait(mutex);
………
Body of F ………….
………
if next_count > 0 then signal(next)
else signal(mutex)
[2] 针对 x:condition 变数之制作
[2.1] 制作 x.wait
x_count = x_count + 1;
if next_count > 0 then signal(next);
else signal(mutex);
wait(x-sem);
x_count = x_count -1;
[2.2] 制作 x.signal
if x_count > 0 then
begin
next_count = next_count + 1;
signal(x-sem);
wait(next);
next_count = next_count - 1;
end
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.230.137.154
1F:→ yesa315:可以爬文喔 有人发过类似的文章 我爬过 08/26 00:12
2F:推 pp393952:monitor是一种高阶资料结构, 第一行的意义就是... 08/26 00:16
3F:→ pp393952:使用semaphore是『制作monitor程式』的一种方法 08/26 00:16