如图所示,有三个并发进程get,copy,put,三个进程公用两个缓冲区S,T(其大小为每次存放一个数据),get将数据存放入s,copy将数据从S中取出放人工,put从T中取出数据。在将缓冲区中的上一个数据取走之前不能放入新数据,缓冲区初始化时为空。试用

admin2014-09-29  56

问题 如图所示,有三个并发进程get,copy,put,三个进程公用两个缓冲区S,T(其大小为每次存放一个数据),get将数据存放入s,copy将数据从S中取出放人工,put从T中取出数据。在将缓冲区中的上一个数据取走之前不能放入新数据,缓冲区初始化时为空。试用P,V操作实现三个进程间的同步,并写出程序描述。

选项

答案Semphore S—Mutex=1; Semphore T—Mutex=1; Semphore S—Empty=1; Semphore T—Empty=1; Semphore S—Full=0; Semphore T—Full=0; Data m: get( ) { produce a new data m; P(S—Empty); P(T—Mutex); 0ut(T);//释放数据 V(S—Full); V(S Mutex): } put( ) { P(T Full); P(S Mutex

解析
转载请注明原文地址:https://kaotiyun.com/show/WfvR777K
0

最新回复(0)