经典指数          
原因
2727
浏览数
0
收藏数
 

A,B,C,D四个进程,A向buf里面写数据,B,C,D向buf里面读数据,当A写完,且B,C,D都读一次后,A才能再写。用P,V操作实现。

     举报   纠错  
 
切换
1 个答案

semaphore empty = n

semaphore full;

semaphore mutex =1;

semaphore b = 1;

semaphore c = 1 ;

semaphore d = 1;

A (){ while(true){       p(empty);       p(b);     

 p(c);  p(d);  p(mutex);  write();  v(mutex);

 v(full);  } }

B (){ while(true){       p(full);       p(mutex);

 write();  v(mutex);  v(empty);  v(b);  } }

C(){ while(true){       p(full);       p(mutex);

 write();  v(mutex);  v(empty);  v(c);  } }

D (){ while(true){       p(full);       p(mutex);

 write();  v(mutex);  v(empty);  v(d);  } }

 
切换
撰写答案