2022年操作系统第二章作业讲解 .docx

上传人:Che****ry 文档编号:37639343 上传时间:2022-09-01 格式:DOCX 页数:15 大小:216.13KB
返回 下载 相关 举报
2022年操作系统第二章作业讲解 .docx_第1页
第1页 / 共15页
2022年操作系统第二章作业讲解 .docx_第2页
第2页 / 共15页
点击查看更多>>
资源描述

《2022年操作系统第二章作业讲解 .docx》由会员分享,可在线阅读,更多相关《2022年操作系统第二章作业讲解 .docx(15页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、精选学习资料 - - - - - - - - - 其次章 习题讲解1、进程之间存在着哪几种制约关系?各是什么缘由引起的?以下活动分别属于哪种制约关系?1假设干同学去图书馆借书;商品生产和社会消费;2两队举办篮球竞赛; 3流水线生产的各道工序; 4答:进程之间存在着直接制约与间接制约这两种制约关系,其中直接制约同步是由于进程间的相互合作而引起的,而间接制约互斥就是由于进程间共享临界资源而引起的;1假设干同学去图书馆借书,是间接制约,其中书是临界资源;2两队举办篮球竞赛,是间接制约,其中蓝球是临界资源;3流水线生产的各道工序,是直接制约,各道工序间需要相互合作, 每道工序的开头都依靠于前一道工序的

2、完成;4商品生产和社会消费,是直接制约, 两者也需要相互合作:商品生产出来后才可以被消费;商品被消费后才需要再生产;2、试写出相应的程序来描述以以下图所示的前趋图 var a,b,c,d,e,f:semaphore:=0,0,0,0,0,0; begin S1; signala; signalb; signalc; end; begin waita; S2; end; begin waitb; S3; signald; end; begin waitc; S4; end; begin waitd; S5; signale; signalf; end; begin waite; S6; end;

3、 begin waitf; S7; end; 3、已知一个求值公式 A23B/B+5A ,假设 A、B 已赋值,试画出该公式求值过程的前趋 图,并使用信号量描述这些前趋关系;答:依据求值公式,假设:S1: X1=A*A S2: X2=3*B S3: X3=5*A S4: X4=X1+X2 S5: X5=B+X3 S6: X6=X4/X5 var a,b,c,d,e:semaphore:=0,0,0,0,0; begin S1; signala; end; begin S2; signalb; end; begin S3; signalc; end; begin waita; waitb; S4

4、; signald; end begin waitc; S5; signale; end begin waitd; waite; S6; end 名师归纳总结 - - - - - - -第 1 页,共 9 页精选学习资料 - - - - - - - - - 4、桌上有一只能容纳一个水果的盘子;爸爸专向盘子中放苹果apple ,妈妈专向盘子中放桔子 orange ,一个儿子专等吃盘子中的桔子,一个女儿专等吃盘子里的苹果,1试用信号量实现他们的同步关系;会需要特地的实现吗?2假如有两个家庭的爸爸、妈妈、儿子、女儿和二只盘子呢?var empty,apple,orange:semaphore:= 1

5、,0,0; 说明: empty 与 apple 表示盘子为空与盘子中放入了苹果,用于表示爸爸与女儿间的同步关系;empty 与 orange 表示盘子为空与盘子中放入了桔子,答案: 1使用记录型信号量用于表示妈妈与儿子间的同步关系;father:begin daughter:begin repeat repeat producer an apple; waitapple;waitempty; Get an apple from dish; Put an apple to the dish; signalempty; signalapple; Eat an apple; Until false

6、Until false end end mother:begin son:begin repeat repeat producer an orange; waitorange; waitempty; Get an orange from dish; Put an orange to the dish; signalempty; signalorange; Eat an orange; Until false Until false end end 2使用记录型信号量var mutex,empty,apple,orange:semaphore:=1,2,0,0; dish: array0,1 o

7、f fruit; in, out:integer:= 0,0; father:begin daughter:begin repeat repeat producer an apple; waitapple; waitempty; waitmutex;waitmutex; if dishout=orange then if dishin=apple or dishin=orange then out:=out+1 mod 2; 名师归纳总结 in:=in+1 mod 2; get an apple from dishout; 第 2 页,共 9 页diskin:=apple; out:=out+

8、1 mod 2; in:=in+1 mod 2; signalmutex;signalmutex;signalempty; signalapple;Eat an apple; Until false Until false end End mother:begin son:begin repeat repeat producer an orange; waitorange; - - - - - - -精选学习资料 - - - - - - - - - waitempty; waitmutex;waitmutex; if dishout=apple then if dishin=apple or

9、dishin=orange then out:=out+1 mod 2; in:=in+1 mod 2; get an orange from dishout; diskin:=orange; out:=out+1 mod 2; in:=in+1 mod 2; signalmutex;signalmutex; signalempty; signalorange; Eat an apple; Until false Until false end end 5、试用信号量实现课件 92 页,司机与售票员进程的同步关系var stop, door :semaphore:=0,0; driver:be

10、gin conductor:begin repeat repeat drive a bus; sell tickets; arrive at bus station; waitstop; signalstop; Open the door; rest; Close the door waitdoor; signaldoor;Until false Until false end end 6、试用信号量解决读者写者问题,使得写者与读者优先级依据到达次序确定;1典型错误代码讲解:不增加任何信号量Var rmutex, wmutex:semaphore = 1,1;Readcount:integer

11、= 0;beginparbeginReader:beginrepeatwaitrmutex;if Readcount=0 then waitwmutex;Readcount = Readcount+1;signalrmutex;perform read operation;waitrmutex;Readcount = Readcount-1;if Readcount=0 then signalwmutex;signalrmutex;until false;end名师归纳总结 - - - - - - -第 3 页,共 9 页精选学习资料 - - - - - - - - - writer:begi

12、n repeat if readcount0 then waitrumtex; waitwmutex; perform write operation; signalrmutex; signalwmutex; until false; end parend end 到达序列: R1, R2, W1, R3, R4, W2 进程行为rmutex=1 wmutex=1 Readcount=0 状态备注R1 到达rmutex=0 wmutex=0 Readcount=1 执行 /就绪第 1 位读者rmutex=1 R2 到达rmutex=0 Readcount=2 执行 /就绪rmutex=1 W1

13、 到达rmutex=0 堵塞Readcount0 堵塞 1 R3 到达堵塞 1 堵塞rmutex=0 R4 到达堵塞 2 堵塞rmutex=0 W2 到达堵塞 3 堵塞rmutex=0 R1 离开堵塞 4 堵塞rmutex=0 R2 离开堵塞 5 堵塞rmutex=0 产生死锁2学习指导与题解上的解题思路答:为使写者优先,可在原先的读优先算法基础上增加一个初值为1 的信号量 S,使得当至少有一个写者预备拜访共享对象时,它可使后续的读者进程等待写完成;初值为 0 的整 型变量 writecount 用来对写者进行计数; 初值为 1 的互斥信号量 mutex 用来实现多个写 者对 writecou

14、nt 的互斥拜访;读者与写者进程算法描述如下:var S, mutex, rmutex, wmutex: semaphore:=1,1, 1,1; writecount, readcount: integer:=0,0; reader: begin repeat waitS; waitrmutex; if readcount=0 then waitwmutex ; readcount:=readcount+1; signalrmutex; signalS ; perform read operation; 名师归纳总结 - - - - - - -第 4 页,共 9 页精选学习资料 - - -

15、- - - - - - waitrmutex; readcount:=readcount-1; if readcount=0 then signalwmutex ; signalrmutex; until false end writer: begin repeat waitmutex; if writecount=0 then waitS ; writecount:=writecount+1; signalmutex; waitwmutex ; perform write operation; signalwmutex; waitmutex; writecount:=writecount-1

16、; if writecount=0 then signalS ; signalmutex; until false end 到达序列: R1, R2, W1, R3, R4, W2 进程行为S=1 mutex=1 rmutex=1 wmutex=1 writecount=0 readcount=0 备注R1 到达S=0 rmutex=0 wmutex=0 readcount=1 第 一 个读者R2 到达S=1 rmutex=1 执行 /就绪执行 /就S=0 rmutex=0 绪readcount=2 rmutex=1 S=1 W1 到达S=0 mutex=0 第 一 个写者writecount

17、=1 mutex=1 堵塞 1 R3 到达堵塞 1 mutex=0 R4 到达堵塞 2 W2 到达writecount=2 mutex=1 堵塞 2 名师归纳总结 - - - - - - -第 5 页,共 9 页精选学习资料 - - - - - - - - - R1 离开rmutex=0 readcount=1 rmutex=1 R2 离开rmutex=0 wmutex=1 readcount=0 负 责 唤醒 W1 rmutex=1 W1 被唤醒wmutex=0 执行 /就绪W1 离开mutex=0 wmutex=1 负 责 唤醒 W2 writecount=1 mutex=1 3改写上述代

18、码,真正实现读写公平策略 var S, rmutex, wmutex: semaphore:=1, 1,1; readcount: integer:= 0; reader: begin repeat waitS; waitrmutex; if readcount=0 then waitwmutex ; readcount:=readcount+1; signalrmutex; signalS ; perform read operation; waitrmutex; readcount:=readcount-1; if readcount=0 then signalwmutex ; signa

19、lrmutex; until false end writer: begin repeat waitS ; waitwmutex ; perform write operation; signalwmutex; signalS ; until false end 到达序列: R1, R2, W1, R3, R4, W2 进程行为S=1 rmutex=1 wmutex=1 readcount=0 备注R1 到达S=0 第一个读者rmutex=0 名师归纳总结 wmutex=0 readcount=1 执行 /就绪第 6 页,共 9 页- - - - - - -精选学习资料 - - - - - -

20、 - - - rmutex=1 S=1 R2 到达S=0 执行 /就绪rmutex=0 readcount=2 rmutex=1 S=1 W1 到达S=0 第一个写者堵塞 1 R3 到达堵塞 1 rmutex=0 R4 到达堵塞 2 W2 到达堵塞 3 R1 离开readcount=1 rmutex=1 R2 离开rmutex=0 wmutex=1 readcount=0 负责唤醒 W1 rmutex=1 W1 被唤醒wmutex=0 执行 /就绪W1 离开wmutex=1 负责唤醒 R3 S=1 7、试说明 PCB 的作用,为什么说 PCB 是进程存在的唯独标志?课本第 7 题答:进程掌握块

21、的作用,是使一个在多道程序环境下不能独立运行的程序,成为一个能独立 运行的基本单位,即一个能与其他进程并发执行的进程;在创建进程时,系统将为它配置一个 PCB;在进行进程调度时,系统将依据 PCB 中的 状态和优先级等信息来挑选新进程,然后将老进程的现场信息储存到它的 PCB 中,再依据新进程 PCB 中所储存的处理机状态信息来复原运行的现场;执行中的进程,假如 需要拜访文件或者需要与合作进程实现同步或通信,也都需要拜访 PCB;当进程因某种缘由而暂停执行时,也必需将断点的现场信息储存到它的PCB 中;当进程终止时,系统将回收它的 PCB;可见,在进程的整个生命周期中,系统总是通过其 PCB

22、对进程进行掌握和治理,亦即,系统是依据其 PCB 而不是任何别的什么而感知到进程的存在,所以说, PCB 是进程存在的唯独标志;8、同步机构应遵循哪些基本准就?为什么?课本第 18 题答:闲暇让进、忙就等待、有限等待、让权等待;这样才能保证多个进程对临界资源的互斥拜访,不会造成系统的纷乱、程序执行结果的不确定性或死锁的产生;9、试从物理概念上说明记录型信号量wait 和 signal ;课本第19 题答:一个信号量通常对应一类临界资源,在使用前,信号量必需经过定义并赋适当的初值;每次对它进行wait 操作意味着申请一个单位的该资源,signal 操作操作意味着归仍一个单位的该类资源;当S.va

23、lue0 时,它的值表示系统中该类资源当前可用的数目;S.value=0 时,表示该类资源已经安排完毕,其肯定值表示系统中因申请资源而堵塞在S.L 队列上的进程数目;名师归纳总结 - - - - - - -第 7 页,共 9 页精选学习资料 - - - - - - - - - 10、在生产者消费者问题中,假如缺少了 有何影响?课本第 23 题signalfull 或 signalempty ,对执行结果将会答:假如生产者进程中缺少了 signalfull ,生产者一开头是不断往缓冲池送消息,而消费者一开头就由于 full 为 0 而处于堵塞状态, 当全部缓冲区装满之后,由于 empty 由 n

24、 减为0,而消费者已经堵塞,生产者也会由于waitempty 而处于堵塞状态;产生死锁;消费者进程中缺少了signalempty ,缓冲区指针in 从 0 指向了 n-1 后,生产者就会由于执行 waitempty 处于堵塞状态;生产者堵塞后,消费者消费掉全部的产品,即缓冲区指针 out 从 0 指向了 n-1 后,也会由于执行 waitfull 处于堵塞状态;产生死锁;11、我们为某临界资源设置一把锁 W ,当 W=1 时表示关锁;当 W=0 时表示锁已经打开,试写出开锁和关锁原语,并利用它们去实现互斥;课本第 25 题答:相应的关锁原语 lockW 和开锁原语 unlockW 可描述如下:

25、lockW: while W=1 do no-op; W:=1; unlockW: W:=0; 在利用关锁原语和开锁原语实现进程互斥时,可将临界区 lockW; CS; unlockW; 12、当前有哪几种高级通信机制?课本第 34 题答:有三种:共享储备器系统、消息传递系统、管道通信系统CS 放在其间,即:13、试从调度性、并发性、拥有资源及系统开销方面对进程和线程进行比较;课本第38题答:进程和线程之间在调度性、并发性、拥有资源及系统开销方面的比较如下:1调度性:在传统的 进程;在引入线程的OS 中,拥有资源的基本单位和独立调度、分派的基本单位都是 OS 中,就把线程作为调度和分派的基本单

26、位,而把进程作为资源拥有的基本单位;2并发性:在引入线程的OS 中,不仅进程之间可以并发执行,而且在一个进程中的多个线程之间亦可并发执行,因而它比传统的 OS 具有更好的并发性3拥有资源:在两种OS 中,拥有资源的基本单位都是进程;线程除了一点在运行中必不行少的资源外,本身基本不拥有系统资源,但它可以拜访其隶属进程的资源;4开销:由于在创建或撤消进程时,系统都要为之安排或回收资源,如内存空间、I/O 设备等;进程切换时所要储存和设置的现场信息也要明显多于线程;因此,OS 在创建、撤消和切换进程时所付出的开销将明显地大于线程;由于隶属于同一个进程的多个线程共享同一地址空间和该进程的全部已找开文件

27、,从而使它们之间的同步和通信的实现也比进程更容易;14、何谓用户级线程和内核支持线程?课本第 41 题答:内核支持线程是在内核支持下实现的,即每个线程的线程掌握块设置在内核中,全部对线程的操作 如创建、撤消和切换等 ,都是通过系统调用,由内核中的相应处理程序完成;设置了内核支持线程的系统,其调度是以线程为单位进行的;名师归纳总结 - - - - - - -第 8 页,共 9 页精选学习资料 - - - - - - - - - 用户级线程仅存在于用户空间中,即每个线程的掌握块设置在用户空间中,全部对线程的操作也在用户空间中完成,而无需内核的帮忙;设置了用户级线程的系统,其调度仍是以进程为单位进行的;名师归纳总结 - - - - - - -第 9 页,共 9 页

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁