教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 资格考试 >

计算机操作系统第三版汤子瀛课后习题答案(2)

来源:网络收集 时间:2026-04-19
导读: 答:为了实现多个进程对临界资源的互斥访问,必须在临界区前面增加一段用于检查欲访问的临界资源是否正被访问的代码,如果未被访问,该进程便可进入临界区对资源进行访问,并设臵正被访问标志,如果正被访问,则本

答:为了实现多个进程对临界资源的互斥访问,必须在临界区前面增加一段用于检查欲访问的临界资源是否正被访问的代码,如果未被访问,该进程便可进入临界区对资源进行访问,并设臵正被访问标志,如果正被访问,则本进程不能进入临界区,实现这一功能的代码为\在退出临界区后,必须执行\退出区\代码,用于恢复未被访问标志,使其它进程能再访问此临界资源。 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字,全部文档内容请下载后查看。喜欢就下载吧 ……

计算机操作系统第三版汤子瀛课后习题答案(2).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/412463.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)