名贵的植物:各位请帮我做一道操作系统的作业啊,急!!

来源:百度文库 编辑:高考问答 时间:2024/05/02 02:40:04
设若干个生产者和若干个消费者共用一个有n个单元的有限缓冲区,为了使产销进程协调进行,有人利用P/V操作,对问题作如下安排:
引入两个私有信号量和一个公用信号量:full (初值为0,产品计数),avail (初值为n,可用缓冲区数)和mutex(初值为1,表示没有进程正在使用缓冲区)。下面程序不完全,请在下划线内(序号后)填进适当的P/V操作。
Semaphore full,avail,mutex;
{
full=0;
avail=n;
mutex=1;
Cobegin
void producer( )
{ do
{produce next product;
……


Add to buffer;


} while(1);
};
void Consumer( )
{
do {

生产者:
(1) P(avail)
(2) P(mutex)
Add to buffer;
(3) V(mutex)
(4) V(full)

消费者:
(5) P(full)
(6) P(mutex)
Take from buffer;
(7) V(mutex)
(8) V(vail)