操作系统OS课后习题答案汤小丹著第三版前五章.docx
- 文档编号:5384654
- 上传时间:2022-12-15
- 格式:DOCX
- 页数:40
- 大小:61.36KB
操作系统OS课后习题答案汤小丹著第三版前五章.docx
《操作系统OS课后习题答案汤小丹著第三版前五章.docx》由会员分享,可在线阅读,更多相关《操作系统OS课后习题答案汤小丹著第三版前五章.docx(40页珍藏版)》请在冰豆网上搜索。
操作系统OS课后习题答案汤小丹著第三版前五章
第一章操作系统引论
1.设计现代OS的主要目标是什么?
方便性,有效性,可扩充性和开放性.
2.OS的作用可表现为哪几个方面?
a.OS作为用户与计算机硬件系统之间的接口;
b.OS作为计算机系统资源的管理者;
c.OS作为扩充机器.
3.为什么说OS实现了计算机资源的抽象?
P3-4(略)
4.试说明推动多道批处理系统形成和发展的主要动力是什么?
不断提高计算机资源利用率和系统吞吐量的需要;
5.何谓脱机I/O和联机I/O?
a.脱机输入输出方式(Off-LineI/O)是为了解决人机矛盾及CPU和I/O设备之间速度不匹配而提出的.它减少了CPU的空闲等待时间,提高了I/O速度.具体内容是将用户程序和数据在一台外围机的控制下,预先从低速输入设备输入到磁带上,当CPU需要这些程序和数据时,在直接从磁带机高速输入到内存,从而大大加快了程序的输入过程,减少了CPU等待输入的时间,这就是脱机输入技术;当程序运行完毕或告一段落,CPU需要输出时,无需直接把计算结果送至低速输出设备,而是高速把结果输出到磁带上,然后在外围机的控制下,把磁带上的计算结果由相应的输出设备输出,这就是
脱机输出技术。
b.若这种输入输出操作在主机控制下进行则称之为联机输入输出方式.
6.试说明推动分时系统形成和发展的主要动力是什么?
用户的需要.即对用户来说,更好的满足了人-机交互,共享主机以及便于用户上机的需求.
7.实现分时系统的关键问题是什么?
应如何解决?
a.关键问题:
及时接收,及时处理;
b.对于及时接收,只需在系统中设置一多路卡,多路卡作用是使主机能同时接收用户从各个终端上输入的数据;对于及时处理,应使所有的用户作业都直接进入内存,在不长的时间内,能使每个作业都运行一次.
8.为什么要引入实时操作系统?
更好地满足实时控制领域和实时信息处理领域的需要.
9.什么是硬实时任务和软实时任务?
试举例说明。
P12
10.在8位微机和16位微机中,占据了统治地位的是什么操作系统?
CP/M和MS-DOS
11.试列出WindowsOS中五个主要版本,并说明它们分别较前一个版本有何改进。
P13
12.试从交互性,及时性和可靠性方面,将分时系统与实时系统进行比较.
a.分时系统是一种通用系统,主要用于运行终端用户程序,因而它具有较强的交互能力;而实时系统虽然也有交互能力,但其交互能力不及前者.
b.实时信息系统对实用性的要求与分时系统类似,都是以人所能接收的等待时间来确定;而实时控制
系统的及时性则是以控制对象所要求的开始截止时间和完成截止时间来确定的.
c.实时系统对系统的可靠性要求要比分时系统对系统的可靠性要求高.
13.OS具有哪几大特征?
它的最基本特征是什么?
a.并发(Concurrence),共享(Sharing),虚拟(Virtual),异步性(Asynchronism).
b.其中最基本特征是并发和共享.
14.处理机管理具有哪些功能?
它们的主要任务是什么?
a.进程控制,进程同步,进程通信和调度.
b.进程控制的主要任务是为作业创建进程,撤销已结束的进程,以及控制进程在运行过程中的状态转换.
●进程同步的主要任务是对诸进程的运行进行调节.
●进程通信的任务是实现在相互合作进程之间的信息交换.
●调度分为作业调度和进程调度.作业调度的基本任务是从后备队列中按照一定的算法,选择出若干个作业,为它们分配必要的资源;而进程调度的任务是从进程的就绪队列中,按照一定的算法选出一新进程,把处理机分配给它,并为它设置运行现场,是进程投入运行.
15.内存管理有哪些主要功能?
它们的主要任务是什么?
a.主要功能:
内存分配,内存保护,地址映射和内存扩充等.
b.内存分配的主要任务是为每道程序分配内存空间,提高存储器利用率,以减少不可用的内存空间,允许正在运行的程序申请附加的内存空间,以适应程序和数据动态增长的需要.
●内存保护的主要任务是确保每道用户程序都在自己的内存空间中运行,互不干扰.
●地址映射的主要任务是将地址空间中的逻辑地址转换为内存空间中与之对应的物理地址.
●内存扩充的主要任务是借助虚拟存储技术,从逻辑上去扩充内存容量.
16.设备管理有哪些主要功能?
其主要任务是什么?
a.主要功能:
缓冲管理,设备分配和设备处理,以及虚拟设备等.
b.主要任务:
完成用户提出的I/O请求,为用户分配I/O设备;提高CPU和I/O设备的利用率;提高I/O速度;以及方便用户使用I/O设备.
17.文件管理有哪些主要功能?
其主要任务是什么?
a.主要功能:
对文件存储空间的管理,目录管理,文件的读,写管理以及文件的共享和保护.
b.主要任务:
对用户文件和系统文件进行管理,以方便用户使用,并保证文件的安全性.
18.是什么原因使操作系统具有异步性特征?
a.程序执行结果是不确定的,即程序是不可再现的.
b.每个程序在何时执行,多个程序间的执行顺序以及完成每道程序所需的时间都是不确定的,即不可预知性.
19.模块接口法存在哪些问题?
可通过什么样的途径来解决?
P25
20.在微内核OS中,为什么要采用客户/服务器模式?
P29
21.试描述什么是微内核OS。
P29
22.在基于微内核结构的OS中,应用了哪些新技术?
客户/服务器模式和面向对象的程序设计技术
23.何谓微内核技术?
在微内核中通常提供了哪些功能?
P30
24.微内核操作系统具有哪些优点?
它为何能有这些优点?
P31-32
补充题目:
(汤子赢版)
1.试说明实时任务的类型和实时系统的类型.
a.实时任务的类型按任务执行时是否呈现周期性来划分,分为周期性实时任务和非周期性实时任务;根据对截止时间的要求来划分,分为硬实时任务和软实时任务;
b.通常把要求进行实时控制的系统统称为实时控制系统,把要求对信息进行实时处理的系统成为实时信息处理系统.
2.实现多道程序应解决哪些问题?
a.处理机管理问题;
b.内存管理问题;
c.I/O设备管理问题;
d.文件管理问题;
e.作业管理问题.
3.试比较单道与多道批处理系统的特点及优缺点.
a.单道批处理系统是最早出现的一种OS,它具有自动性,顺序性和单道性的特点;多道批处理系统则具有调度性,无序性和多道性的特点;
b.单道批处理系统是在解决人机矛盾及CPU和I/O设备之间速度不匹配的矛盾中形成的,旨在提高系统资源利用率和系统吞吐量,但是仍然不能很好的利用系统资源;多道批处理系统是对单道批处理系统的改进,其主要优点是资源利用率高,系统吞吐量大;缺点是平均周转时间长,无交互能力.
4.OS/2的主要功能是什么?
a.多任务.
b.进程管理.
c.存储器管理.
d.文件管理.
e.应用程序接口API.
f.表示管理.
5.多处理机OS有哪几种模式?
各有何优缺点?
a.2种模式:
非对称多处理模式(AsymmetricMultiprocessingModel)和对称多处理模式(SymmetricMultiprocesingModel).
b.前者易于实现,但资源利用率低.后者优点是允许多个进程同时运行,缺点是必须小心控制I/O,以保证能将数据送至适当的处理器,同时还必须注意使各CPU的负载平衡.
6.试说明网络OS的主要功能.
a.网络通信;
b.资源管理;
c.网络服务;
d.网络管理;
e.互操作能力.
7.试比较网络OS和分布式OS.
a.网络OS是基于由一些互联的自主计算机系统组成的计算机网络,以计算机技术和通信技术高度发展为基础,能实现相互通信和相互合作功能的系统.分布式OS是指多个分散的处理单元,经互联网络连接而形成的系统.
b.在分布性上,两者都具有分布处理功能,但网络OS的控制功能大多集中在某个(些)主机或网络服务器中,即集中式,而分布式OS则是较均匀地分布在系统的各个站点上,是完全分布式的.
●在并行性上,分布式OS的任务分配程序可将多个任务分配到多个处理单元上而实现并行,网络OS中通常无任务分配功能,每个用户的任务通常在自己(本地)的计算机上处理.
●在透明性上,两者都具透明性,但网络OS指在操作实现上的透明性,而分布式OS则在系统内部的细节上实现了很好的隐藏,即具有物理上的透明性.
●在共享性上,分布式OS是比较完全的实现共享,而网络OS共享的资源大多是在主机或网络服务器中.
●在健壮性上,分布式系统由于处理和控制功能是分布的,还拥有容错技术实现系统重构,因而具有很强的健壮性;而网络OS的控制功能大多集中在主机或服务器中,是系统具有潜在的不可靠性,健壮性差.
第二章进程管理
1.什么是前趋图?
为什么引入前趋图?
略
2.试画出下面4条语句的前趋图:
S1:
a:
=x+y;
S2:
b:
=z+1;
S3:
c:
=a-b;
S4:
w:
=c+1;
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.进程在运行时存在哪两种形式的制约?
并举例说明之。
间接相互制约(源于资源共享)和直接相互制约(进程间合作)
17.为什么进程在进入临界区之前,应先执行"进入区"代码,在退出临界区后又执行"退出区"代码?
为了实现多个进程对临界资源的互斥访问,必须在临界区前面增加一段用于检查欲访问的临界资源是否正被访问的代码,如果未被访问,该进程便可进入临界区对资源进行访问,并设置正被访问标志,
如果正被访问,则本进程不能进入临界区,实现这一功能的代码成为"进入区"代码;在退出临界区后,必须执行"退出区"代码,用于恢复未被访问标志.
18.同步机构应遵循哪些基本准则?
为什么?
a.空闲让进.
b.忙则等待.
c.有限等待.
d.让权等待.
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链表中的第一个等待进程唤醒。
20.你认为整型信号量机制和记录型信号量机制,是否完全遵循了同步机构的四条准则?
a.在整型信号量机制中,未遵循"让权等待"的准则.
b.记录型信号量机制完全遵循了同步机构的"空闲让进,忙则等待,有限等待,让权等待"四条准则.
21.如何利用信号量机制来实现多个进程对临界资源的互斥访问?
试举例说明之。
a.Vara,b,c,d,e,f,g,h;semaphore:
=0,0,0,1,0,0,0,0;
begin
parbegin
beginS1;signal(a);signal(b);end;
beginwait(a);S2;signal(c);signal(d);end;
beginwait(b);S3;signal(e);end;
beginwait(c);S4;signal(f);end;
beginwait(d);S5;signal(g);end;
beginwait(e);S6;signal(h);end;
beginwait(f);wait(g);wait(h);S7;end;
parend
end
22.略
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操作,即wait(full)和wait(mutex)互换位置后,可能引起死锁。
考虑系统中缓冲区全满时,若一生产者进程先执行了wait(mutex)操作并获得成功,则当再执行wait(empty)操作时,它将因失败而进入阻塞状态,它期待消费者进程执行signal(empty)来唤醒自己,在此之前,它不可能执行signal(mutex)操作,从而使试图通过执行wait(mutex)操作而进入自己的临界区的其他生产者和所有消费者进程全部进入阻塞状态,这样容易引起系统死锁。
若signal(mutex)和signal(full)互换位置后只是影响进程对临界资源的释放次序,而不会引起系统死锁,因此可以互换位置。
25.我们为某临界区设置一把锁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
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.试利用记录型信号量写出一个不会出现死锁的哲学家进餐问题的算法.
设初始值为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
28.在测量控制系统中的数据采集任务,把所采集的数据送一单缓冲区;计算任务从该单缓冲中取出数据进行计算.试写出利用信号量机制实现两者共享单缓冲的同步算法.
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
29.画图说明管程由哪几部分组成?
为什么要引入条件变量?
管程由三部分组成:
局部于管程的共享变量说明;对该数据结构进行操作的一组过程;对局部于管程的数据设置初始值的语句.(图见P56)
因为调用wait原语后,使进程等待的原因有多种,为了区别它们,引入了条件变量.
30.如何利用管程来解决生产者-消费者问题?
(见P60)
31.什么是AND信号量?
试利用AND信号量写出生产者-消费者问题的解法.
为解决并行所带来的死锁问题,在wait操作中引入AND条件,其基本思想是将进程在整个运行过程中所需要的所有临界资源,一次性地全部分配给进程,用完后一次性释放.
解决生产者-消费者问题可描述如下:
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(s1,s2,s3,...,sn);//s1,s2,...,sn为执行生产者进程除empty外其余的条件
wait(mutex);
buffer(in):
=nextp;
in:
=(in+1)modn;
signal(mutex);
signal(full);
signal(s1,s2,s3,...,sn);
untilfa
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统 OS 课后 习题 答案 汤小丹著 第三 版前五章
![提示](https://static.bdocx.com/images/bang_tan.gif)