操作系统第三章作业答案.docx
- 文档编号:11648659
- 上传时间:2023-03-29
- 格式:DOCX
- 页数:5
- 大小:30.51KB
操作系统第三章作业答案.docx
《操作系统第三章作业答案.docx》由会员分享,可在线阅读,更多相关《操作系统第三章作业答案.docx(5页珍藏版)》请在冰豆网上搜索。
操作系统第三章作业答案
第三章作业
1.下进程之间存在相互制约关系吗?
若存在,是什么制约关系?
为什么?
①几个同学去图书馆借同一本书。
答:
互斥,只能有一个借到
②篮球比赛中两队同学争抢篮板球。
答:
互斥,只能有一个抢到
③果汁流水线生产中捣碎、消毒、灌装、装箱等各道工序。
答:
同步时进行,相互不影响
④商品的入库出库。
答:
同步时进行,相互无影响
⑤工人做工与农民种粮。
答:
同步进行,相互无影响
2.在操作系统中引入管程的目的是什么?
条件变量的作用是什么?
答:
引入管城是为了实现进程的同步和互斥。
条件变量的作用是:
设置多个信号量,使用大量的P、V操作,还要仔细安排多个P操作的排列次序,否则会出现错误的结果或出现死锁现象。
3.说明P、V操作为什么要设计成原语。
答:
用信号量S表示共享资源,其初值为1表示有一个资源。
设有两个进程申请该资源,若其中一个进程先执行P操作。
P操作中的减1操作有3条指令组成:
去S送寄存器R;R-1送S。
若P操作不用原语实现,在执行了前述三条指令中的2条,即还未执行R送S时(此时S值仍为1),进程被剥夺CPU,另一个进程执行也要执行P操作,执行后S的值为0,导致信号量的值错误。
正确的结果是两个进程执行完P操作后,信号量S的值为-1,进程阻塞。
4.设有一个售票大厅,可容纳200人购票。
如果厅内不足200人则允许进入,超过则在厅外等候;售票员某时只能给一个购票者服务,购票者买完票后就离开。
试问:
①购票者之间是同步关系还是互斥关系?
答:
互斥关系
2用P、V操作描述购票者的工作过程。
如下:
semaphoremutex=1;
semaphorefull=200;
voidcustomer()
{p(metux);
P(full);
Buying
V(mutex);
V(full);
}
5.进程之间的关系如图3-16所示,试用P、V操作描述它们之间的同步。
如下:
设:
s1→s2为as1→s3为bs2→s6为cs3→s4为ds3→s5为es4→s6为fs5→s6为g
semaphorea,b,c,d,g,f,g=0,0,0,0,0,0,0;
{s1;v(a);v(b);}
{p(a);s2;v(a);}
{p(b);s3;v(b);}
{p(d);s4;v(d);}
{p(e);s5;v(e);}
{p(c);s6;}
{p(f);p(g);s6}
6.有4个进程P1、P2、P3、P4共享一个缓冲区,进程P1向缓冲区存入消息,进程P2、P3、P4从缓冲区中去消息,要求发送者必须等三个进程都去过本消息后才能发送下调消息。
缓冲区内每次只能容纳一个消息,用P、V操作描述四个进程存取消息的情况。
如下:
Semaphore:
metux=0;
{p1;v(metux);}
{p(metux);{p(metux);{p(metux);
P2;p3;p4;
V(metux);v(metux);v(metux);
}}}
7.分析生产者——消费者问题中多个P操作颠倒引起的后果。
semaphoremutex=1;
semaphoreempty=n;
semaphorefull=0;
inti,j;
ITEMbuffer[n];
ITEMdata_p,data_c;
voidproducer()
{
While(ture)
{
Produceanitemindata_p;
P(empty);
P(mutex);
buffer[i]=data_p;
i=(i+1)%n;
v(empty);
v(full);
}
Voidconsumer()
{
While(ture)
{
P(full);
P(mutex);
data_c=buffer[j];
j=(j+1)%n;
v(metux);
v(empty);
coumertheitemindata_c;
}
8.读者——写者问题中写者优先算法的实现。
semaphoreWmutex,Rmutex=1;
intRcount=0;
semaphoremutex=1
voidreader()voidwriter(){while(true){while(true)
{P(mutex);{P(mutex);
P(Rmutex);P(wmutex);
If(Rcount==0)P(wmutex);
Rcount=Rcount+1;写;
V(Rmutex);
V(mutex);V(Wmutex);
V(mutex);
读;}
}
P(Rmutex);
Rcount=Rcount-1;
if(Rcount==0)V(wmutex);
V(Rmutex);}
}
9.写一个用信号量解决哲学家进餐问题不产生锁死的算法。
如下:
Semaphorechopstick[5]={1,1,1,1,1};
Semaphoremutex;
Voidprofession(intn)
{
While(ture)
{p(chopstick[i];
p(chopstick[(i+1)%5]);
p(metux);
进餐;
V(chopstick[i];
V(chopstick[(i+1)%5]);
思考;
V(metux);
}
}
10.一个文件可有若干个不同的进程所共享,每个进程具有唯一的编号。
假定文件可有满足下列限制的若干个不同的进程同时访问,并发访问该文件的哪些进程的编号的总和不得大于
n,设计一个协调对该文件访问的管程。
不会做这道题
11.用管程解决读者——写者问题,并采用公平原则。
不会做这道题
如有侵权请联系告知删除,感谢你们的配合!
N*#zA322497DF9緹
283156E9B溛2482760FB惻309947912礒z2251057EE埮O
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统 第三 作业 答案
![提示](https://static.bdocx.com/images/bang_tan.gif)