OS200题参考解答.docx
- 文档编号:30170914
- 上传时间:2023-08-05
- 格式:DOCX
- 页数:67
- 大小:63.18KB
OS200题参考解答.docx
《OS200题参考解答.docx》由会员分享,可在线阅读,更多相关《OS200题参考解答.docx(67页珍藏版)》请在冰豆网上搜索。
OS200题参考解答
操作系统200题参考解答
第一章操作系统引论
1.设计现代OS的主要目标是什么?
答:
方便性,有效性,可扩充性和开放性。
2.OS的作用可表现为哪几个方面?
答:
a.OS作为用户与计算机硬件系统之间的接口;
b.OS作为计算机系统资源的管理者;
c.OS作为扩充机器。
3.试说明推动多道批处理系统形成和发展的主要动力是什么?
答:
不断提高计算机资源利用率和系统吞吐量的需要;
4.何谓脱机I/O和联机I/O?
答:
a.脱机输入输出方式(Off-LineI/O)是为了解决人机矛盾及CPU和I/O设备之间速度不匹配而提出的。
它减少了CPU的空闲等待时间,提高了I/O速度.具体内容是将用户程序和数据在一台外围机的控制下,预先从低速输入设备输入到磁带上,当CPU需要这些程序和数据时,在直接从磁带机高速输入到内存,从而大大加快了程序的输入过程,减少了CPU等待输入的时间,这就是脱机输入技术;当程序运行完毕或告一段落,CPU需要输出时,无需直接把计算结果送至低速输出设备,而是高速把结果输出到磁带上,然后在外围机的控制下,把磁带上的计算结果由相应的输出设备输出,这就是脱机输出技术。
b.若这种输入输出操作在主机控制下进行则称之为联机输入输出方式。
5.试说明推动分时系统形成和发展的主要动力是什么?
答:
用户的需要.即对用户来说,更好的满足了人-机交互,共享主机以及便于用户上机的需求。
6.试说明实时任务的类型和实时系统的类型。
答:
a.实时任务的类型按任务执行时是否呈现周期性来划分,分为周期性实时任务和非周期性实时任务;根据对截止时间的要求来划分,分为硬实时任务和软实时任务;
b.通常把要求进行实时控制的系统统称为实时控制系统,把要求对信息进行实时处理的系统成为实时信息处理系统。
7.实现多道程序应解决哪些问题?
答:
a.处理机管理问题;
b.内存管理问题;
c.I/O设备管理问题;
d.文件管理问题;
e.作业管理问题.
8.试比较单道与多道批处理系统的特点及优缺点。
答:
a.单道批处理系统是最早出现的一种OS,它具有自动性,顺序性和单道性的特点;多道批处理系统则具有调度性,无序性和多道性的特点;
b.单道批处理系统是在解决人机矛盾及CPU和I/O设备之间速度不匹配的矛盾中形成的,旨在提高系统资源利用率和系统吞吐量,但是仍然不能很好的利用系统资源;多道批处理系统是对单道批处理系统的改进,其主要优点是资源利用率高,系统吞吐量大;缺点是平均周转时间长,无交互能力。
9.实现分时系统的关键问题是什么?
应如何解决?
答:
a.关键问题:
及时接收,及时处理;
b.对于及时接收,只需在系统中设置一多路卡,多路卡作用是使主机能同时接收用户从各个终端上输入的数据;对于及时处理,应使所有的用户作业都直接进入内存,在不长的时间内,能使每个作业都运行一次。
10.为什么要引入实时操作系统?
答:
更好地满足实时控制领域和实时信息处理领域的需要。
11.OS具有哪几大特征?
它的最基本特征是什么?
答:
a.并发(Concurrence),共享(Sharing),虚拟(Virtual),异步性(Asynchronism).
b.其中最基本特征是并发和共享.
12内存管理有哪些主要功能?
它们的主要任务是什么?
答:
a.主要功能:
内存分配,内存保护,地址映射和内存扩充等.
b.内存分配的主要任务是为每道程序分配内存空间,提高存储器利用率,以减少不可用的内存空间,允许正在运行的程序申请附加的内存空间,以适应程序和数据动态增长的需要。
内存保护的主要任务是确保每道用户程序都在自己的内存空间中运行,互不干扰。
地址映射的主要任务是将地址空间中的逻辑地址转换为内存空间中与之对应的物理地址。
内存扩充的主要任务是借助虚拟存储技术,从逻辑上去扩充内存容量。
13处理机管理具有哪些功能?
它们的主要任务是什么?
答:
a.进程控制,进程同步,进程通信和调度。
b.进程控制的主要任务是为作业创建进程,撤销已结束的进程,以及控制进程在运行过程中的状态转换。
进程同步的主要任务是对诸进程的运行进行调节。
进程通信的任务是实现在相互合作进程之间的信息交换。
调度分为作业调度和进程调度.作业调度的基本任务是从后备队列中按照一定的算法,选择出若干个作业,为它们分配必要的资源;而进程调度的任务是从进程的就绪队列中,按照一定的算法选出一新进程,把处理机分配给它,并为它设置运行现场,是进程投入运行。
14设备管理有哪些主要功能?
其主要任务是什么?
答:
a.主要功能:
缓冲管理,设备分配和设备处理,以及虚拟设备等。
b.主要任务:
完成用户提出的I/O请求,为用户分配I/O设备;提高CPU和I/O设备的利用率;提高I/O速度;以及方便用户使用I/O设备。
15文件管理有哪些主要功能?
其主要任务是什么?
答:
a.主要功能:
对文件存储空间的管理,目录管理,文件的读,写管理以及文件的共享和保护;
b.主要任务:
对用户文件和系统文件进行管理,以方便用户使用,并保证文件的安全性。
16试在交互性,及时性和可靠性方面,将分时系统与实时系统进行比较。
答:
a.分时系统是一种通用系统,主要用于运行终端用户程序,因而它具有较强的交互能力;而实时系统虽然也有交互能力,但其交互能力不及前者。
b.实时信息系统对实用性的要求与分时系统类似,都是以人所能接收的等待时间来确定;而实时控制系统的及时性则是以控制对象所要求的开始截止时间和完成截止时间来确定的。
c.实时系统对系统的可靠性要求要比分时系统对系统的可靠性要求高。
17是什么原因使操作系统具有异步性特征?
答:
a.程序执行结果是不确定的,即程序是不可再现的。
b.每个程序在何时执行,多个程序间的执行顺序以及完成每道程序所需的时间都是不确定的,即不可预知性。
18多处理机OS有哪几种模式?
各有何优缺点?
答:
a.2种模式:
非对称多处理模式(AsymmetricMultiprocessingModel)和对称多处理模式(SymmetricMultiprocesingModel)。
b.前者易于实现,但资源利用率低。
后者优点是允许多个进程同时运行,缺点是必须小心控制I/O,以保证能将数据送至适当的处理器,同时还必须注意使各CPU的负载平衡。
19试说明网络OS的主要功能。
答:
a.网络通信;
b.资源管理;
c.网络服务;
d.网络管理;
e.互操作能力.
20试比较网络OS和分布式OS。
答:
a.网络OS是基于由一些互联的自主计算机系统组成的计算机网络,以计算机技术和通信技术高度发展为基础,能实现相互通信和相互合作功能的系统.分布式OS是指多个分散的处理单元,经互联网络连接而形成的系统。
b.在分布性上,两者都具有分布处理功能,但网络OS的控制功能大多集中在某个(些)主机或网络服务器中,即集中式,而分布式OS则是较均匀地分布在系统的各个站点上,是完全分布式的。
在并行性上,分布式OS的任务分配程序可将多个任务分配到多个处理单元上而实现并行,网络OS中通常无任务分配功能,每个用户的任务通常在自己(本地)的计算机上处理。
在透明性上,两者都具透明性,但网络OS指在操作实现上的透明性,而分布式OS则在系统内部的细节上实现了很好的隐藏,即具有物理上的透明性。
在共享性上,分布式OS是比较完全的实现共享,而网络OS共享的资源大多是在主机或网络服务器中。
在健壮性上,分布式系统由于处理和控制功能是分布的,还拥有容错技术实现系统重构,因而具有很强的健壮性;而网络OS的控制功能大多集中在主机或服务器中,是系统具有潜在的不可靠性,健壮性差。
第二章进程管理
1.试画出下面条语句的前趋图:
S1:
a=5-x;S2:
b=a*x;S3:
c=4*x;S4:
d=b+c;S5:
e=d+3.
S1->S2->S4->S5
......../
......S3
2.试利用Bernstein条件证明上题中的S2和S3语句是可以并发执行的,而S3和S4语句是不能并发执行的?
证明:
R(S2)={x,a},W(S2)={b},R(S3)={x},W(S3)={c};
可见,S2与S3的读集与写集两两不相交,S2与S3的读集之间也不相交,因而,他们满足Bernstein条件,S2与S3语句是可以并发执行的。
同理可证S3和S4不能满足Bernstein条件,是不能并发执行的。
3.程序并发执行为什么会产生间断性?
答:
因为程序在并发执行过程中存在相互制约性。
4.程序并发执行为何会失去封闭性和可再现性?
答:
因为程序并发执行时,多个程序共享系统中的各种资源,资源状态需要多个程序来改变,即存在资源共享性使程序失去封闭性;而失去了封闭性导致程序失去可再现性。
5.在操作系统中为什么要引入进程概念?
它会产生什么样的影响?
答:
为了使程序在多道程序环境下能并发执行,并能对并发执行的程序加以控制和描述,而引入了进程概念。
影响:
使程序的并发执行得以实行。
6.试从动态性,并发性和独立性上比较进程和程序?
答:
a.动态性是进程最基本的特性,可表现为由创建而产生,由调度而执行,因得不到资源而暂停执行,以及由撤销而消亡,因而进程有一定的生命期;而程序只是一组有序指令的集合,是静态实体。
b.并发性是进程的重要特征,同时也是OS的重要特征.引入进程的目的正是为了使其程序能和其它进程的程序并发执行,而程序是不能并发执行的。
c.独立性是指进程实体是一个能独立运行的基本单位,同时也是系统中独立获得资源和独立调度的基本单位.而对于未建立任何进程的程序,都不能作为一个独立的单位参加运行。
7.试说明PCB的作用?
为什么说PCB是进程存在的唯一标志?
答:
a.PCB是进程实体的一部分,是操作系统中最重要的记录型数据结构.PCB中记录了操作系统所需的用于描述进程情况及控制进程运行所需的全部信息.因而它的作用是使一个在多道程序环境下不能独立运行的程序(含数据),成为一个能独立运行的基本单位,一个能和其它进程并发执行的进程。
b.在进程的整个生命周期中,系统总是通过其PCB对进程进行控制,系统是根据进程的PCB而不是任何别的什么而感知到该进程的存在的,所以说,PCB是进程存在的唯一标志。
8.试说明进程在三个基本状态之间转换的典型原因。
答:
a.处于就绪状态的进程,当进程调度程序为之分配了处理机后,该进程便由就绪状态变为执行状态。
b.当前进程因发生某事件而无法执行,如访问已被占用的临界资源,就会使进程由执行状态转变为阻塞状态。
c.当前进程因时间片用完而被暂停执行,该进程便由执行状态转变为就绪状态。
9.为什么要引入挂起状态?
该状态具有哪些性质?
答:
a.引入挂起状态处于5种需要:
终端用户的需要,父进程的需要,操作系统的需要,对换的需要和负荷调节的需要。
b.处于挂起状态的进程不能接收处理机调度。
10在进行进程切换时,所要保存的处理机状态信息主要有哪些?
答:
a.进程当前暂存信息;
b.下一条指令地址信息;
c.进程状态信息;
d.过程和系统调用参数及调用地址信息.
11试说明引起进程创建的主要事件。
答:
a.用户登录;
b.作业调度;
c.提供服务;
d.应用请求.
12试说明引起进程撤消的主要事件。
答:
a.正常结束;
b.异常结束;
c.外界干预;
13在创建一个进程时,需完成的主要工作是什么?
答:
a.操作系统发现请求创建新进程事件后,调用进程创建原语Creat();
b.申请空白PCB;
c.为新进程分配资源;
d.初始化进程控制块;
e.将新进程插入就绪队列.
14在撤消一个进程时,需完成的主要工作是什么?
答:
a.OS调用进程终止原语;
b.根据被终止进程的标志符,从PCB集合中检索出该进程的PCB,从中读出该进程的状态;
c.若被终止进程正处于执行状态,应立即中止该进程的执行,并设置调度标志为真;
d.若该进程还有子孙进程,还应将其所有子孙进程予以终止;
e.将该进程所拥有的全部资源,或者归还给其父进程,或者归还给系统;
f.将被终止进程(它的PCB)从所在队列(或链表)中移出,等待其它程序来搜集信息。
15试说明引起进程阻塞或被唤醒的主要事件是什么?
答:
a.请求系统服务;
b.启动某种操作;
c.新数据尚未到达;
d.无新工作可做。
16试从调度性,并发性,拥有资源及系统开销几个方面,对进程和线程进行比较。
答:
a.在引入线程的OS中,把线程作为调度和分派的基本单位,而把进程作为资源拥有的基本单位;
b.在引入线程的OS中,不仅进程之间可以并发执行,而且在一个进程中的多个线程之间,亦可并发执行,因而使OS具有更好的并发性;
c.进程始终是拥有资源的一个独立单位,线程自己不拥有系统资源,但它可以访问其隶属进程的资源;
d.在创建,撤消和切换进程方面,进程的开销远远大于线程的开销。
17.什么是临界资源和临界区?
答:
a.一次仅允许一个进程使用的资源成为临界资源。
b.在每个进程中,访问临界资源的那段程序称为临界区。
18.为什么进程在进入临界区之前,应先执行"进入区"代码,在退出临界区后又执行"退出区"代码?
答:
为了实现多个进程对临界资源的互斥访问,必须在临界区前面增加一段用于检查欲访问的临界资源是否正被访问的代码,如果未被访问,该进程便可进入临界区对资源进行访问,并设置正被访问标志,如果正被访问,则本进程不能进入临界区,实现这一功能的代码成为"进入区"代码;在退出临界区后,必须执行"退出区"代码,用于恢复未被访问标志。
19.同步机构应遵循哪些基本准则?
为什么?
答:
a.空闲让进.
b.忙则等待.
c.有限等待.
d.让权等待.
20.试从物理概念上来说明记录型信号量和wait和signal操作?
(有待讨论).
21.你认为整型信号量机制和记录型信号量机制,是否完全遵循了同步机构的四条准则?
答:
a.在整型信号量机制中,未遵循"让权等待"的准则。
b.记录型信号量机制完全遵循了同步机构的"空闲让进,忙则等待,有限等待,让权等待"四条准则。
22.在生产者-消费者问题中,如果缺少了signal(full)或signal(empty),对执行结果会有何影响?
生产者-消费者问题可描述如下:
varmutex,empty,full:
semaphore:
=1,n,0;
buffer:
array[0,...,n-1]ofitem;
in,out:
integer:
=0,0;
begin
parbegin
producer:
begin
repeat
.
.
produceaniteminnextp;
.
.
wait(empty);
wait(mutex);
buffer(in):
=nextp;
in:
=(in+1)modn;
signal(mutex);
/****************/
signal(full);
/****************/
untilfalse;
end
consumer:
begin
repeat
wait(full);
wait(mutex);
nextc:
=buffer(out);
out:
=(out+1)modn;
signal(mutex);
/****************/
signal(empty);
/****************/
consumetheiteminnextc;
untilfalse;
end
parend
end
可见,生产者可以不断地往缓冲池送消息,如果缓冲池满,就会覆盖原有数据,造成数据混乱.而消费者始终因wait(full)操作将消费进程直接送入进程链表进行等待,无法访问缓冲池,造成无限等待。
7.在生产者-消费者问题中,如果将两个wait操作即wait(full)和wait(mutex)互换位置;或者是将signal(mutex)与signal(full)互换位置结果会如何?
varmutex,empty,full:
semaphore:
=1,n,0;
buffer:
array[0,...,n-1]ofitem;
in,out:
integer:
=0,0;
begin
parbegin
producer:
begin
repeat
produceaniteminnextp;
..
wait(empty);
wait(mutex);
buffer(in):
=nextp;
in:
=(in+1)modn;
/*******************/
signal(full);
signal(mutex);
/*******************/
untilfalse;
end
consumer:
begin
repeat
/******************/
wait(mutex);
wait(full);
/******************/
nextc:
=buffer(out);
out:
=(out+1)modn;
signal(mutex);
signal(empty);
consumetheiteminnextc;
untilfalse;
end
parend
end
a.wait(full)和wait(mutex)互换位置后,因为mutex在这儿是全局变量,执行完wait(mutex),则mutex赋值为0,倘若full也为0,则该生产者进程就会转入进程链表进行等待,而生产者进程会因全局变量mutex为0而进行等待,使full始终为0,这样就形成了死锁。
b.而signal(mutex)与signal(full)互换位置后,从逻辑上来说应该是一样的。
23.我们为某临界区设置一把锁W,当W=1时,表示关锁;W=0时,表示锁已打开.试写出开锁原语和关锁原语,并利用它们去实现互斥。
开锁原语:
unlock(W):
W=0;
关锁原语:
lock(W);
if(W==1)dono_op;
W=1;
利用开关锁原语实现互斥:
varW:
semaphore:
=0;
begin
parbegin
process:
begin
repeat
lock(W);
criticalsection
unlock(W);
remaindersection
untilfalse;
end
parend
24.试修改下面生产者-消费者问题解法中的错误:
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
25试利用记录型信号量写出一个不会出现死锁的哲学家进餐问题的算法.
设初始值为1的信号量c[I]表示I号筷子被拿(I=1,2,3,4,...,2n),其中n为自然数。
send(I):
Begin
ifImod2==1then
{
P(c[I]);
P(c[I-1mod5]);
Eat;
V(c[I-1mod5]);
V(c[I]);
}
else
{
P(c[I-1mod5]);
P(c[I]);
Eat;
V(c[I]);
V(c[I-1mod5]);
}
End
26在测量控制系统中的数据采集任务,把所采集的数据送一单缓冲区;计算任务从该单缓冲中取出数据进行计算。
试写出利用信号量机制实现两者共享单缓冲的同步算法。
intmutex=1;
intempty=n;
intfull=0;
intin=0;
intout=0;
main()
{
cobegin
send();
obtain();
coend
}
send()
{
while
(1)
{
.……
.collectdatainnextp;
.…….
wait(empty);
wait(mutex);
buffer(in)=nextp;
in=(in+1)modn;
signal(mutex);
signal(full);
}
}//send
obtain()
{
while
(1)
{
wait(full);
wait(mutex);
nextc:
=buffer(out);
out:
=(out+1)modn;
signal(mutex);
signal(empty);
culculatethedatainnextc;
}//while
}//obtain
27画图说明管程由哪几部分组成?
为什么要引入条件变量?
答:
管程由三部分组成:
局部于管程的共享变量说明;对该数据结构进行操作的一组过程;对局部于管程的数据设置初始值的语句.。
(图见P80)因为调用wait原语后,使进程等待的原因有多种,为了区别它们,引入了条件变量。
28如何利用管程来解决生产者-消费者问题?
答:
1.建立管程:
PC,它包括:
二过程:
(1)put(item)过程;
(2)get(item)过程
一变量:
count≥n时满;≤0时空
初始:
in=out=count=0Typeproducer-consumer=monitor
varin,out,count:
integer;
buffer:
array[0,…,n-1]ofitem;
notfull,notempty:
condition;
procedureentryput(item)
procedureentryget(item)
Procedureentryput(item)
begin
ifcount≥nthennotfull.wait;
buffer(in):
=nextp;
in:
=(in+1)modn
count:
=count+1;
if
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- OS200 参考 解答
![提示](https://static.bdocx.com/images/bang_tan.gif)