操作系统 作业答案

操作系统 作业答案

ID:1778505

大小:128.00 KB

页数:7页

时间:2017-11-13

操作系统 作业答案_第1页
操作系统 作业答案_第2页
操作系统 作业答案_第3页
操作系统 作业答案_第4页
操作系统 作业答案_第5页
资源描述:

《操作系统 作业答案》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第九题设有两个生产者进程A、B和一个销售者进程C,他们共享一个无限大的仓库,生产者每次循环生产一个产品,然后入库供销售;销售者每次循环从仓库中取出一个产品进行销售。如果不允许同时入库,也不允许边入库边出库;而且要求生产和消费A产品和B产品的件数都满足以下关系:-n≤A的件数-B的件数≤m,其中n、m是正整数。分析:生产者A、B和消费者之间不能同时将产品入库和出库,故仓库是一个临界资源。生产的A、B产品必须满足:-n≤A的件数-B的件数≤m,如练习5中,同样的方法管理,分别使用了信号量SAB和SBA;仓库的管理只要求出入库互斥,由于仓库无限大入库只需操作互斥就可以完成,出库

2、要考虑有无产品,SA对应于仓库中的A产品量,SB对应于仓库中的B产品量;销售要满足:-n≤A的件数-B的件数≤m,用difference表示A的件数-B的件数,即difference=A的件数-B的件数;difference==-n的时候,不能取产品B,只能取A;difference==m的时候,不能取产品A,只能取B;-n

3、值为m,SBA表示当前允许B生产的产品数量,其初值为n;另外,还需设置一个整数difference表示所销售的A、B产品数量之差,而为了同步生产者和销售者并使销售的A、B产品的件数-n≤A的件数-B的件数≤m,还需要设置三个资源信号量,其中S对应于仓库中的总的产品量,SA对应于仓库中的A产品量,SB对应于仓库中的B产品量,它们的初值都为0.SemaphoreSAB=m,SBA=n,S=0,SA=0,SB=0,mutex=1;processA(){while(1){//生产产品,-n≤A的件数-B的件数≤m,方法同第4题wait(SAB);ProduceaproductA;

4、signal(SBA);//入库操作,满足出入库操作互斥即可wait(mutex);addtheproductAtothestorehouse;signal(mutex);signal(SA);//入库产品A一件,所以给SA增值signal((S);//入库产品一件,所以给S增值,S是仓库中全部产品的数量}}processB()5{while(1){//生产产品,-n≤A的件数-B的件数≤m,方法同第4题wait(SBA);ProduceaproductB;signal(SAB);//入库操作,满足出入库操作互斥即可wait(mutex);addtheproductAto

5、thestorehouse;signal(mutex);signal(SB);//入库产品A一件,所以给SA增值signal((S);//入库产品一件,所以给S增值,S是仓库中全部产品的数量}}processC(){while(1){wait(S);//首先检查有无产品,无产品阻塞,有产品,下面操作将会取走一件产品,所以S减1if(difference<=-n){wait(SA);//difference<=-n时只能取A产品一件,无A产品则需阻塞//出库操作,满足出入库操作互斥wait(mutex);takeaproductAfromstorehouse;signal(

6、mutex);difference++;//取A产品一件,difference++}elseif(difference>=m){wait(SB);//difference>=m时只能取B产品一件,无B产品则需阻塞//出库操作,满足出入库操作互斥wait(mutex);takeaproductBfromstorehouse;signal(mutex);difference--;//取B产品一件,difference--}else{//-n

7、操作互斥5wait(mutex);takeaproductA或Bfromstorehouse;signal(mutex);if(product_type==A){//取的是产品A,则信号量SA减1,这里不可能发生没有A产品,进程C需要阻塞的情况wait(SA);difference++;//取A产品一件,difference++}else{//取的是产品B,则信号量SB减1,这里不可能发生没有B产品,进程C需要阻塞的情况wait(SB);difference--;//取B产品一件,difference--}}Sellthepr

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。