计算机操作系统第三版汤子瀛课后习题答案(2)
答:为了实现多个进程对临界资源的互斥访问,必须在临界区前面增加一段用于检查欲访问的临界资源是否正被访问的代码,如果未被访问,该进程便可进入临界区对资源进行访问,并设臵正被访问标志,如果正被访问,则本进程不能进入临界区,实现这一功能的代码为\在退出临界区后,必须执行\退出区\代码,用于恢复未被访问标志,使其它进程能再访问此临界资源。 18. 同步机构应遵循哪些基本准则?为什么?
答:同步机构应遵循的基本准则是:空闲让进、忙则等待、有限等待、让权等待原因:为实现进程互斥进入自己的临界区。
19. 试从物理概念上说明记录型信号量wait 和signal。
答:wait(S):当S.value>0 时,表示目前系统中这类资源还有可用的。执行一次wait 操作,意味着进程请求一个单位的该类资源,使系统中可供分配的该类资源减少一个,因此描述为S.value:=S.value-1;当S.value<0时,表示该类资源已分配完毕,进程应调用block原语自我阻塞,放弃处理机,并插入到信号量链表S.L中。
signal(S):执行一次signal操作,意味着释放一个单位的可用资源,使系统中可供分配的该类资源数增加一个,故执行S.value:=S.value+1 操作。若加1 后S.value≤0,则表示在该信号量链表中,仍有等待该资源的进程被阻塞,因此应调用wakeup 原语,将S.L链表中的第一个等待进程唤醒。
20.你认为整型信号量机制是否完全遵循了同步机构的四条准则?
答:整型信号量机制不完全遵循同步机制的四条准则,它不满足“让权等待”准则。
21.如何利用信号量机制来实现多个迚程对临界资源的互斥访问?并丼例说明之。 答:为使多个进程互斥访问某临界资源,只需为该资源设臵一互斥信号量mutex,并设其
初值为1,然后将各进程访问该资源的临界区CS臵于wait(mutex)和signal(mutex)操作
之间即可。这样,每个欲访问该临界资源的进程在进入临界区之前,都要先对mutex 执行
wait 操作,若该资源此刻未被访问,本次wait 操作必然成功,进程便可进入自己的临界区,
这时若再有其他进程也欲进入自己的临界区,此时由于对mutex 执行wait操作定会失败,
因而该进程阻塞,从而保证了该临界资源能被互斥访问。当访问临界资源的进程退出临界区
后,应对mutex执行signal 操作,释放该临界资源。利用信号量实现进程互斥的进程描述 如下:
Var mutex: semaphore:=1; begin parbegin
process 1: begin repeat
wait(mutex);
critical section signal(mutex); remainder seetion until false; end
process 2: begin repeat
wait(mutex); critical section signal(mutex); remainder section until false; end parend
23.在生产者消费者问题中,如果缺少了signal(full)戒signal(empty),对执行结果有何影 响?
答:如果缺少signal(full),那么表明从第一个生产者进程开始就没有改变信号量full 值,即使缓冲池产品已满,但full 值还是0,这样消费者进程执行wait(full)时认为缓冲池是空而取不到产品,消费者进程一直处于等待状态。
如果缺少signal(empty),在生产者进程向n个缓冲区投满产品后消费者进程才开始从中取产品,这时empty=0,full=n,那么每当消费者进程取走一个产品empty 值并不改变,直到缓冲池取空了,empty 值也是0,即使目前缓冲池有n 个空缓冲区,生产者进程要想 再往缓冲池中投放产品也会因为申请不到空缓冲区被阻塞。
24.在生产消费者问题中,如果将两个wait 操作卲wait(full)和wait(mutex)互换位置,戒者将signal(mutex)不signal(full)互换位置,结果如何?
答:将wait(full)和wait(mutex)互换位臵后,可能引起死锁。考虑系统中缓冲区全满时,若一生产者进程先执行了wait(mutex)操作并获得成功,则当再执行wait(empty)操作时,它将因失败而进入阻塞状态,它期待消费者进程执行signal(empty)来唤醒自己,在此之前,它不可能执行signal(mutex)操作,从而使试图通过执行wait(mutex)操作而进入自己的临界区的其他生产者和所有消费者进程全部进入阻塞状态,这样容易引起系统死锁。若signal(mutex)和signal(full)互换位臵后只是影响进程对临界资源的释放次序,而不会引起系统死锁,因此可以互换位臵。
25.我们在为某一临界资源设置一把锁W,当W=1时表示关锁,当W=0时表示锁已打开。
试写出开锁和关锁的原诧,并利用他们实现互斥。 答:整型信号量:lock(W): while W=1 do no-op W:=1;
unlock(W): W:=0;
记录型信号量:lock(W): W:=W+1; if(W>1) then block(W, L)
unlock(W): W:=W-1;
if(W>0) then wakeup(W, L) 例子:
Var W:semaphore:=0; begin repeat lock(W);
critical section unlock(W);
remainder section until false; end
26.试修改下面生产者-消费者问题解法中的错诨: 答: producer: begin repeat ?
producer an item in nextp; wait(mutex);
wait(full); /* 应为wait(empty),而且还应该在wait(mutex)的前面 */ buffer(in):=nextp;
/* 缓冲池数组游标应前移: in:=(in+1) mod n; */ signal(mutex); /* signal(full); */ until false; end
consumer: begin repeat
wait(mutex);
wait(empty); /* 应为wait(full),而且还应该在wait(mutex)的前面 */ nextc:=buffer(out);
out:=out+1; /* 考虑循环,应改为: out:=(out+1) mod n; */ signal(mutex);/* signal(empty); */ consumer item in nextc; until false; end
28.在测量控制系统中的数据采集仸务,把所采集的数据送一单缓冲区;计算仸务从该单
缓冲中叏出数据迚行计算.试写出利用信号量机制实现两者共享单缓冲的同步算法。 答:
a. Var mutex, empty, full: semaphore:=1, 1, 0; gather: begin repeat ??
gather data in nextp; wait(empty); wait(mutex); buffer:=nextp; signal(mutex); signal(full); until false; end
compute: begin repeat ??
wait(full); wait(mutex); nextc:=buffer; signal(mutex); signal(empty);
compute data in nextc; until false; end
b. Var empty, full: semaphore:=1, 0; gather: begin repeat ??
gather data in nextp; wait(empty); buffer:=nextp; signal(full); until false; end
compute: begin repeat ??
wait(full);
nextc:=buffer; signal(empty);
compute data in nextc; until false; end
29.画图说明管程由哪几部分组成,为什么要引入条件发量?
答:管程由四部分组成:①管程的名称;②局部于管程内部的共享数据结构说明;③对该数据结构进行操作的一组过程;④对局部于管程内部的共享数据设臵初始值的语句;
当一个进程调用了管程,在管程中时被阻塞或挂起,直到阻塞或挂起的原因解除,而在此期间,如果该进程不释放管程,则其它进程无法进入管程,被迫长时间地等待。为了解决这个问题,引入了条件变量condition。 …… 此处隐藏:2638字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [资格考试]机械振动与噪声学部分答案
- [资格考试]空调工程课后思考题部分整合版
- [资格考试]电信登高模拟试题
- [资格考试]2018年上海市徐汇区中考物理二模试卷(
- [资格考试]坐标转换及方里网的相关问题(椭球体、
- [资格考试]语文教研组活动记录表
- [资格考试]广东省2006年高应变考试试题
- [资格考试]LTE学习总结—后台操作-数据配置步骤很
- [资格考试]北京市医疗美容主诊医师和外籍整形外科
- [资格考试]中学生广播稿400字3篇
- [资格考试]CL800双模站点CDMA主分集RSSI差异过大
- [资格考试]泵与泵站考试复习题
- [资格考试]4个万能和弦搞定尤克里里即兴弹唱(入
- [资格考试]咽喉与经络的关系
- [资格考试]《云南省国家通用语言文字条例》学习心
- [资格考试]标准化第三范式
- [资格考试]GB-50016-2014-建筑设计防火规范2018修
- [资格考试]五年级上册品社复习资料(第二单元)
- [资格考试]2.对XX公司领导班子和班子成员意见建议
- [资格考试]关于市区违法建设情况的调研报告
- 二0一五年下半年经营管理目标考核方案
- 2014年春八年级英语下第三次月考
- 北师大版语文二年级上册第十五单元《松
- 2016国网江苏省电力公司招聘高校毕业生
- 多渠道促家长督导家长共育和谐 - 图文
- 2018 - 2019学年高中数学第2章圆锥曲线
- 竞争比合作更重要( - 辩论准备稿)课
- “案例积淀式”校本研训的实践与探索
- 新闻必须客观vs新闻不必客观一辩稿
- 福师大作业 比较视野下的外国文学
- 新编大学英语第二册1-7单元课文翻译及
- 年产13万吨天然气蛋白项目可行性研究报
- 河南省洛阳市2018届高三第二次统一考试
- 地下车库建筑设计探讨
- 南京大学应用学科教授研究方向汇编
- 2018年八年级物理全册 第6章 第4节 来
- 毕业论文-浅析余华小说的悲悯性 - 以《
- 2019年整理乡镇城乡环境综合治理工作总
- 广西民族大学留学生招生简章越南语版本
- 故宫旧称紫禁城简介




