OS课后习题答案.pdf
《OS课后习题答案.pdf》由会员分享,可在线阅读,更多相关《OS课后习题答案.pdf(16页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、第一章操作系统引论2.O S的作用可表现在哪几个方面?答:(1)OS作为用户与计算机系统之间的接口(2)OS作为计算机系统资源的管理者(3)OS实现了对计算机资源的抽象3.为什么说O S实现了对计算机资源的抽象?答:O S首先在裸机上覆盖一层I/O 设备管理软件,实现了对计算机硬件操作的第一层次抽象;在第一层软件上再覆盖文件管理软件,实现了对硬件资源操作的第二层次抽象。OS通过在计算机硬件上安装多层系统软件,增强了系统功能,隐藏了对硬件操作的细节,由它们共同实现了对计算机资源的抽象。4.试说明推动多道批处理系统形成和发展的主要动力是什么。答:主要动力来源于四个方面的社会需求与技术发展:(1)不
2、断提高计算机资源的利用率;(2)方便用户;(3)器件的不断更新换代;(4)计算机体系结构的不断发展。6.试说明推动分时系统形成和发展的主要动力是什么。答:推动分时系统形成和发展的主要动力是更好地满足用户的需要。主要表现在:C P U 的分时使用缩短了作业的平均周转时间;人机交互能力使用户能直接控制自己的作业;主机的共享使多用户能同时使用同一台计算机,独立地处理自己的作业。11.试列出WindowsOS中五个主要版本,并说明它们分别较之前一个版本有何改进。答:(1)MicrosoftWindows 1.0是微软公司在个人电脑匕开发图形界面的首次尝试。(2)Windows 95是混合的16位/32
3、位系统,第一个支持32位。带来了更强大、更稳定、更实用的桌面图形用户界面,结束了桌面操作系统间的竞争。(3)Windows 98是微软公司的混合16位/32位 W indow s操作系统,改良了硬件标准的支持,革新了内存管理,是多进程操作系统。(4)Windows X P是基于Windows 2000的产品,拥有新用户图形界面月神Luna。简化了用户安全特性,整合了防火墙。(5)Windows V is ta 包含了上百种新功能;特别是新版图形用户界面和Windows Aero全新界面风格、加强的搜寻功能(Windows Indexing Service)、新媒体创作工具以及重新设计的网络、音
4、频、输 出(打印)和显示子系统。12.试从交互性、及时性以及可靠性方面,将分时系统与实时系统进行比较。答:(1)及时性:实时信息处理系统对实时性的要求与分时系统类似,都是以人所能接受的等待时间来确定;而实时控制系统的及时性,是以控制对象所要求的开始截止时间或完成截止时间来确定的,一般为秒级到毫秒级,甚至有的要低于100微妙。(2)交互性:实时信息处理系统具有交互性,但人与系统的交互仅限于访问系统中某些特定的专用服务程序。不像分时系统那样能向终端用户提供数据和资源共享等服务。(3)可靠性:分时系统也要求系统可靠,但相比之下,实时系统则要求系统具有高度的可靠性。因为任何差错都可能带来巨大的经济损失
5、,甚至是灾难性后果,所以在实时系统中,往往都采取了多级容错措施保障系统的安全性及数据的安全性。18.什么原因使操作系统具有异步性特征?(1)程序执行结果是不确定的,即程序是不可再现的(2)每个程序在何时执行,多个程序间的执行顺序以及完成每道程序所需的时间都是不确定的,即不可预知性23.何谓微内核技术?在微内核中通常提供了哪些功能?答:把操作系统中更多的成分和功能放到更高的层次(即用户模式)中去运行,而留下一个尽量小的内核,用它来完成操作系统最基本的核心功能,称这种技术为微内核技术。在微内核中通常提供了进程(线程)管理、低级存储器管理、中断和陷入处理等功能。第 二 章 进程管理2.试画出下面四条
6、语句的前趋图:SI:a:=x+y;S2:b:=z+l;S3:c:=a-b;S4:w:=c+l;4.程序并发执行时为什么会失去封闭性和可再现性?答:程序并发执行时,多个程序共享系统中的各种资源,因而这些资源的状态由多个程序改变,致使程序运行失去了封闭性,也会导致其失去可再现性。5.在操作系统中为什么要引入进程概念?它会产生什么样的影响?答:为了使程序在多道程序环境下能并发执行,并能对并发执行的程序加以控制和描述,而引入了进程概念影响:使程序的并发执行得以实行6.试从动态性,并发性和独立性上比较进程和程序。答:(1)动态性是进程最基本的特性,表现为由创建而产生,由调度而执行,因得不到资源而暂停执行
7、,山撤销而消亡。进程有一定的生命期,而程序只是一组有序的指令集合,是静态实体(2)并发性是进程的重要特征,同时也是O S的重要特征。引入进程的目的正是为了使其程序能和其它进程的程序并发执行,而程序是不能并发执行的。(3)独立性是指进程实体是一个能独立运行的基本单位,也是系统中独立获得资源和独立调度的基本单位。对于未建立任何进程的程序,不能作为独立单位参加运行。7.试说明PCB的作用,为什么说PCB是进程存在的惟一标志?答:PC B 是进程实体的一部分,是操作系统中最重要的记录型数据结构。作用是使个在多道程序环境下不能独立运行的程序,成为一个能独立运行的基本单位,成为能与其它进程并发执行的进程。
8、O S是根据PCB对并发执行的进程进行控制和管理的。8.试说明进程在三个基本状态之间转换的典型原因。答:(1)就绪状态一执行状态(2)执行状态f就绪状态(3)执行状态f阻塞状态(4)阻塞状态-就绪状态进程分配到CPU资源时间片用完I/O请求I/O完成2 3.在生产者一消费者问题中,如果缺少了 signal(full)戒 signal(empty),对执行结果有何影响?答:如果缺少signal(full),那么表明从第一个生产者进程开始就没有改变信号量full值,即使缓冲池产品已满,但 full值还是0,这样消费者进程执行wait(full)时认为缓冲池是空而取不到产品,消费者进程一直处于等待状
9、态。如果缺少signal(empty),在生产者进程向n个缓冲区投满产品后消费者进程才开始从中取产品,这 时 empty=0,full=n,那么每当消费者进程取走一个产品empty值并不改变,直到缓冲池取空了,empty值也是0,即使目前缓冲池有n 个空缓冲区,生产者进程要想再往缓冲池中投放产品也会因为申请不到空缓冲区被阻塞。24.在生产者一消费者问题中,如果将两个w ait操作即wait(full)和 wait(mutex)互换位置,或者将signal(mutex)与 signal(fu ll)互换位置,结果如何?答:将 wait(full)和 wait(mutex)互换位络后,可能引起死锁
10、。考虑系统中缓冲区全满时,若一生产者进程先执行了 wait(mutex)操作并获得成功,则当再执行wait(empty)操作时,它将因失败而进入阻塞状态,它期待消费者进程执行signal(empty)来唤醒自己,在此之前,它不可能执行signal(mutex)操作,从而使试图通过执行wait(mutex)操作而进入自己的临界区的其他生产者和所有消费者进程全部进入阻塞状态,这样容易引起系统死锁。若 signal(mutex)和 signal(full)互换位置后只是影响进程对临界资源的释放次序,而不会引起系统死锁,因此可以互换位置。25.我们在为某一临界资源设置把锁W,当 W=1时表示关锁,当W
11、=0时表示锁已打开。试写出开锁和关锁的原诧,并利用他们实现互斥。答:整型信号量:lock(W):while W=1 do no-opW:=l;unlock(W):W:=0;记录型信号量:k)ck(W):W:=W+l;if(Wl)then block(W,L)unlock(W):W:=W-1;if(W0)then wakeup(W,L)例子:Var W:semaphore:=0;beginrepeatlock(W);critical sectionunlock(W);remainder sectionuntil false;end26.试修改下面生产者一消费者问题解法中的错误:答:produce
12、r:beginrepeatproducer an item in nextp;wait(mutex);wait(full);/*应为 wait(empty),而且还应该在 wait(mutex)的前面*/buffer(in):=nextp;/*缓冲池数组游标应前移:in:=(in+l)mod n;*/signal(mutex);/*signal(full);*/until false;endconsumer:beginrepeatwait(mutex);wait(empty);/*应为 wait(full),而且还应该在 wait(mutex)的前面*/nextc:=buffer(out);o
13、ut:=out+l;/*考虑循环,应改为:out:=(out+l)mod n;*/signal(mutex);/*signal(empty);*/consumer item in nextc;until false;end27.试利用记录型信号量写出一个不会出现死锁的哲学家进餐问题的算法答:Var chopstick:array0,4J of semaphore;所有信号量均被初始化为1,第 i 位哲学家的活动可描述为:RepeatWait(chopsticki);Wait(.chopstick(i+l)mod 5);Ea.t;Signal(chopsticki);Signal(chopsti
14、ck(i+1)mod 5)Ea.t;Think;11Until false;2 8.在测量控制系统中的数据采集优务,把所采集的数据送一单缓冲区;计算任务从该单缓冲区中取出数据进行计算。试写出利用信号量机制实现两任务共享单缓冲区的同步算法。答:a.Var mutex,empty,full:semaphores 1,1,0;gather:beginrepeatgather data in nextp;wait(empty);wait(mutex);buffer:=nextp;signal(mutex);signal(full);until false;endcompute:beginrepeatw
15、ait(full);wait(mutex);nextc:=buffer;signal(mutex);signal(empty);compute data in nextc;until false;endb.Var empty,full:semaphores 1,0;gather:beginrepeatgather data in nextp;wait(empty);buffer:=nextp;signal(full);until false;endcompute:beginrepeatwait(full);nextc:=buffer;signal(empty);compute data in
16、nextc;until false;end3 0.如何利用管程来解决生产者一消费者问题?答:首先建立一个管程,命名为ProclucerConsumer,包括两个过程:(1)Put(item)过程。生产者利用该过程将自己生产的产品放到缓冲池,用整型变量 c o u n t表示在缓冲池中已有的产品数目,当 c o u n tN n 时,表示缓冲池已满,生产者须等待。(2)get(item)过程。消费者利用该过程从缓冲池中取出一个产品,当 countWO时,表示缓冲池中已无可取的产品,消费者应等待。PC 管程可描述如下:type producer-consumer=monitorVar in,out
17、,count:integer;buffer:array 0,n-1 of item;notfulb notempty:condition;procedure entry dot(item)beginif count=n then not full.wait;buffer(in):=nexlp;in:=(in+l)mod n;count:=count+l;if notempty.queue then notempty.signal;endprocedure entry get(item)beginif count=0 then not full.wait;nextc:=buffer(out);o
18、ut:=(out+l)mod n;count:=count-l;if notfull.quene then notfull.signal;endbegin in:=out:=0;count:=0end在利用管程解决生产者一消费者问题时,其中的生产者和消费者可描述为:producer:beginpepeatproduce an inem in nestpPC.put(item);until false;endconsumer:beginrepeatPC.get(item);consume the item in enxtc;until false;end31.什 么 是 AND信号量?试利用AN
19、D信号量写出生产者一消费者问题的解法。答:为解决并行带来的死锁问题,在 wait操作中引入A N D 条件,其基本思想是将进程在整个运行过程中所需要的所有临界资源,一次性地全部分配给进程,用完后一次性释放。解决生产者一消费者问题可描述如卜 :var mutex,empty,full:semaphoresl,n,0;buffer:array0,.,n-l J of item;in,out:integer:=0,0;beginparbegin14producer:beginrepeatproduce an item in nextp;wait(empty);wait(sI,s2,s3,.,sn);
20、/s 1 ,s2,.,sn为执行生产者进程除e m p ty 外其余的条件wait(mutex);buffer(in):=nextp;in:=(in+l)mod n;signal(mutex);signal(full);signal(s I,s2,s3,.,sn);until false;endconsumer:beginrepeatwait(full);wait(k 1 ,k2,k3,.,kn);k 1 ,k2,k n 为执行消费者进程除f u l l 外其余的条件wait(mutex);nextc:=buffer(out);out:=(out+l)mod n;signal(mutex);s
21、ignal(empty);signal(kl,k2,k3,.,kn);consume the item in nextc;until false;endparendend32.什么是信号量集?试利用信号量集写出读者一写者问题的解法。答:对 AND信号量加以扩充,形成的信号量集合的读写机制。解法:Var RN integer;L,mx:semaphore:=RN J;beginparbeginreader:beginrepeatSwait(L,l,l);Swait(mx,l,l);perform read operation;Ssignal(LJ);until falseendwriteribe
22、ginrepeatSwait(mx,1,1;L,RN,O);perform write operation;Ssignal(mx,l);until falseendparendend3 6.为什么要在O S 中引入线程?答:在操作系统中引入线程,则是为了减少程序在并发执行时所付出的时空开销,使 O S具有更好的并发性,提高CPU的利用率。进程是分配资源的基本单位,而线程则是系统调度的基本单位。3 8.试从调度性,并发性,拥有资源及系统开销方面对进程和线程进行比较。答:(1)调度性。线程在O S中作为调度和分派的基本单位,进程只作为资源拥有的基本单位。(2)并发性。进程可以并发执行,一个进程的多
23、个线程也可并发执行。(3)拥有资源。进程始终是拥有资源的基本单位,线程只拥有运行时必不可少的资源,本身基本不拥有系统资源,但可以访问隶属进程的资源。(4)系统开销。操作系统在创建、撤消和切换进程时付出的开销显著大于线程第 三 章 处理机调度与死锁2.何谓作业、作业步和作业流?答:作 也包含通常的程序和数据,还配有作业说明书。系统根据该说明书对程序的运行进行控制。批处理系统中是以作业为基本单位从外存调入内存。作业步是指每个作业运行期间都必须经过若干个相对独立相互关联的顺序加工的步骤。作业流是指若干个作业进入系统后依次存放在外存上形成的输入作业流;在操作系统的控制下,逐个作业进程处理,于是形成了处
24、理作业流。3.在什么情班下需要使用作业控制块JC B?其中包含了哪些内容?答:每当作业进入系统时,系统便为每个作业建立一个作业控制块JC B,根据作业类型将它插入到相应的后备队列中。J C B 包含的内容通常有:1)作业标识2)用户名称3)用户账户 4)作业类型(CPU繁忙型、I/O 芳名型、批量型、终端型)5)作业状态6)调度信息(优先级、作业已运行)7)资源要求8)进入系统时间9)开始处理时间10)作业完成时间11)作业退出时间12)资源使用情况等7.在选择调度方式和调度算法时,应遵循的准则是什么?答:(1)面向用户的准则:周转时间短、响应时间快、截止时间的保证、优先权准则。(2)面向系统
25、的准则:系统吞吐量高、处理机利用率好、各类资源的平衡利用。8.在批处理系统、分时系统和实时系统中,各采用哪几种进程(作业)调度算法?答:批处理系统的调度算法:短作业优先、优先权、高响应比优先、多级反馈队列调度算法。分时系统的调度算法:时间片轮转法。实时系统的调度算法:最早截止时间优先即EDF、最低松弛度优先即LLF算法。9.何谓静态和动态优先级?确定静态优先级的依据是什么?答:静态优先级是指在创建进程时确定且在进程的整个运行期间保持不变的优先级。动态优先级是指在创建进程时赋予的优先权,可以随进程推进或随其等待时间增加而改变的优先级,可以获得更好的调度性能。确定进程优先级的依据:进程类型、进程对
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- OS 课后 习题 答案
限制150内