操作系统作业答案..docVIP

  • 187
  • 0
  • 约 7页
  • 2017-02-01 发布于重庆
  • 举报
操作系统作业答案.

第九题 设有两个生产者进程A、B和一个销售者进程C,他们共享一个无限大的仓库,生产者每次循环生产一个产品,然后入库供销售;销售者每次循环从仓库中取出一个产品进行销售。如果不允许同时入库,也不允许边入库边出库;而且要求生产和消费A产品和B产品的件数都满足下关系:-n≤A的件数-B的件数≤m,其中n、m是正整数。 分析:生产者A、B和消费者之间不能同时将产品入库和出库,故仓库是一个资源:-n≤A的件数-B的件数≤m,:-n≤A的件数-B的件数≤m,A的件数-B的件数 A的件数-B的件数;difference==-ndifference==m的时候,不能取产品A,只能取B;-ndifferencem,即可以取产品A也可以取产品B; 答:为了互斥地入库和出库,为仓库设置一初值为1的互斥信号量mutex;为了使生产的产品件数满足-n≤A的件数-B的件数≤m,须设置两个同步的信号量,其中SAB表示当前允许A生产的产品数量,其初值为m,SBA表示当前允许B生产的产品数量,其初值为n;另外,还需设置一个整数difference表示所销售的A、B产品数量之差,而为了同步生产者和销售者并使销售的A、B产品的件数-n≤A的件数-B的件数≤m,还需要设置三个资源信号量,其中对应于仓库中的总的产品量,SA对应于仓库中的A产品量,SB对应于仓库中的B产品量,它们的初值都为0. Semaphore SA

文档评论(0)

1亿VIP精品文档

相关文档