《操作系统pv操作的作业参考答案》

《操作系统pv操作的作业参考答案》

ID:37016350

大小:44.01 KB

页数:7页

时间:2019-05-15

《操作系统pv操作的作业参考答案》_第1页
《操作系统pv操作的作业参考答案》_第2页
《操作系统pv操作的作业参考答案》_第3页
《操作系统pv操作的作业参考答案》_第4页
《操作系统pv操作的作业参考答案》_第5页
资源描述:

《《操作系统pv操作的作业参考答案》》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、理发师问题:customers=0;  file://顾客等待服务的信号量barbers=0;    file://理发师等待顾客的信号量mutex=1;    //互斥信号量(对共享变量操作)一个计数共享变量(1分)waiting=0;      等待理发的顾客数一个常量CHAIRs表示椅子总数(1分)程序如下:(10分)Process  barberbegin    while  true  do    begin      P(customers);        顾客数为零,则入睡      P(mutex);          进入临界区

2、          Waiting:=waiting-1;  减少顾客数    V(barbers);          理发师准备理发    V(mutex);                  Cut_hair();        理发    End;End;Process  customerbegin    P(mutex);          进入临界区    If(waiting<CHAIRs)    begin      Waiting=waiting+1;    增加等待的顾客数    V(customers);        如有必要,则唤醒理发师   

3、 V(mutex);          释放信号量mutex    P(barbers);          如果无顾客.则理发师入睡    Get_hair()          进入理发室理发    end    else    V(mutex)          已满,不能停留End;

吃水果问题:盘子为互斥资源,只能放入一个水果,设信号量empty初值为1;爸爸放苹果前先看看有无空间,若有则抢盘子,放入苹果后向女儿发信号;妈妈放橘子前先看看有无空间,若有则抢盘子,放入橘子后向儿子发信号;女儿先看有无苹果,若有则抢盘子,取走苹果后发出盘子为空的信号;

4、儿子看有无橘子,若有则抢盘子,取走橘子后发出盘子置空的信号;置空信号应是爸爸和妈妈都可以接收的。该题是生产者/消费者问题的变形,有两对生产者和消费者。生产者需要指明是给哪个消费者的产品,但消费者取走产品后无须特别通知某个生产者,因为空出的缓冲区可由两个生产者随意争夺。此处无需设置信号量控制对盘子的互斥访问,因为盘子只能放一个产品;apple表示盘中有苹果,orange表示盘中有橘子,初值均为0。Parbegin  爸爸:begin    L1:P(empty);        放苹果;        V(apple);        GotoL1;        End;  

5、妈妈:begin    L2:P(empty);        放橘子;        V(orange);        GotoL2;        End;  女儿:begin    L3:P(apple);        取苹果;        V(empty);        GotoL3;        End;  儿子:begin    L4:P(orange);        取橘子;        V(empty);        GotoL4;        End;Parend例2桌上有一只盘子,每次只能放入一只水果,爸爸专向盘子中放苹果(apple),

6、妈妈专向盘子中放桔子(orange),一个儿子专等吃盘子中的桔子,一个女儿专等吃盘子中的苹果。只要盘子中空则爸爸或妈妈可向盘子中放一只水果,仅当盘中有自己需要的水果时,儿子或女儿可从中取出。把爸爸、妈妈、儿子、女儿看做四个进程,用PV操作进行管理,使这4个进程能正确地并发执行。如图所示。图7.114个进程并发执行  这个问题实际上可看作是两个生产者和两个消费者共享了一个仅能存放一件产品的缓冲区,生产者各自生产不同的产品,消费者各自取走自己需要的产品。  由于盘子中每次只能存放一个水果,因此爸爸和妈妈在存放水果时必须互斥。儿子和女儿分别要吃桔子和苹果,因而,当爸爸向盘子中放入一

7、只苹果后应把“盘中有苹果”的消息发送给女儿;同样,当妈妈向盘子中放入一只桔子后应把“盘中有桔子”的消息发送给儿子。如果儿子或女儿取走盘子中的水果,则应发送“盘子中又可存放水果”的消息。但这个消息不应特定地发送给爸爸或妈妈,至于谁能再向盘中放水果则要通过竞争资源(盘子)的使用权来决定。  应怎样定义信号量呢?首先应定义一个是否允许向盘子中存放水果的信号量S,其初值为“1”,表示允许存放一只水果;其次要定义两个信号量SP和SO分别表示盘子中是否有苹果或桔子的消息,初值应该均为“0”,至于儿子或女儿取走水果后

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

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

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