【正确答案】正确答案:设置四个信号量Sin表示s缓冲区中是否有空位置初值为1,Sout表示S缓冲区中是否有数据初值为0;Tin表示T缓冲区中是否有空位置初值为1,Tout表示T缓冲区中是否有数据初值为0; semaphore Sin=1,Sout=0; semaphore Tin=1,Tout=0; main() cobegin { get: while(1) { P(Sin); 将数放人S; V(Sout); } copy: while(1) { P(Sout); P(Tin): 将数从S取出放入T; V(Tcmt); V(Sin); } put: while(1) { P(Tout); 将数从T取走; V(Tin); } }
【答案解析】