操作系统部分课后习题答案.docx
《操作系统部分课后习题答案.docx》由会员分享,可在线阅读,更多相关《操作系统部分课后习题答案.docx(20页珍藏版)》请在冰豆网上搜索。
操作系统部分课后习题答案
第一章
1.设计现代OS的主要目标是什么?
方便性,有效性,可扩充性和开放性。
2.OS的作用可表现在哪几个方面?
(1)OS作为用户与计算机硬件系统之间的接口。
(2)OS作为计算机系统资源的管理者。
(3)OS实现了对计算机资源的抽象。
4.试说明推动多道批处理系统形成和发展的主要动力是什么
主要动力来源于四个方面的社会需求与技术发展
(1)不断提高计算机资源的利用率
(2)方便用户(3)器件的不断更新换代(4)计算机体系结构的不断发展。
7.实现分时系统的关键问题是什么?
应如何解决
关键问题是当用户在自己的终端上键入命令时,系统应能及时接收并及时处理该命令。
在用户能接受的时延内将结果返回给用户。
解决方法:
针对及时接收问题,可以在系统中设置多路卡,使主机能同时接收用户从各个终端上输入的数据,为每个终端配置缓冲区,暂存用户键入的命令或数据。
针对及时处理问题,应使所有的用户作业都直接进入内存,并且为每个作业分配一个时间片,允许作业只在自己的时间片内运行。
这样在不长的时间内,能使每个作业都运行一次。
12.试从交互性、及时性以及可靠性方面,将分时系统与实时系统进行比较。
(1)及时性。
实时信息处理系统对实时性的要求与分时系统类似,都是以人所能接受的等待时间来确定,而实时控制系统的及时性,是以控制对象所要求的开始截止时间或完成截止时间来确定的,一般为秒级到毫秒级,甚至有的要低于100微妙。
(2)交互性。
实时信息处理系统具有交互性,但人与系统的交互仅限于访问系统中某些特定的专用服务程序,不像分时系统那样能向终端用户提供数据和资源共享等服务。
(3)可靠性。
分时系统也要求系统可靠,但相比之下,实时系统则要求系统具有高度的可靠性。
因为任何差错都可能带来巨大的经济损失,甚至是灾难性后果,所以在实时系统中,往往都采取了多级容错措施保障系统的安全性及数据的安全性。
13.OS有哪几大特征?
其最基本的特征是什么?
并发性、共享性、虚拟性和异步性四个基本特征。
最基本的特征是并发性。
14.处理机管理有哪些主要功能?
它们的主要任务是什么?
处理机管理的主要功能是:
进程管理、进程同步、进程通信和处理机调度
(1)进程管理:
为作业创建进程,撤销已结束进程,控制进程在运行过程中的状态转换
(2)进程同步:
为多个进程(含线程)的运行进行协调(3)进程通信:
用来实现在相互合作的进程之间的信息交换(4)处理机调度:
①作业调度:
从后备队里按照一定的算法,选出若干个作业,为他们分配运行所需的资源,首选是分配内存②进程调度:
从进程的就绪队列中,按照一定算法选出一个进程把处理机分配给它,并设置运行现场,使进程投入执行。
15.内存管理有哪些主要功能?
他们的主要任务是什么
内存管理的主要功能有:
内存分配、内存保护、地址映射和内存扩充。
内存分配:
为每道程序分配内存。
内存保护:
确保每道用户程序都只在自己的内存空间运行,彼此互不干扰。
地址映射:
将地址空间的逻辑地址转换为内存空间与对应的物理地址。
内存扩充:
用于实现请求调用功能、置换功能等。
16.设备管理有哪些主要功能?
其主要任务是什么?
主要功能有:
缓冲管理、设备分配和设备处理以及虚拟设备等。
主要任务:
完成用户提出的I/O请求、为用户分配I/O设备、提高CPU和I/O设备的利用率、提高I/O速度以及方便用户使用I/O设备。
17.文件管理有哪些主要功能?
其主要任务是什么?
文件管理主要功能:
文件存储空间的管理、目录管理、文件的读/写管理和保护。
文件管理的主要任务:
管理用户文件和系统文件、方便用户使用、保证文件安全性。
18.是什么原因使操作系统具有异步性特征
操作系统的异步性体现在三个方面:
一是进程的异步性,进程以人们不可预知的速度向前推进。
二是程序的不可再现性,即程序执行的结果有时是不确定的。
三是程序执行时间的不可预知性,即每个程序何时执行,执行顺序以及完成时间是不确定的。
23.何谓微内核技术?
在微内核中通常提供了哪些功能
把操作系统中更多的成分和功能放到更高的层次,即用户模式中去运行,而留下一个尽量小的内核,用它来完成操作系统最基本的核心功能,称这种技术为微内核技术。
在微内核中通常提供了进程、线程管理、低级存储器管理、中断和陷入处理等功能。
第二章
5.在操作系统中为什么要引入进程概念?
它会产生什么样的影响?
为了使程序在多道程序环境下能并发执行,并对并发执行的程序加以控制和描述,在操作系统中引入了进程概念。
影响:
使程序的并发执行得以实行。
6.试从动态性、并发性和独立性上比较进程和程序?
(1)动态性是进程最基本的特性,表现为由创建而产生、由调度而执行,因得不到资源而暂停执行,由撤销而消亡。
进程有一定的生命期,而程序只是一组有序的指令集合,静态实体。
(2)并发性是进程的重要特征,同时也是OS的重要特征。
引入进程的目的正是为了使其程序能和其它进程的程序并发执行,而程序是不能并发执行的。
(3)独立性是指进程实体是一个能独立运行的基本单位,也是系统中独立获得资源和独立调度的基本单位。
对于未建立任何进程的程序,不能作为独立单位参加运行。
7.试说明PCB的作用,为什么说PCB是进程存在的惟一标志?
PCB是进程实体的一部分,是操作系统中最重要的记录型数据结构。
作用是使一个在多道程序环境下不能独立运行的程序,成为一个能独立运行的基本单位,成为能与其它进程并发执行的进程。
OS是根据PCB对并发执行的进程进行控制和管理的。
8.试说明进程在三个基本状态之间转换的典型原因。
1就绪状态→执行状态进程分配到CPU资源
2执行状态→就绪状态时间片用完
3执行状态→阻塞状态I/O请求
4阻塞状态→就绪状态I/O完成
13.在创建一个进程时所要完成的主要工作是什么
(1)OS发现请求创建新进程事件后,调用进程创建原语Creat()
(2)申请空白PCB(3)为新进程分配资源(4)初始化进程控制块(5)将新进程插入就绪队列。
14.在撤销一个进程时所要完成的主要工作是什么
(1)根据被终止进程标识符,从PCB集中检索出进程PCB读出该进程状态。
(2)若被终止进程处于执行状态,立即终止该进程的执行,置调度标志真指示该进程被终止后重新调度。
(3)若该进程还有子进程,应将所有子孙进程终止,以防它们成为不可控进程。
(4)将被终止进程拥有的全部资源,归还给父进程,或归还给系统。
(5)将被终止进程PCB从所在队列或列表中移出,等待其它程序搜集信息。
15.试说明引起进程阻塞或被唤醒的主要事件是什么
16.进程在运行时存在哪两种形式的制约?
并举例说明之。
(1)间接相互制约关系。
举例:
有两进程A和B,如果A提出打印请求,系统已把唯一的一台打印机分配给了进程B,则进程A只能阻塞,一旦B释放打印机,A才由阻塞改为就绪。
(2)直接相互制约关系。
举例:
有输入进程A通过单缓冲向进程B提供数据。
当缓冲空时,计算进程因不能获得所需数据而阻塞,当进程A把数据输入缓冲区后,便唤醒进程B,反之,当缓冲区已满时,进程A因没有缓冲区放数据而阻塞,进程B将缓冲区数据取走后便唤醒A。
17.为什么进程在进入临界区之前应先执行“进入区”代码,而在退出前又要执行“退出区”代码
为了实现多个进程对临界资源的互斥访问,必须在临界区前面增加一段用于检查欲访问的临界资源是否正被访问的代码。
如果未被访问,该进程便可进入临界区对资源进行访问,并设置正被访问标志;如果正被访问,则本进程不能进入临界区,实现这一功能的代码为"进入区"代码,在退出临界区后,必须执行"退出区"代码,用于恢复未被访问标志,使其它进程能再访问此临界资源。
18.同步机构应遵循哪些基本准则?
为什么
同步机构应遵循的基本准则是:
空闲让进、忙则等待、有限等待、让权等待原因,为实现进程互斥进入自己的临界区。
23.在生产者消费者问题中,如果缺少了signal(full)或signal(empty),对执
行结果有何影响?
如果缺少signal(full),那么表明从第一个生产者进程开始就没有改变信号量full值,即使缓冲池产品已满,但full值还是0,这样消费者进程执行wait(full)时认为缓冲池是空而取不到产品,消费者进程一直处于等待状态。
如果缺少signal(empty),在生产者进程向n个缓冲区投满产品后消费者进程才开始从中取产品,这时empty=0full=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)互换位置后只是影响进程对临界资源的释放次序,而不会引起系统死锁,因此可以互换位置。
26.试修改下面生产者消费者问题解法中的错误:
producer:
begin
repeat
...
produceraniteminnextp;
wait(mutex);
wait(full);/*应为wait(empty),而且还应该在wait(mutex)的前面*/
buffer(in):
=nextp;
/*缓冲池数组游标应前移:
in:
=(in+1)modn;*/
signal(mutex);
/*signal(full);*/
untilfalse;
end
consumer:
begin
repeat
wait(mutex);
wait(empty);/*应为wait(full),而且还应该在wait(mutex)的前面*/
nextc:
=buffer(out);
out:
=out+1;/*考虑循环应改为:
out:
=(out+1)modn;*/
signal(mutex);/*signal(empty);*/
consumeriteminnextc;
untilfalse;end
27.试利用记录型信号量写出一个不会出现死锁的哲学家进餐问题的算法.
Varchopstick:
array[0,?
4]ofsemaphore;
所有信号量均被初始化为1第i位哲学家的活动可描述为
Repeat
Wait(chopstick[i]);
Wait(.chopstick[(i+1)mod5]);
...
Ea.t;
...
Signal(chopstick[i]);
Signal(chopstick[(i+1)mod5])
Ea.t;
...
Think;
Untilfalse;
28.在测量控制系统中的数据采集任务时,把所采集的数据送往一单缓冲区;计算任务从该单缓冲区中取出数据进行计算。
试写出利用信号量机制实现两任务共享单缓冲区的同步算法。
34.当前有哪几种高级通信机制
共享存储器系统、消息传递系统以及管道通信系统。
36.为什么要在OS中引入线程
在操作系统中引入线程,则是为了减少程序在并发执行时所付出的时空开销,使OS具有更好的并发性,提高CPU的利用率。
进程是分配资源的基本单位,而线程则是系统调度的基本单位。
38.试从调度性、并发性、拥有资源及系统开销方面对进程和线程进行比较。
(1)调度性。
线程在OS中作为调度和分派的基本单位,进程只作为资源拥有的基本单位。
(2)并发性。
进程可以并发执行,一个进程的多个线程也可并发执行。
(3)拥有资源。
进程始终是拥有资源的基本单位,线程只拥有运行时必不可少的资源,本身基本不拥有系统资源,但可以访问隶属进程的资源。
(4)系统开销。
操作系统在创建、撤消和切换进程时付出的开销显着大于线程。
41.何谓用户级线程和内核支持线程
(1)用户级线程。
仅存在于用户空间中的线程,无须内核支持。
这种线程的创建、撤销、线程间的同步与通信等功能,都无需利用系统调用实现。
用户级线程的切换通常发生在一个应用进程的诸多线程之间,同样无需内核支持。
(2)内核支持线程。
在内核支持下运行的线程,无论是用户进程中的线程,还是系统线程中的线程,其创建、撤销和切换等都是依靠内核,在内核空间中实现的。
在内核空间里还为每个内核支持线程设置了线程控制块,内核根据该控制块感知某线程的存在并实施控制。
第三章
1高级调度与低级调度的主要任务是什么为什么要引入中级调度
高级调度的主要任务是根据某种算法把外存上处于后备队列中的那些作业调入内存。
低级调度是保存处理机的现场信息按某种算法先取进程再把处理器分配给进程。
引入中级调度的主要目的是为了提高内存利用率和系统吞吐量。
使那些暂时不能运行的进程不再占用内存资源将它们调至外存等待把进程状态改为就绪驻外存状态或挂起状态。
5试说明低级调度的主要功能。
(1)保存处理机的现场信息
(2)按某种算法选取进程(3)把处理机分配给进程。
6在抢占调度方式中抢占的原则是什么
抢占的原则有时间片原则、优先权原则、短作业优先权原则等。
7在选择调度方式和调度算法时应遵循的准则是什么
(1)面向用户的准则周转时间短、响应时间快、截止时间的保证、优先权准则
(2)面向系统的准则系统吞吐量高、处理机利用率好、各类资源的平衡利用。
18何谓死锁产生死锁的原因和必要条件是什么
死锁是指多个进程在运行过程中因争夺资源而造成的一种僵局当进程处于这种僵持状态时若无外力作用它们都将无法再向前推进。
产生死锁的原因为竞争资源和进程间推进顺序非法。
其必要条件是互斥条件、请求和保持条件、不剥夺条件、环路等待条件。
19在解决死锁问题的几个方法中哪种方法最易于实现哪种方法使资源利用率最高
解决死锁的四种方法即预防、避免、检测和解除死锁中预防死锁最容易实现避免死锁使资源的利用率最高。
20请详细说明可通过哪些途径预防死锁。
(1)摈弃“请求和保持”条件就是如果系统有足够资源便一次性把进程需要的所有资源分配给它
(2)摈弃“不剥夺”条件就是已经拥有资源的进程当它提出新资源请求而不能立即满足时必须释放它已保持的所有资源待以后需要时再重新申请(3)摈弃“环路等待”条件就是将所有资源按类型排序标号所有进程对资源的请求必须严格按序号递增的次序提出。
21在银行家算法的例子中如果P0发出请求向量由Request(0,2,0)改为Request(0,1,0)问系统可否将资源分配给它(此答案有点问题需重新考虑)
(1)可以。
银行家算法各种资源数量分别为10、5、7在T0时刻的资源分配如图所示
(2)具体分析如下
①Requst0(0,1,0)<=Need0(7,4,3);
②Requst0(0,1,0)<=Available(2,3,0);
系统先假定可为P0分配资源并修改Available0Allocation0和Need0向量由此形成的资源变化情况如下图所示
(3)P0请求资源P0发出请求向量Requst0(0,1,0),系统按银行家算法进行检查
①Requst0(0,1,0)<=Need0(7,4,3);
②Requst0(0,1,0)<=Available(2,3,0);
③系统暂时先假定可为P0分配资源并修改______________有关数据如下图
所示
综上所述系统可以将资源分配给它。
22银行家算法中出现以下资源分配试问
(1)该状态是否安全?
(2)若进程P2提出Request(1,2,2,2)后系统能否将资源分配给它
(1)安全因为存在安全序列{P0,P3,P4,P1,P2}
(2)系统能分配资源分析如下。
①Request(1,2,2,2)<=Need2(2,3,5,6);
②Request(1,2,2,2)<=Available2(1,3,5,4)改成Available2(1,6,2,2)
③系统先假定可为P2分配资源并修改Available2Allocation2和Need2
向量
由此形成的资源变化情况如下图所示
④再利用安全性算法检查此时系统是否安全。
如下图
由此进行的安全性检查得知可以找到一个安全序列{P2,P0,P1,P3,P4}。
第四章
2可采用哪几种方式将程序装入内存它们分别适用于何种场合
1绝对装入方式只适用于单道程序环境。
2可重定位装入方式适用于多道程序环境。
3动态运行时装入方式用于多道程序环境,不允许程序运行时在内存中移位置。
5在动态分区分配方式中应如何将各空闲分区链接成空闲分区链
在每个分区的起始部分设置一些控制分区分配的信息以及用于链接各分
区所用的前向指针在分区尾部设置一个后向指针通过前后向链接指针将所有空闲分区链成一个双向链。
当分区分配出去后把状态位由“0”改为“1”。
7在采用首次适应算法回收内存时,可能出现哪几种情况?
应怎样处理这些情况?
在采用首次适应算法回收内存时可能出现4种情况
(1)回收区前邻空闲区。
将回收区与前邻空闲区合并将前邻空闲区大小修改为两者之和。
(2)回收区后邻空闲区。
将两区合并改后邻空闲区始址为回收区始址大小为两者之和。
(3)回收区前后均邻空闲区。
将三个分区合并修改前邻空闲区大小为三者之和。
(4)回收区前后均不邻空闲区。
为回收区设置空闲区表项填入回收区始址和大小并插入空闲区队列。
17分段和分页存储管理有何区别
(1)页是信息的物理单位分页是为了实现离散分配方式以消减内存的外部零头提高内存利用率。
段则是信息的逻辑单位它含有一组相对完整的信息。
(2)页的大小固定且由系统决定由系统把逻辑地址划分为页号和页内地址两部分是由机械硬件实现的,因而在系统中只能有一种大小的的页面;而段的长度却不固定,决定于用户所编写的程序,通常由编译程序在对原程序进行编译时,根据信息的性质来划分。
(3)分页的作业地址空间是一维的,而分段作业地址空间则是二维的。
19虚拟存储器有哪些特征其中最本质的特征是什么
答虚拟存储器有多次性、对换性、虚拟性三大特征。
最本质的特征是虚拟性。
22在请求分页系统中页表应包括哪些数据项每项的作用是什么
页表应包括页号、物理块号、状态位P、访问字段A、修改位M和外存地
址。
其中状态位P指示该页是否调入内存供程序访问时参考访问字段A用
于记录本页在一段时间内被访问的次数或最近已有多长时间未被访问提供给置换算法选择换出页面时参考修改位M表示该页在调入内存后是否被修改过外存地址用于指出该页在外存上的地址通常是物理块号,供调入该页时使用。
26在一个请求分页系统中采用LRU页面置换算法时假如一个作业的页面走向为4,3,2,1,4,3,5,4,3,2,1,5当分配给该作业的物理块数M分别为3和4时试计算访问过程中所发生的缺页次数和缺页率?
比较所得结果?
当分配给该作业的物理块数M为3时缺页9次缺页率:
9/12=3/4
当分配给该作业的物理块数M为4时缺页10次缺页率:
10/12=5/6
第五章
3什么是字节多路通道什么是数组选择通道和数组多路通道
(1)字节多路通道。
按字节交叉方式工作的通道。
通常含有许多非分配型子通道数量从几十到数百个每个子通道连接一台I/O设备控制其I/O操作。
子通道按时间片轮转方式共享主通道。
(2)数组选择通道。
按数组方式传送数据传输速率很高每次只允许一个设备数据。
(3)数组多路通道。
将数组选择通道传输速率高和字节多路通道的各子通道分时并行操作的优点结合而成。
含有多个非分配型子通道具有很高的数据传输率和通道利用率。
4如何解决因通道不足而产生的瓶颈问题
答解决问题的有效方法是增加设备到主机间的通路而不增加通道把一个设备连到多个控制器上控制器又连到多个通道上这种多通路方式解决了“瓶颈”问题提高了系统可靠性个别通道或控制器的故障不会使设备和存储器之间没有通路。
7有哪几种I/O控制方式各适用于何种场合
共有四种I/O控制方式。
(1)程序I/O方式早期计算机无中断机构处理机对I/O设备的控制采用程序I/O方式或称忙等的方式。
(2)中断驱动I/O控制方式适用于有中断机构的计算机系统中。
(3)直接存储器访问DMAI/O控制方式适用于具有DMA控制器的计算机系统中。
(4)I/O通道控制方式具有通道程序的计算机系统中。
9引入缓冲的主要原因是什么
引入缓冲的主要原因是
(1)缓和CPU与I/O设备间速度不匹配的矛盾
(2)减少对CPU的中断频率放宽对中断响应时间的限制(3)提高CPU与I/O设备之间的并行性
15为何要引入设备独立性如何实现设备独立性
现代操作系统为了提高系统的可适应性和可扩展性都实现了设备独立性或设备无关性。
基本含义是应用程序独立于具体使用的物理设备应用程序以逻辑设备名请求使用某类设备。
实现了设备独立性功能可带来两方面的好处
(1)设备分配时的灵活性
(2)易于实现I/O重定向。
为了实现设备的独立性应引
入逻辑设备和物理设备概念。
在应用程序中使用逻辑设备名请求使用某类设备
系统执行时是使用物理设备名。
鉴于驱动程序是与硬件或设备紧密相关的软件
必须在驱动程序之上设置一层设备独立性软件执行所有设备的公有操作、完成
逻辑设备名到物理设备名的转换为此应设置一张逻辑设备表并向用户层或文件层软件提供统一接口从而实现设备的独立性。
17何谓设备虚拟实现设备虚拟时所依赖的关键技术是什么
设备虚拟是指把独占设备经过某种技术处理改造成虚拟设备。
可虚拟设备是指一台物理设备在采用虚拟技术后可变成多台逻辑上的虚拟设备则可虚拟设备是可共享的设备将它同时分配给多个进程使用并对这些访问该物理设备的先后次序进行控制。
18试说明SPOOLing系统的组成。
答SPOOLing系统由输入井和输出井、输入缓冲区和输出缓冲区、输入进程SPi和输出进程SPo三部分组成。
19在实现后台打印时SPOOLing系统应为请求I/O的进程提供哪些服务
在实现后台打印时SPOOLing系统应为请求I/O的进程提供以下服务
(1)由输出进程在输出井中申请一空闲盘块区并将要打印的数据送入其中
(2)输出进程为用户进程申请空白用户打印表填入打印要求将该表挂到请
求打印队列。
(3)一旦打印机空闲输出进程便从请求打印队列的队首取出一张