OS课后题整理版Word下载.docx
- 文档编号:19490268
- 上传时间:2023-01-06
- 格式:DOCX
- 页数:15
- 大小:177KB
OS课后题整理版Word下载.docx
《OS课后题整理版Word下载.docx》由会员分享,可在线阅读,更多相关《OS课后题整理版Word下载.docx(15页珍藏版)》请在冰豆网上搜索。
用于实现请求调用功能,置换功能等。
18.是什么原因使操作系统具有异步性特征?
操作系统的异步性体现在三个方面:
一是进程的异步性,进程以人们不可预知的速度向
前推进,二是程序的不可再现性,即程序执行的结果有时是不确定的,三是程序执行时间的
不可预知性,即每个程序何时执行,执行顺序以及完成时间是不确定的。
24.微内核操作系统具有哪些优点?
它为何能有这些优点?
1)提高了系统的可扩展性2)增强了系统的可靠性3)可移植性4)提供了对分布式系统的支持5)融入了面向对象技术
第二章
2.画出下面四条语句的前趋图:
S1=a:
=x+y;
S2=b:
=z+1;
S3=c:
=a–b;
S4=w:
=c+1;
答:
其前趋图为:
4.程序并发执行时为什么会失去封闭性和可再现性?
程序并发执行时,多个程序共享系统中的各种资源,因而这些资源的状态由多个程序改变,致使程序运行失去了封闭性,也会导致其失去可再现性。
6.试从动态性,并发性和独立性上比较进程和程序.
(1)动态性是进程最基本的特性,表现为由创建而产生,由调度而执行,因得不到资源而暂停执行,由撤销而消亡。
进程有一定的生命期,而程序只是一组有序的指令集合,是静态实体。
(2)并发性是进程的重要特征,同时也是OS的重要特征。
引入进程的目的正是为了使其程序能和其它进程的程序并发执行,而程序是不能并发执行的。
(3)独立性是指进程实体是一个能独立运行的基本单位,也是系统中独立获得资源和独立调度的基本单位。
对于未建立任何进程的程序,不能作为独立单位参加运行。
7.试说明PCB的作用,为什么说PCB是进程存在的惟一标志?
PCB是进程实体的一部分,是操作系统中最重要的记录型数据结构。
作用是使一个在多道程序环境下不能独立运行的程序,成为一个能独立运行的基本单位,成为能与其它进程并发执行的进程。
OS是根据PCB对并发执行的进程进行控制和管理的。
10.在进行进程切换时,所要保存的处理机状态信息有哪些?
进程当前暂存信息;
下一指令地址信息;
进程状态信息;
过程和系统调用参数及调用地址信息。
17.为什么进程在进入临界区之前应先执行“进入区”代码?
而在退出前又要执行“退出
区”代码?
为了实现多个进程对临界资源的互斥访问,必须在临界区前面增加一段用于检查欲访问的临界资源是否正被访问的代码,如果未被访问,该进程便可进入临界区对资源进行访问,并设置正被访问标志,如果正被访问,则本进程不能进入临界区,实现这一功能的代码为"
进入区"
代码;
在退出临界区后,必须执行"
退出区"
代码,用于恢复未被访问标志,使其它进程能再访问此临界资源。
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
链表中的第一个等待进程唤醒。
21.如何利用信号量机制来实现多个进程对临界资源的互斥访问?
并举例说明之。
为使多个进程互斥访问某临界资源,只需为该资源设置一互斥信号量mutex,并设其
初值为1,然后将各进程访问该资源的临界区CS置于wait(mutex)和signal(mutex)操作
之间即可。
这样,每个欲访问该临界资源的进程在进入临界区之前,都要先对mutex执行
wait操作,若该资源此刻未被访问,本次wait操作必然成功,进程便可进入自己的临界区,这时若再有其他进程也欲进入自己的临界区,此时由于对mutex执行wait操作定会失败,因而该进程阻塞,从而保证了该临界资源能被互斥访问。
当访问临界资源的进程退出临界区后,应对mutex执行signal操作,释放该临界资源。
利用信号量实现进程互斥的进程描述如下:
Varmutex:
semaphore:
=1;
begin
parbegin
process1:
begin
repeat
wait(mutex);
criticalsection
signal(mutex);
remainderseetion
untilfalse;
end
process2:
remaindersection
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):
whileW=1dono-op
W:
=1;
unlock(W):
W:
=0;
记录型信号量:
=W+1;
if(W>
1)thenblock(W,L)
=W-1;
0)thenwakeup(W,L)
例子:
VarW:
semaphore:
=0;
lock(W);
unlock(W);
untilfalse;
26.试修改下面生产者-消费者问题解法中的错误:
producer:
…
produceraniteminnextp;
wait(mutex);
wait(full);
/*应为wait(empty),而且还应该在wait(mutex)的前面*/
buffer(in):
=nextp;
/*缓冲池数组游标应前移:
in:
=(in+1)modn;
*/
signal(mutex);
/*signal(full);
consumer:
wait(empty);
/*应为wait(full),而且还应该在wait(mutex)的前面*/
nextc:
=buffer(out);
out:
=out+1;
/*考虑循环,应改为:
out:
=(out+1)modn;
/*signal(empty);
consumeriteminnextc;
28.在测量控制系统中的数据采集任务,把所采集的数据送一单缓冲区;
计算任务从该单
缓冲中取出数据进行计算.试写出利用信号量机制实现两者共享单缓冲的同步算法。
a.Varmutex,empty,full:
=1,1,0;
gather:
……
gatherdatainnextp;
buffer:
signal(full);
compute:
=buffer;
signal(empty);
computedatainnextc;
b.Varempty,full:
=1,0;
33.试比较进程间的低级与高级通信工具。
用户用低级通信工具实现进程通信很不方便,效率低,通信对用户不透明,所有操作都必须由程序员来实现,而高级通信工具弥补了这些缺陷,用户直接利用操作系统提供的一组通信命令,高效地传送大量的数据。
36.为什么要在OS中引入线程?
在操作系统中引入线程,则是为了减少程序在并发执行时所付出的时空开销,使OS具有更好的并发性,提高CPU的利用率。
进程是分配资源的基本单位,而线程则是系统调度的基本单位。
38.试从调度性,并发性,拥有资源及系统开销方面对进程和线程进行比较。
(1)调度性。
线程在OS中作为调度和分派的基本单位,进程只作为资源拥有的基本单位。
(2)并发性。
进程可以并发执行,一个进程的多个线程也可并发执行。
(3)拥有资源。
进程始终是拥有资源的基本单位,线程只拥有运行时必不可少的资源,本
身基本不拥有系统资源,但可以访问隶属进程的资源。
(4)系统开销。
操作系统在创建、撤消和切换进程时付出的开销显著大于线程。
41.何谓用户级线程和内核支持线程?
(1)用户级线程:
仅存在于用户空间中的线程,无须内核支持。
这种线程的创建、撤销、线程间的同步与通信等功能,都无需利用系统调用实现。
用户级线程的切换通常发生在一个应用进程的诸多线程之间,同样无需内核支持。
(2)内核支持线程:
在内核支持下运行的线程。
无论是用户进程中的线程,还是系统线程中的线程,其创建、撤销和切换等都是依靠内核,在内核空间中实现的。
在内核空间里还为每个内核支持线程设置了线程控制块,内核根据该控制块感知某线程的存在并实施控制。
第三章处理机调度与死锁
1.高级调度与低级调度的主要任务是什么?
为什么要引入中级调度?
高级调度的主要任务是根据某种算法,把外存上处于后备队列中的那些作业调入内存。
低级调度是保存处理机的现场信息,按某种算法先取进程,再把处理器分配给进程。
引入中级调度的主要目的是为了提高内存利用率和系统吞吐量。
使那些暂时不能运行的进程不再占用内存资源,将它们调至外存等待,把进程状态改为就绪驻外存状态或挂起状态。
7.在选择调度方式和调度算法时,应遵循的准则是什么?
(1)面向用户的准则:
周转时间短、响应时间快、截止时间的保证、优先权准则。
(2)面向系统的准则:
系统吞吐量高、处理机利用率好、各类资源的平衡利用。
8.在批处理系统、分时系统和实时系统中,各采用哪几种进程(作业)调度算法?
批处理系统的调度算法:
短作业优先、优先权、高响应比优先、多级反馈队列调度算法。
分时系统的调度算法:
时间片轮转法。
实时系统的调度算法:
最早截止时间优先即EDF、最低松弛度优先即LLF算法。
10.试比较FCFS和SPF两种进程调度算法。
相同点:
两种调度算法都可以用于作业调度和进程调度。
不同点:
FCFS调度算法每次都从后备队列中选择一个或多个最先进入该队列的作业,将它们调入内存、分配资源、创建进程、插入到就绪队列。
该算法有利于长作业/进程,不利于短作业/进程。
SPF算法每次调度都从后备队列中选择一个或若干个估计运行时间最短的作业,调入内存中运行。
该算法有利于短作业/进程,不利于长作业/进程。
13.为什么说多级反馈队列调度算法能较好地满足各方面用户的需求?
(1)终端型作业用户提交的作业大多属于较小的交互型作业,系统只要使这些作业在第一队列规定的时间片内完成,终端作业用户就会感到满足。
(2)短批处理作业用户,开始时像终端型作业一样,如果在第一队列中执行一个时间片段即可完成,便可获得与终端作业一样的响应时间。
对于稍长作业,通常只需在第二和第三队列各执行一时间片即可完成,其周转时间仍然较短。
(3)长批处理作业,它将依次在第1,2,…,n个队列中运行,然后再按轮转方式运行,用户不必担心其作业长期得不到处理。
所以,多级反馈队列调度算法能满足多用户需求。
22.银行家算法中出现以下资源分配,试问
(1)该状态是否安全?
(2)若进程P2提出
Request(1,2,2,2)后,系统能否将资源分配给它?
试问:
(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);
③系统先假定可为P2分配资源,并修改Available2,Allocation2和Need2向量,
由此形成的资源变化情况如下图所示:
④再利用安全性算法检查此时系统是否安全。
如下图
由此进行的安全性检查得知,可以找到一个安全序列{P2,P0,P1,P3,P4}。
第四章
1.为什么要配置层次式存储器?
设置多个存储器可以使存储器两端的硬件能并行工作;
采用多级存储系统,特别是Cache技术,是减轻存储器带宽对系统性能影响的最佳结构方案;
在微处理机内部设置各种缓冲存储器,减轻对存储器存取的压力。
增加CPU中寄存器数量大大缓解对存储器压力。
2.可采用哪几种方式将程序装入内存?
它们分别适用于何种场合?
(1)绝对装入方式,只适用于单道程序环境。
(2)可重定位装入方式,适用于多道程序环境。
(3)动态运行时装入方式,用于多道程序环境;
不允许程序运行时在内存中移位置。
5.在动态分区分配方式中,应如何将各空闲分区链接成空闲分区链?
在每个分区的起始部分,设置一些控制分区分配的信息,以及用于链接各分区所用的前向指针;
在分区尾部设置一个后向指针,通过前后向链接指针,将所有空闲分区链成一个双向链。
当分区分配出去后,把状态位由“0”改为“1”。
6.为什么要引入动态重定位?
如何实现?
在程序执行过程中,每当访问指令或数据时,将要访问的程序或数据的逻辑地址转换成物理地址,引入了动态重定位;
具体实现方法是在系统中增加一个重定位寄存器,用来装入程序在内存中的起始地址,程序执行时,真正访问的内存地址是相对地址与重定位寄存器中的地址相加之和,从而实现动态重定位。
8.令
表示大小为
、地址为x的块的伙伴系统地址,试写出
的通用表达式。
答:
当
时,
;
时,
10.在系统中引入对换后可带来哪些好处?
交换技术将暂不需要的作业移到外存,让出内存空间以调入其它作业,交换到外存的作业也可以被再次调入。
目的是解决内存紧张问题,带来的好处是进一步提高了内存利用率和系统吞吐量。
12.在以进程为单位进行对换时,每次是否都将整个进程换出?
为什么?
不是。
系统首先选择处于阻塞状态且优先级最低的进程作为换出进程,然后启动磁盘,将该进程的程序和数据传送到磁盘的兑换区。
若传送过程未出错,便可回收该进程占用的内存空间,并对该进程的进程控制块做相应修改,所以并不需要将整个进程换出。
14.较详细的说明引入分段存储管理是为了满足用户哪几方面的需要。
1)方便编程。
用户通常把自己的作业按照逻辑关系划分为若干段,每段都从0编址,并有自己名字和长度。
因此,希望要访问的逻辑地址是由段名和段内偏移量决定。
2)信息共享。
在实现对程序和数据的共享时,是以信息逻辑单位为基础。
分页系统中的页是存放信息的物理单位,无完整意义,不便于共享;
段是信息的逻辑单位。
为了实现段的共享,希望存储管理能与用户程序分段的组织方式相适应。
3)信息保护。
对信息的逻辑单位进行保护,分段能更有效方便地实现信息保护功能。
4)动态增长。
在实际应用中,有些段特别是数据段,在使用过程中会不断增长,事先又无法确切知道增长多少。
分段存储管理方式能较好解决这个问题。
5)动态链接。
运行时先将主程序对应的目标程序装入内存并启动运行,运行过程中又需要
调用某段时,才将该段调入内存链接。
所以动态链接也要求以段作为管理单位。
15.在具有快表的段页式存储管理方式中,如何实现地址变换?
在CPU给出有效地址后,由地址变换机构自动将页号P送入高速缓冲寄存器,并将此页号与高速缓存中的所有页号比较,若找到匹配页号,表示要访问的页表项在快表中。
可直接从快表读出该页对应物理块号,送到物理地址寄存器中。
如快表中没有对应页表项,则再访问内存页表,找到后,把从页表项中读出物理块号送地址寄存器;
同时修改快表,将此页表项存入快表。
但若寄存器已满,则OS必须找到合适的页表项换出。
第五章
2.为了实现CPU与设备控制器间的通信,设备控制器应具备哪些功能?
接收和识别命令;
数据交换;
标识和报告设备状态;
地址识别;
数据缓冲;
差错控制。
4.如何解决因通道不足而产生的瓶颈问题?
解决问题的有效方法是增加设备到主机间的通路而不增加通道,把一个设备连到多个控制器上,控制器又连到多个通道上,这种多通路方式解决了“瓶颈”问题,提高了系统可靠性,个别通道或控制器的故障不会使设备和存储器之间没有通路。
6.试说明推动I/O控制发展的主要因素是什么?
推动I/O控制发展的主要动力在于尽量减少主机对I/O控制的干预,把主机从繁杂的I/O控制事务中解脱出来,用更多的时间和精力去完成其数据处理任务。
同时,中断机制在计算机系统中的引入、DMA控制器的出现和通道研制的成功使I/O控制的发展具备了技术支持和成为可能。
8.试说明DMA的工作流程。
以从磁盘读入数据为例,说明DMA的工作流程。
当CPU要从磁盘读入数据块时,先向磁盘控制器发送一条读命令。
该命令被送到命令寄存器CR中。
同时还发送本次要读入数据的内存起始目标地址,送入内存地址寄存器MAR;
本次要读数据的字节数送入数据计数器DC,将磁盘中的源地址直接送DMA控制器的I/O控制逻辑上。
然后启动DMA控制器传送数据,以后CPU便处理其它任务。
整个数据传送过程由DMA控制器控制。
下图为DMA方式的工作流程图。
10.在单缓冲情况下,为什么系统对一块数据的处理时间为max(C,T)+M?
在块设备输入时,先从磁盘把一块数据输入到缓冲区,耗时为T;
然后由操作系统将缓冲区数据送给用户区,耗时M;
接下来由CPU对块数据进行计算,耗时C。
在单缓冲情况下,磁盘把数据输入到缓冲区的操作和CPU对数据的计算过程可以并行展开,所以系统对每一整块数据的处理时间为max(C,T)+M。
12.试绘图说明把多缓冲用于输出时的情况。
14.何谓安全分配方式和不安全分配方式?
①安全分配方式是指每当进程发出I/O请求后,便进入阻塞状态,直到其I/O操作完成时才被唤醒。
在采用这种分配策略时,一旦进程已获得某种设备资源后便阻塞,使它不可能再请求任何资源,而在它运行时又不保持任何资源。
这种分配方式已经摒弃了造成死锁的“请求和保持”条件,分配是安全的。
缺点是进程进展缓慢,CPU与I/O设备串行工作。
②不安全分配方式是指进程发出I/O请求后仍继续执行,需要时又可发出第二个I/O请求、第三个I/O请求。
仅当进程请求的设备已被另一个进程占有时,进程才进入阻塞状态。
优点是一个进程可同时操作多个设备,进程推进迅速。
缺点是分配不安全,可能具有“请求和保持”条件,可能造成死锁。
因此,在设备分配程序中需增加一个功能,用于对本次的设备分配是否会发生死锁进行安全性计算,仅当计算结果表明分配安全的情况下才进行分配。
18.试说明SPOOLing系统的组成。
SPOOLing系统由输入井和输出井、输入缓冲区和输出缓冲区、输入进程SPi和输出进程SPo三部分组成。
21.试说明设备驱动程序应具有哪些功能:
(1)将接收到的抽象要求转为具体要求;
(2)检查用户I/O请求合法性,了解I/O设备状态,传递有关参数,设置设备工作方式;
(3)发出I/O命令,启动分配到的I/O设备,完成指定I/O操作;
(4)及时响应由控制器或通道发来的中断请求,根据中断类型调用相应中断处理程序处理;
(5)对于有通道的计算机,驱动程序还应该根据用户I/O请求自动
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- OS 课后 整理