迈
迈克老狼
Unregistered / Unconfirmed
GUEST, unregistred user!
题目如何用二进制信号量实现计数信号量?
下面是书中的例子,我怎么看不懂啊,
wait(s1)执行的是什么操作啊? s
高教社《操作系统概念》一书
154页(中文版)
binary-semaphore s1,s2;
int c;
初始化s1=0;,s2=0,c为计数信号量S的初值。
计数信号量S的操作wait可实现如下:
wait(s1);
c--;
if (c<0)
{
signal(s1);
wait(s2);
}
signal(s1);
计数信号量S的signal可实现如下:
wait(s1)
C++;
if (c<=0)
signal(s2)
else
signal(s1);
下面是书中的例子,我怎么看不懂啊,
wait(s1)执行的是什么操作啊? s
高教社《操作系统概念》一书
154页(中文版)
binary-semaphore s1,s2;
int c;
初始化s1=0;,s2=0,c为计数信号量S的初值。
计数信号量S的操作wait可实现如下:
wait(s1);
c--;
if (c<0)
{
signal(s1);
wait(s2);
}
signal(s1);
计数信号量S的signal可实现如下:
wait(s1)
C++;
if (c<=0)
signal(s2)
else
signal(s1);