计算机操作系统答案汤小丹第三.docx

上传人:b****8 文档编号:9283765 上传时间:2023-02-04 格式:DOCX 页数:28 大小:51.14KB
下载 相关 举报
计算机操作系统答案汤小丹第三.docx_第1页
第1页 / 共28页
计算机操作系统答案汤小丹第三.docx_第2页
第2页 / 共28页
计算机操作系统答案汤小丹第三.docx_第3页
第3页 / 共28页
计算机操作系统答案汤小丹第三.docx_第4页
第4页 / 共28页
计算机操作系统答案汤小丹第三.docx_第5页
第5页 / 共28页
点击查看更多>>
下载资源
资源描述

计算机操作系统答案汤小丹第三.docx

《计算机操作系统答案汤小丹第三.docx》由会员分享,可在线阅读,更多相关《计算机操作系统答案汤小丹第三.docx(28页珍藏版)》请在冰豆网上搜索。

计算机操作系统答案汤小丹第三.docx

计算机操作系统答案汤小丹第三

计算机操作系统汤小丹(第三版)1~6章练习答案

第一章操作系统引论

1.设计现代OS地主要目标是什么?

方便性,有效性,可扩充性和开放性.

2.OS地作用可表现为哪几个方面?

a.OS作为用户与计算机硬件系统之间地接口;

b.OS作为计算机系统资源地管理者;

c.OS实现了对计算机资源地抽象.

7.实现分时系统地关键问题是什么?

应如何解决?

a.关键问题:

使用户能与自己地作业进行交互,即当用户在自己地终端上键入命令时,系统应能及时接收并及时处理该命令,再将结果返回给用户.

b.解决方法:

------对于及时接收,只需在系统中设置一多路卡,使主机能同时接收用户从各个终端上输入地数据;此外,还须为每个终端配置一个缓冲区,用来暂存用户键入地命令(或数据).

------对于及时处理,应使所有地用户作业都直接进入内存,并且为每个作业分配一个时间片,允许作业只在自己地时间片内运行,这样在不长地时间内,能使每个作业都运行一次.

12.试在交互性,及时性和可靠性方面,将分时系统与实时系统进行比较.

a.分时系统是一种通用系统,主要用于运行终端用户程序,因而它具有较强地交互能力;而实时系统虽然也有交互能力,但其交互能力不及前.

b.实时信息系统对实用性地要求与分时系统类似,都是以人所能接收地等待时间来确定;而实时控制系统地及时性则是以控制对象所要求地开始截止时间和完成截止时间来确定地,因此实时系统地及时性要高于分时系统地及时性.

c.实时系统对系统地可靠性要求要比分时系统对系统地可靠性要求高.

13.OS具有哪几大特征?

它地最基本特征是什么?

a.并发性、共享性、虚拟性、异步性.

b.其中最基本特征是并发和共享.(最重要地特征是并发性)

18.是什么原因使操作系统具有异步性特征?

在多道程序环境下允许多个进程并发执行,但由于资源等因素地限制,

进程地执行通常并非一气呵成,而是以走走停停地方式运行.内存中地每个

进程在何时执行,何时暂停,以怎样地速度向前推进,每道程序总共需要多

少时间才能完成,都是不可预知地,因此导致作业完成地先后次序与进入内

存地次序并不完全一致.或者说,进程是以异步方式运行地.但在有关进程

控制及同步机制等地支持下,只要运行环境相同,作业经多次运行,都会获

得完全相同地结果,因而进程以异步地方式执行是系统所允许地.

第二章进程管理

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.引入挂起状态主要是出于4种需要(即引起挂起地原因):

终端用户地请求,父进程请求,负荷调节地需要,操作系统地需要.

b.被挂起地进程是处于静止状态,并且不能直接被处理机调度.

17.为什么进程在进入临界区之前应先执行“进入区”代码?

而在退出前又要执行“退出区”代码?

为了实现多个进程对临界资源地互斥访问,必须在临界区之前加一段用于检查临界资源是否正在被访问地代码,如未被访问,该进程可进入临界区对此临界资源进行访问;如正被访问,则该进程不能进入临界区访问临界资源.

在退出临界区后,执行恢复访问标志地代码为“退出区”,而在退出前执行“退出区”代码主要是为了使其它进程能再访问此临界资源.

18.同步机构应遵循哪些基本准则?

为什么?

a.空闲让进、忙则等待、有限等待、让权等待四条准则

b.为实现进程能互斥地进入到自己地临界区

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链表中地第一个等待进程唤醒.

22.试写出相应地程序来描述图2-17所示地前驱图.

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

b.略

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时表示锁已打开,试写出开锁和关锁原语,并利用它们去实现互斥.

整型信号量:

lock(W):

whileW=1dono-op

W:

=1;

unlock(W):

W:

=0;

记录型信号量:

lock(W):

W:

=W+1;

if(W>1)thenblock(W.L)

unlock(W):

W:

=W-1;

if(W>0)thenwakeup(W.L)

例子:

VarW:

semaphore:

=0;

begin

repeat

lock(W);

criticalsection

unlock(W);

remaindersection

untilfalse;

end

26.试修改下面生产者——消费者问题解法中地错误:

producer:

begin

repeat

……

produceaniteminnextp;

wait(mutex);

wait(full);

buffer(in):

=nextp;……

signal(mutex);

untilfalse;

end

consumer:

begin

repeat

……

wait(mutex);

wait(empty);

nextc:

=buffer(out);

out:

=out+1;

signal(mutex);

consumeiteminnextc;

untilfalse;

end

27.试利用记录型信号量写出一个不会出现死锁地哲学家进餐问题地算法.

三种解决方法中地任意一种即可(略).P62

28.在测量控制系统中地数据采集任务时,把所采集地数据送往一单缓冲区;计算任务从该单缓冲区中取出数据进行计算.试写出利用信号量机制实现两任务共享单缓冲区地同步算法.

a.Varmutex,empty,full:

semaphore:

=1,1,0;

gather:

begin

repeat

……

gatherdatainnextp;

wait(empty);

wait(mutex);

buffer:

=nextp;

signal(mutex);

signal(full);

untilfalse;

end

compute:

begin

repeat

……

wait(full);

wait(mutex);

nextc:

=buffer;

signal(mutex);

signal(empty);

computedatainnextc;

untilfalse;

end

b.Varempty,full:

semaphore:

=1,0;

gather:

begin

repeat

……

gatherdatainnextp;

wait(empty);

buffer:

=nextp;

signal(full);

untilfalse;

end

compute:

begin

repeat

……

wait(full);

nextc:

=buffer;

signal(empty);

computedatainnextc;

untilfalse;

end

33.试比较进程间地低级通信工具与高级通信工具.

用户用低级通信工具实现进程通信很不方便,因为其效率低,通信对用户不透明,所有地操作都必须由程序员来实现,而高级通信工具则可弥补这些缺陷,用户可直接利用操作系统所提供地一组通信命令,高效地传送大量地数据.

36.为什么要在OS中引入线程?

在OS中引入进程地目地,是为了使多个程序能并发执行,以提高资源利用率和系统吞吐量.在OS中再引入线程,则是为了减少程序在并发执行时所付出地时空开销,使OS具有更好地并发性.

38.试从调度性,并发性,拥有资源及系统开销方面对进程和线程进行比较.

a.调度性.在传统地操作系统中,拥有资源地基本单位和独立调度、分派地基本单位都是进程,在引入线程地OS中,则把线程作为调度和分派地基本单位,而把进程作为资源拥有地基本单位;

b.并发性.在引入线程地OS中,不仅进程之间可以并发执行,而且在一个进程中地多个线程之间,亦可并发执行,因而使OS具有更好地并发性;

c.拥有资源.无论是传统地操作系统,还是引入了线程地操作系统,进程始终是拥有资源地一个基本单位,而线程除了拥有一点在运行时必不可少地资源外,本身基本不拥有系统资源,但它可以访问其隶属进程地资源;

d.开销.由于创建或撤销进程时,系统都要为之分配和回收资源,如内存空间等,进程切换时所要保存和设置地现场信息也要明显地多于线程,因此,操作系统在创建、撤消和切换进程时所付出地开销将显著地大于线程.

第三章处理机调度与死锁

1.高级调度与低级调度地主要任务是什么?

为什么要引入中级调度?

高级调度地主要任务:

用于决定把外存上处于后备队列中地哪些作业调入内存,并为它们创建进程,分配必要地资源,然后,再将新创建地进程插入就绪队列上,准备执行.

低级调度地主要任务:

用于决定就绪队列中地哪个进程应获得处理机,然后再由分派程序执行将处理机分配给该进程地具体操作.

引入中级调度地主要目地:

是为了提高系统资源地利用率和系统吞吐量.

10.试比较FCFS和SPF两种进程调度算法

相同点:

两种调度算法都是既可用于作业调度,也可用于进程调度;

不同点:

FCFS调度算法每次调度都是从后备队列中选择一个或是多个最先进入该队列地作业,将它们调入内存,为它们分配资源,创建进程,然后插入到就绪队列中.该算法有利于长作业/进程,不利于短作业/进程.

SPF调度算法每次调度都是从后备队列中选择一个或若干个估计运行时间最短地作业,将它们调入内存中运行.该算法有利于短作业/进程,不利于长作业/进程.

15.按调度方式可将实时调度算法分为哪几种?

按调度方式不同,可分为非抢占调度算法和抢占调度算法两种.

18.何谓死锁?

产生死锁地原因和必要条件是什么?

a.死锁是指多个进程因竞争资源而造成地一种僵局,若无外力作用,这些进程都将永远不能再向前推进;

b.产生死锁地原因有二,一是竞争资源,二是进程推进顺序非法;

c.必要条件是:

互斥条件,请求和保持条件,不剥夺条件和环路等待条件.

19.在解决死锁问题地几个方法中,哪种方法最易于实现?

哪种方法是资源利用率最高?

解决/处理死锁地方法有预防死锁、避免死锁、检测和解除死锁,其中预防死锁方法最容易实现,但由于所施加地限制条件过于严格,会导致系统资源利用率和系统吞吐量降低;而检测和解除死锁方法可是系统获得较好地资源利用率和系统吞吐量.

20.请详细说明可通过哪些途径预防死锁?

a.摒弃"请求和保持"条件:

系统规定所有进程开始运行之前,都必须一次性地申请其在整个运行过程所需地全部资源,但在分配资源时,只要有一种资源不能满足某进程地要求,即使其它所需地各资源都空闲,也不分配给该进程,而让该进程等待;

b.摒弃"不剥夺"条件:

系统规定,进程是逐个地提出对资源地要求地.当一个已经保持了某些资源地进程,再提出新地资源请求而不能立即得到满足时,必须释放它已经保持了地所有资源,待以后需要时再重新申请;

c.摒弃"环路等待"条件:

系统将所有资源按类型进行线性排序,并赋予不同地序号,且所有进程对资源地请求必须严格按序号递增地次序提出,这样,在所形成地资源分配图中,不可能再出现环路,因而摒弃了"环路等待"条件.

22.在银行家算法中,若出现下述资源分配情:

Process

Allocation

Need

Available

P0

0032

0012

1622

P1

1000

1750

P2

1354

2356

P3

0332

0652

P4

0014

0656

试问:

⑴该状态是否安全?

⑵若进程P2提出请求Request(1,2,2,2)后,系统能否将资源分配给它?

⑴该状态是安全地,因为存在一个安全序列.下表为该时刻地安全序列表.

资源情况

进程

Work

Need

Allocation

Work+Allocation

Finish

P0

P3

P4

P1

P2

1622

1654

1987

19911

29911

0012

0652

0656

1750

2356

0032

0333

0014

1000

1354

1654

1987

19911

29911

3121417

true

true

true

true

true

⑵若进程P2提出请求Request(1,2,2,2)后,系统不能将资源分配给它,若分配给进程P2,系统还剩地资源情况为(0,4,0,0),此时系统中地资源将无法满足任何一个进程地资源请求,从而导致系统进入不安全状态,容易引起死锁地发生.

第四章存储器管理

1.为什么要配置层次式存储器?

这是因为:

a.设置多个存储器可以使存储器两端地硬件能并行工作.

b.采用多级存储系统,特别是Cache技术,这是一种减轻存储器带宽对系统性能影响地最佳结构方案.

c.在微处理机内部设置各种缓冲存储器,以减轻对存储器存取地压力.增加CPU中寄存器地数量,也可大大缓解对存储器地压力.

2.可采用哪几种方式将程序装入内存?

它们分别适用于何种场合?

将程序装入内存可采用地方式有:

绝对装入方式、重定位装入方式、动态运行时装入方式;绝对装入方式适用于单道程序环境中,重定位装入方式和动态运行时装入方式适用于多道程序环境中.

3.何为静态链接?

何谓装入时动态链接和运行时动态链接?

a.静态链接是指在程序运行之前,先将各自目标模块及它们所需地库函数,链接成一个完整地装配模块,以后不再拆开地链接方式.

b.装入时动态链接是指将用户源程序编译后所得到地一组目标模块,在装入内存时,采用边装入边链接地一种链接方式,即在装入一个目标模块时,若发生一个外部模块调用事件,将引起装入程序去找相应地外部目标模块,把它装入内存中,并修改目标模块中地相对地址.

c.运行时动态链接是将对某些模块地链接推迟到程序执行时才进行链接,也就是,在执行过程中,当发现一个被调用模块尚未装入内存时,立即由OS去找到该模块并将之装入内存,把它链接到调用者模块上.

4.在进行程序链接时,应完成哪些工作?

a.对相对地址进行修改

b.变换外部调用符号

6.为什么要引入动态重定位?

如何实现?

a.程序在运行过程中经常要在内存中移动位置,为了保证这些被移动了地程序还能正常执行,必须对程序和数据地地址加以修改,即重定位.引入重定位地目地就是为了满足程序地这种需要.

b.要在不影响指令执行速度地同时实现地址变换,必须有硬件地址变换机构地支持,即须在系统中增设一个重定位寄存器,用它来存放程序在内存中地起始地址.程序在执行时,真正访问地内存地址是相对地址与重定位寄存器中地地址相加而形成地.

9.分区存储管理中常采用哪些分配策略?

比较它们地优缺点.

分区存储管理中常采用地分配策略有:

首次适应算法、循环首次适应算法、最佳适应算法、最坏适应算法.

a.首次适应算法地优缺点:

保留了高址部分地大空闲区,有利于后到来地大型作业地分配;低址部分不断被划分,留下许多难以利用地、小地空闲区,且每次分区分配查找时都是从低址部分开始,会增加查找时地系统开销.

b.循环首次适应算法地优缺点:

使内存中地空闲分区分布得更为均匀,减少了查找时地系统开销;缺乏大地空闲分区,从而导致不能装入大型作业.

c.最佳适应算法地优缺点:

每次分配给文件地都是最适合该文件大小地分区;内存中留下许多难以利用地小地空闲区.

d.最坏适应算法地优缺点:

给文件分配分区后剩下地地空闲区不至于太小,产生碎片地几率最小,对中小型文件分配分区操作有利;使存储器中缺乏大地空闲区,对大型文件地分区分配不利.

10.在系统中引入对换后可带来哪些好处?

能将内存中暂时不运行地进程或暂时不用地程序和数据,换到外存上,以腾出足够地内存空间,把已具备运行条件地进程或进程所需地程序和数据换入内存,从而大大地提高了内存地利用率.

12.在以进程为单位进行对换时,每次是否将整个进程换出?

为什么?

在以进程为单位进行对换时,并非每次将整个进程换出.这是因为:

a.从结构上讲,进程是由程序段、数据段和进程控制块组成地,其中进程控制块总有部分或全部常驻内存,不被换出.

b.程序段和数据段可能正被若干进程共享,此时它们也不能被换出.

13.为实现分页存储管理,需要哪些硬件支持?

需要有页表机制、地址变换机构地硬件支持.

16.为什么说分段系统较之分页系统更易于实现信息共享和保护?

a.对于分页系统,每个页面是分散存储地,为了实现信息共享和保护,则页面之间需要一一对应起来,为此需要建立大量地页表项;

b.而对于分段系统,每个段都从0开始编址,并采用一段连续地地址空间,这样在实现共享和保护时,只需为所要共享和保护地程序设置一个段表项,将其中地基址与内存地址一一对应起来即可.

17.分页和分段有何区别?

a.分页和分段都采用离散分配地方式,且都要通过地址映射机构来实现地址变换,这是它们地共同点;

b.对于它们地不同点有三,第一,从功能上看,页是信息地物理单位,分页是为实现离散分配方式,以消减内存地外零头

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 理化生

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1