计算机操作系统作者王之仓第2章进程管理课件.pptVIP

  • 17
  • 0
  • 约1.41万字
  • 约 139页
  • 2016-12-25 发布于广东
  • 举报

计算机操作系统作者王之仓第2章进程管理课件.ppt

我们可利用一个数组来表示上述的具有n个(0,1,…,n-1)缓冲单元的缓冲区。用输入指针in作写指针,每当生产者进程生产并投放一个产品后,输入指针加1;用一个输出指针out作读指针,每当消费者进程取走一个产品后,输出指针加1。由于缓冲区通常被组织成循环队列,故应把写指针加1表示成 in:=(in+1)mod n;读指针加1表示成out:=(out+1) mod n。当(in+1) mod n=out时表示缓冲区满;而in=out则表示缓冲区空。 此外,还引入了一个整型变量counter, 其初始值为0。每当生产者进程向缓冲区中投放一个产品后,使counter加1;反之,每当消费者进程从中取走一个产品时,使counter减1。 2 问题分析 生产者和消费者两进程共享下面的变量: int n,buffer[n]; int in,out; //in∈[0,n-1],out∈[0,n-1] int count; // count∈[0,n] 3 利用整型信号量解决PC问题 void producer() { produce an item in nextp; while(counter)=n do no-op; buffer[in]:=nextp; in:=(in+1) mod n; counter:=counter+1; };

文档评论(0)

1亿VIP精品文档

相关文档