一、问题描述
用P.V 操作解决下图之同步问题
提示:分别考虑对缓冲区S 和T
二、解答
设置四个信号量Sin=1 ,Sout=0 ,Tin=1, Tout=0;
代码如下:
get( )
{
while (1)
{
P(Sin );
将数放入S;
V(Sout);
}
}
copy( )
{
while (1)
{
P(Sout );
P(Tin );
将数从S 取出放入T;
V(Tout);
V(Sin);
}
}
put( )
{
while (1) )
{
P(Tout );
将数从T 取走;
V(Tin);
}
}