《操作系统课后习题答案及复习题.doc》由会员分享,可在线阅读,更多相关《操作系统课后习题答案及复习题.doc(33页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第一章1、设计现代OS的主要目标是什么?P1答:其主要目标是有效性、方便性、可扩充性、开放性。2、OS的作用可表现在哪几个方面?P2-P3答:1、OS作为用户与计算机硬件系统之间的接口;2、OS作为计算机资源的管理者;3、OS实现了对计算机资源的抽象;3、为什么说OS实现了计算机资源的抽象?P4答:完全无软件的计算机系统(即裸机),它向用户提供的是实际硬件接口(物理接口),用户必须对物理接口的实现细节有充分的了解,并利用机器指令进行编程,因此该物理机器必定是难以使用的。为了方便用户使用I/O设备,人们在裸机上覆盖上一层I/O设备管理软件。通常把覆盖了上述软件的机器称为扩充机器或虚机器。它向用户
2、(进程)提供了一个对硬件操作的抽象模型,用户更容易地使用计算机便件资源。由该层软件实现了对计算机硬件操作的第一个层次的抽象。为了方便用户使用文件系统,人们又在第一层软件上再覆盖上一层用于文件的管理软件,同样由它来实现对文件操作的细节,并向上提供一组对文件进行存取操作的命令,用户可利用这组命令进行文件的存取。此时用户所看到的是一台功能更强、使用更方便的虚机器。该层软件实现了对硬件资源操作的第二个层次的抽象。OS是铺设在计算机硬件上的多层系统软件,它们不仅增强了系统的功能,而且还隐藏了对硬件操作的细节,由它们实现了对计算机硬件操作的多个层次的抽象。值得说明的,对一个硬件在底层进行抽象后,在高层还可
3、再次对该资源进行抽象,成为更高层的抽象模型。随着抽象层次的提高,抽象接口所提供的功能就越来越强,用户使用起来也更加方便。4、试说明推动多道批处理系统形成和发展的主要动力是什么?P4-P5答:为了进一步提高资源的利用率和系统吞吐量,在该系统中,用户所提交的作业都先存放在外存上并排成一个队列,称为“后备队列”;然后,由作业高度程序按一定的算法从后备队列中选择若干个作业调入内存,使它们共享CPU和系统中各种资源。在OS中引入多道程序设计技术可带来以下好处:提高CPU和利用率、可提高内存和I/O设备利用率、增加系统吞吐量。主要动力:1、不断提高计算机资源的利用率;2、方便用户;3、器件的不断更新换代;
4、4、计算机体系结构的不断发展;5、何谓脱机I/O和联机I/O?P6答:由于程序和数据的输入和输出都是在外围机的控制下完成的,或者说,它们是在脱离主机的情况下进行的,该技术是脱机输入/输出方式;反之,在主机的直接控制下进行输入/输出的方式称为联机输入/输出)ON-LINE I/O)方式。1、减少了CPU的空闲时间;2、提高了I/O速度。6、试说明推动分时系统形成和发展的主要动力主什么 ?P9答:分时系统它能很好地将一台计算机提供给多个用户同时使用,提高计算机的利用率。1、人-机交互;2、共享主机;3、便于用户上机。7、实现分时系统的关键问题是什么 ?应如何解决?P10答:其最关键的问题是如何使用
5、户能与自己的作业进行交互,即当用户在自己的终端上键入命令时,系统应能及时接收并及时处理该命令,再将结果返回给用户。用户可继续键入下一条命令,此即人-机交互。应强调指出,即使有多个用户同时通过自己的键盘键入命令,系统也应能全部地及时接收并处理这些命令。1、及时接收;2、及时处理;8、为什么要引入实时OS?P11答:实时系统是指系统能及时(或即时)响应外部事件的请求,在规定的时间内完成对该事件的处理,并控制所有实时任务协调一致地运行。1、应用需求;2、实时任务;9、什么是硬实时任务和软实时任务?试举例说明。P12答:硬实时任务是系统必须满足任务对截止时间的要求,否则可能出现难以预测的结果。软实时任
6、务是它也联系着一个截止时间,但并不严格,若偶尔错过了任务的截止时间,对系统产生的影响也不会太大。举例说明:硬实时任务为订车票、工业;软实时任务为网页更新;10、在8位微机和16位微机中,占据了统治地位的是什么 操作系统?P13答:在8位微机和16位微机中,最有代表性的单用户单任务微机操作系统是CP/M和MS-MOS。11、试列出Windows OS中五个主要版本,并说明它们分别较之前一个版本有何改进。P13答:1、WIN1.0和WIN2.0;2、WIN3.1版本,针对386和486等32位微机开发的,较之以前的操作系统有着重大的改进,引入了友善的图形用户界面,支持多任务和扩展内存的功能,使计算
7、机更好使用,从而成为386和486等微机的主流操作系统;3、1 WIN95、WIN3.1有许多重大改进,彩了全32位处理技术,并兼容了以前的16位应用程序,在该系统中还集成了支持INTERENET的网络功能。4、WIN98把微软公司自己开发的INTERNET浏览器整合到系统中,大大方便了用户上网浏览,另一个特点是增加了对多媒体的支持。5、32位版本的WIN XP。 12、试从交互性、及时性以及可靠性方面,将分时系统与实时系统进行比较。P12答:1、及时性,实时信息处理系统对实时性的要求与分时系统类似,都是以人所能接受的等待时间来确定的;而实时控制系统的及时性,则是以控制对象所要求的开始截止时间
8、或完成截时间来确定的,一般为秒级到毫秒级,甚至有的要低于100微秒。2、交互性,实时信息处理系统虽然也具有交互性,但这里人与系统的交互仅限于访问系统中某些特定的专用服务程序。3、可靠性,分时系统虽然也要求系统可靠,但相比之下,实时系统则要求系统具有高度的可靠性。13、OS有哪几个特征?其最基本的特征是什么?P14答:OS有并发、共享、虚拟和异步这四个基本特征。并发特征是操作系统最重要的特征;14、处理机管理有哪些主要功能?它们的主要任务是什么?P18答:主要功能:创建和撤消进程(线程),对诸进程(线程)的运行进行协调,实现进程(线程)之间的信息交换,以及按照一定的算法把处理机分配给进程(线程)
9、。1、进程控制:进程控制的主要功能是为作业创建进程,撤消已结束的进程,以及控制进程在运行过程中的状态转换。2、进程同步:进程同步的主要任务是为多个进程(含线程)的运行进行协调。3、进程通信:在多道程序环境下,为了加速应用程序的运行,应系统中建立多个进程,并且再为一个进程建立若干个线程,由这些进程(线程)相互合作去完成一个共同的任务。而在这些进程(线程)之间,又往往需要交换信息。当相互合作的进程(线程)处于同一计算机系统时,通常在它们之间是采用直接通信方式,即由源进程利用发送命令直接将消息(Message)挂到目标进程的消息队列上,以后由目标进程利用接收命令从其消息队列中取出消息。4、调度:在后
10、备队列上等待的每个作业都需经过调度才能执行(1)作业调度:作业调度的基本任务是从后备队列中按照一定的算法,选择出若干个作业,为它们分配运行所需的资源(首行是分配内存)。(2)进程调度:进程调度的任务是从进程的就绪队列中,按照一定的算法选 出一个进程,把处理机分配给它,并为它设置运行现场,使进程投入执行。15、内存管理有哪些主要功能?它们的主要任务是什么?P20答:主要任务是为多道程序的运行提供良好的环境,方便用户使用存储器,提高存储器的利用率以及能从逻辑上扩充内存。有内存分配、内存保护、地址眏射和内存扩充等功能。1、内存分配:内存分配的主要任务是为每道程序分配内存空间,使它们“各得其所”;提高
11、存储器的利用率,以减少不可用的内存空间;允许正在运行的程序申请附加的内存空间,以适应程序和数据动态增长的需要。2、内存保护:内存保护的主要任务是确保每道用户程序都只在自己的内存空间内运行彼此互不干优;绝不允许用户程序访问操作系统的程序和数据;也不允许用户程序转移到非共享的其它用户程序中去执行。3、地址映射:存储器管理必须提供地址映射功能,以将地址空间中的逻辑地址转换为内存空间中与之对应的物理地址。该功能应在硬件的支持下完成。4、内存扩充:存储器管理中的内存扩充任务并非是去扩大物理内存的容量,而是借助于虚拟存储技术,从逻辑上去扩充内存容量,使用户所感觉到的内存容量比实际内存容量大得多,以便让更多
12、的用户程序并发运行。16、设备管理有哪些主要功能?其主要任务是什么?P21答:主要任务是:完成用户进程提出的I/O请求;为用户进程分配其所需的I/O设备;提高CPU和I/O设备的利用率;提高I/O速度;方便用户使用I/O设备。有缓冲管理、设备分配和设备处理以及虚拟设备等功能。1、缓冲管理:在I/O设备和CPU之间引入缓冲,提高CPU的利用率,进而提高系统吞吐量。在现代计算机系统中,都无一例外地在内存中设置了缓冲区,而且还可通过增加缓冲区容量的方法来改善系统的性能。对于不同的系统,可以采用不同的缓冲区机制。2、设备分配:设备分配的基本任务是根据用户进程的I/O请求、系统的现有资源情况以及按照某种
13、设备的分配策略,为之分配其所需的设备。如果在I/O设备和CPU之间还存在着设备控制器和I/O通道时,还须为分配出去的设备分配相应的控制器和通道。3、设备处理:设备处理程序又称为设备驱动程序。其基本任务是用于实现CPU和设备控制器之间的通信,即由CPU向设备控制器发出I/O命令,要求它完成指定的I/O操作;反之,由CPU接收从控制器发来的中断请求,并给予迅速的响应和相应的处理。17、文件管理有哪些主要功能?其主要任务是什么?P21-P22答:文件管理的主要任务是对用户文件和系统文件进行管理,以方便用户使用,并保证文件的安全性。为此,文件存储空间的管理、目录管理、文件的读/写管理,以及文件的共享与
14、保护等功能。1、文件存储空间的管理:其主要任务是为每个文件分配必要的外存空间,提高外存的利用率,并能有助于提高文件系统的存、取速度。2、目录管理:目录管理的主要任务是为每个文件建立 其目录项,并对众多的目录项加以有效的组织,以实现方便的按名存取,即用户只须提供文件名便可对该文件进行存取。3、文件的读/写管理和保护:文件的读/写管理其该功能是根据用户的请求,从外存中读取数据,或将数据写入外存。文件保护其为了防止系统中的文件被非法窃取和破坏,在文件系统中必须提供有效的存取控制功能。18、是什么原因使操作系统具有异步性特征?答:进程是以人们不可预知的速度向前推进,此即进程的异步性。19模块接口法存在
15、哪些问题?可通过什么样的途径来解决?答:(1)模块接口法存在的问题:在OS设计时,各模块间的接口规定很难满足在模块完成后对接口的实际需求。在OS 设计阶段,设计者必须做出一系列的决定,每一个决定必须建立在上一个决定的基础上。但模块化结构设计的各模块设计齐头并进,无法寻找可靠的顺序,造成各种决定的无序性,使程序设计人员很难做到设计中的每一步决定都建立在可靠的基础上,因此模块接口法被称为“无序模块法”。(2)解决途径:将模块接口法的决定顺序无序变有序,引入有序分层法。20在微内核OS中,为什么要采用客户/服务器模式?答:C/S 模式具有独特的优点:数据的分布处理和存储。便于集中管理。灵活性和可扩充
16、性。易于改编应用软件。21试描述什么是微内核OS。答:1)足够小的内核 2)基于客户/服务器模式3)应用机制与策略分离原理 4)采用面向对象技术。22在基于微内核结构的OS中,应用了哪些新技术?答:在基于微内核结构的OS 中,采用面向对象的程序设汁技术。23何谓微内核技术?在微内核中通常提供了哪些功能?答:把操作系统中更多的成分和功能放到更高的层次(即用户模式)中去运行,而留下一个尽量小的内核,用它来完成操作系统最基本的核心功能,称这种技术为微内核技术。在微内核中通常提供了进程(线程)管理、低级存储器管理、中断和陷入处理等功能。24微内核操作系统具有哪些优点?它为何能有这些优点?答:1)提高了
17、系统的可扩展性2)增强了系统的可靠性3)可移植性4)提供了对分布式系统的支持5)融入了面向对象技术第二章1、什么是前趋图?为什么要引入前趋图?P35答:前趋图是一个有向无循环图,记为DAG,用于描述进程之间招待的前后关系。可用来简单讲述进程之间的关系。2、试画出下面四语句的前趋图:P36S1:a:=x+y;S2:b:=z+1;S3:c:=a-b;S4:w:=c+1;3、为什么程序并发执行会产生间断性特征?P36-P37答:因程序在并发执行时,由于它们共享系统资源,以及为完成同一项任务而相互合作,致使在这些并发执行的程序之间,形成了相互制约的关系。4、程序并发执行时为什么会失去封闭性和可再现性?
18、P37答:程序在并发执行时,是多个程序共享系统中的各种资源,因而这些资源的状态将由多个程序来改变,致使程序的运行换去了封闭性,这样,某程序在执行时,必然会受到其它程序的影响。程序在并发执行时,由于失去了封闭性,也将导致其再失去可再现性。5、在操作系统中为什么要引入进程的概念?它会产生什么样的影响?P37?答:因为使程序能并发执行,且为了对并发执行的程序加以描述和控制,人们引入了“进程”的概念。6、试从动态性、并发性和独立性上比较进程和程序。P37-P38答:动态性进程的实质是进程实体的一次执行过程,因此,动态性是进程的最基本的特征。并发性这是指多个进程实体同存于内存中,且能在一段时间内同时运行
19、。独立性是指进程实体是一个能独立运行、独立分配资源和独立接受调度的基本单位。凡未建立PCB的程序都不能作为一个独立的单位参与运行。7、试说明PCB的作用,为什么说PCB是进程存在的唯一标志?P41答:进程控制块的作用是一个在多道程序环境下不能独立运行的程序(含数据),成为一个能独立运行的基本单位,一个能与其它进程并发执行的进程。-在进程的整个生命期中,系统总是通过PCB对进程进行控制的,系统是根据进程的PCB而不是任何别的什么而感知到该进程的存在的,所以说,PCB是进程存在的惟一标志。8、试说明进程在三个基本状态之间转换的典型原因。P38答:处于就绪状态的进程,在调度程序为之分配了处理机之后,
20、该进程便可执行,相应地,它就由就绪状态转变为执行状态。正在执行的进程也称为当前进程,如果因分配给它的时间片已完而被暂停执行时,该进程便由执行状态又回复到就绪状态;如果因发生某事件而使进程的执行受阻,使之无法继续执行,该进程将由执行状态转变为阻塞状态。9. 为什么要引入挂起状态?该状态有哪些性质?a. 引入挂起状态主要是出于4种需要(即引起挂起的原因): 终端用户的请求,父进程请求,负荷调节的需要,操作系统的需要。b. 被挂起的进程是处于静止状态,并且不能直接被处理机调度。17. 为什么进程在进入临界区之前应先执行“进入区”代码?而在退出前又要执行“退出区”代码? 为了实现多个进程对临界资源的互
21、斥访问,必须在临界区之前加一段用于检查临界资源是否正在被访问的代码,如未被访问,该进程可进入临界区对此临界资源进行访问;如正被访问,则该进程不能进入临界区访问临界资源。 在退出临界区后,执行恢复访问标志的代码为“退出区”,而在退出前执行“退出区”代码主要是为了使其它进程能再访问此临界资源。18. 同步机构应遵循哪些基本准则?为什么?a. 空闲让进、忙则等待、有限等待、让权等待四条准则b. 为实现进程能互斥地进入到自己的临界区19. 试从物理概念上说明记录型信号量wait和signal。 Wait(S):当S.value0时,表示目前系统中这类资源还有可用的,执行一次wait操作,意味着进程请求
22、一个单位的该类资源,是系统中可供分配的该类资源减少一个,因此描述为S.value:=S.value-1;当S.value1) then block(W.L) unlock(W): W:=W-1; if(W0) then wakeup(W.L) 例子: Var W:semaphore:=0; begin repeat lock(W); critical section unlock(W); remainder section until false; end26. 试修改下面生产者消费者问题解法中的错误: producer: begin repeat produce an item in nex
23、tp; wait(mutex); wait(full); buffer(in):=nextp; signal(mutex); until false; end consumer:begin repeat wait(mutex); wait(empty); nextc:=buffer(out);out:=out+1;signal(mutex); consume item in nextc; until false; endproducer:beginrepeat.producer an item in nextp;wait(mutex);wait(full); /* 应为wait(empty),
24、而且还应该在wait(mutex)的前面 */buffer(in):=nextp; /* 缓冲池数组游标应前移: in:=(in+1) mod n; */signal(mutex);/* signal(full); */until false;endconsumer:beginrepeatwait(mutex);wait(empty); /* 应为wait(full),而且还应该在wait(mutex)的前面 */nextc:=buffer(out);out:=out+1; /* 考虑循环,应改为: out:=(out+1) mod n; */signal(mutex);/* signal(e
25、mpty); */consumer item in nextc;until false;end 27、试利用记录型信号量写出一个不会出现死锁的哲学家进餐问题的算法。P61答:Var chopstick:arrayo,4 of semaphore; 所有信号量均被初始化为1,第i位哲学家的活动可描述为: Repeat Wait(chopsticki); Wait(chopstick(i+1) mod 5); . . . Eat;. . . Signal(chopsticki); Signal(chopstick(i+1) mod 5) Eat;. . . Think; Until false;2
26、8. 在测量控制系统中的数据采集任务时,把所采集的数据送往一单缓冲区;计算任务从该单缓冲区中取出数据进行计算。试写出利用信号量机制实现两任务共享单缓冲区的同步算法。 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);
27、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 next
28、c;until false; end29画图说明管程由哪几部分组成,为什么要引入条件变量?答:管程由四部分组成:管程的名称;局部于管程内部的共享数据结构说明;对该数据结构进行操作的一组过程;对局部于管程内部的共享数据设置初始值的语句;当一个进程调用了管程,在管程中时被阻塞或挂起,直到阻塞或挂起的原因解除,而在此期间,如果该进程不释放管程,则其它进程无法进入管程,被迫长时间地等待。为了解决这个问题,引入了条件变量condition。30如何利用管程来解决生产者与消费者问题?答:首先建立一个管程,命名为ProclucerConsumer,包括两个过程:(1)Put(item)过程。生产者利用该过程
29、将自己生产的产品放到缓冲池,用整型变量count 表示在缓冲池中已有的产品数目,当countn 时,表示缓冲池已满,生产者须等待。2)get(item)过程。消费者利用该过程从缓冲池中取出一个产品,当count0时,表示缓冲池中已无可取的产品,消费者应等待。PC 管程可描述如下:type producer-consumer =monitorVar in,out,count:integer;buffer:array0,n-1of item;notfull,notempty:condition;procedure entry dot(item)beginif count=n then not fu
30、ll.wait;buffer(in):=nextp;in:=(in+1)mod n;count:=count+1;if notempty.queue then notempty.signal;endprocedure entry get(item)beginif count=0 then not full.wait;nextc:=buffer(out);out:=(out+1)mod n;count:=count-1;if notfull.quene then notfull.signal;endbegin in:=out:=0;count:=0end在利用管程解决生产者一消费者问题时,其中的
31、生产者和消费者可描述为:producer: beginpepeatproduce an inem in nestpPC.put(item);until false;endconsumer: beginrepeatPC.get(item);consume the item in enxtc;until false;end31什么是AND信号量?试利用AND信号量写出生产者一消费者问题的解法。答:为解决并行带来的死锁问题,在wait 操作中引入AND 条件,其基本思想是将进程在整个运行过程中所需要的所有临界资源,一次性地全部分配给进程,用完后一次性释放。解决生产者消费者问题可描述如下:var mu
32、tex,empty,full: semaphore:=1,n,0;buffer: array0,.,n-1 of item;in,out: integer:=0,0;beginparbeginproducer: beginrepeatproduce an item in nextp;wait(empty);wait(s1,s2,s3,.,sn); /s1,s2,.,sn为执行生产者进程除empty 外其余的条件wait(mutex);buffer(in):=nextp;in:=(in+1) mod n;signal(mutex);signal(full);signal(s1,s2,s3,.,s
33、n);until false;endconsumer: beginrepeatwait(full);wait(k1,k2,k3,.,kn); /k1,k2,.,kn 为执行消费者进程除full 外其余的条件wait(mutex);nextc:=buffer(out);out:=(out+1) mod n;signal(mutex);signal(empty);signal(k1,k2,k3,.,kn);consume the item in nextc;until false;endparendend32什么是信号量集?试利用信号量集写出读者一写者问题的解法。答:对AND信号量加以扩充,形成的
34、信号量集合的读写机制。解法:Var RN integer;L,mx: semaphore:=RN,1;beginparbeginreader:beginrepeatSwait(L,1,1);Swait(mx,1,1);perform read operation;Ssignal(L,1);until falseendwriter:beginrepeatSwait(mx,1,1;L,RN,0);perform write operation;Ssignal(mx,1);until falseendparendend33. 试比较进程间的低级通信工具与高级通信工具.P65用户用低级通信工具实现进程
35、通信很不方便,因为其效率低,通信对用户不透明,所有的操作都必须由程序员来实现,而高级通信工具则可弥补这些缺陷,用户可直接利用操作系统所提供的一组通信命令,高效地传送大量的数据。34、当前有哪几种高级通信机制?(P65)【解】共享存储器系统,消息传递系统,管道通信系统。35消息队列通信机制有哪几方面的功能?答:(1)构成消息(2)发送消息(3)接收梢息(4)互斥与同步。36. 为什么要在OS中引入线程?P72 在OS中引入进程的目的,是为了使多个程序能并发执行,以提高资源利用率和系统吞吐量。在OS中再引入线程,则是为了减少程序在并发执行时所付出的时空开销,使OS具有更好的并发性。37试说明线程具
36、有哪些属性?答:(1)轻型实体(2)独立调度和分派的基本单位(3)可并发执行(4)共享进程资源。38. 试从调度性,并发性,拥有资源及系统开销方面对进程和线程进行比较.P72-73a. 调度性。在传统的操作系统中,拥有资源的基本单位和独立调度、分派的基本单位都是进程,在引入线程的OS中,则把线程作为调度和分派的基本单位,而把进程作为资源拥有的基本单位;b. 并发性。在引入线程的OS中,不仅进程之间可以并发执行,而且在一个进程中的多个线程之间,亦可并发执行,因而使OS具有更好的并发性;c. 拥有资源。无论是传统的操作系统,还是引入了线程的操作系统,进程始终是拥有资源的一个基本单位,而线程除了拥有一点在运行时必不可少的资源外,本身基本不拥有系统资源,但它可以访问其隶属进程的资源;d. 开销。由于创建或撤销进程时,系统都要为之分配和回收资源,如内存空间等,进程切换时所