操作系统OS课后习题答案(汤小丹著第三版)前五章

更新时间:2023-08-28 21:17:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

清华大学出版社,计算机操作系统课后习题解答

第一章 操作系统引论

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

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

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

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

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

c. OS 作为扩充机器.

3.为什么说OS实现了计算机资源的抽象?

P3-4(略)

4. 试说明推动多道批处理系统形成和发展的主要动力是什么?

不断提高计算机资源利用率和系统吞吐量的需要;

5. 何谓脱机I/O 和联机I/O?

a. 脱机输入输出方式(Off-Line I/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.试列出Windows OS中五个主要版本,并说明它们分别较前一个版本有何改进。

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 种模式: 非对称多处理模式(Asymmetric Multiprocessing Model)和对称多处理模式(SymmetricMultiprocesing Model).

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. Var a, b, c, d, e, f, g, h; semaphore:= 0, 0, 0, 1, 0, 0, 0, 0;

begin

parbegin

begin S1; signal(a); signal(b); end;

begin wait(a); S2; signal(c); signal(d); end;

begin wait(b); S3; signal(e); end;

begin wait(c); S4; signal(f); end;

begin wait(d); S5; signal(g); end;

begin wait(e); S6; signal(h); end;

begin wait(f); wait(g); wait(h); S7; end;

parend

end

清华大学出版社,计算机操作系统课后习题解答

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) do no_op;

W=1;

利用开关锁原语实现互斥:

var W: semaphore:=0;

begin

parbegin

process :

begin

清华大学出版社,计算机操作系统课后习题解答

lock(W);

critical section

unlock(W);

remainder section

until false;

end

parend

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

producer:

begin

repeat.

producer an item in nextp;

wait(mutex);

wait(full); /* 应为wait(empty),而且还应该在wait(mutex)的前面*/ buffer(in):=nextp;

/* 缓冲池数组游标应前移: in:=(in+1) mod n; */

signal(mutex);

/* signal(full); */

until false;

end

consumer:

begin

repeat

wait(mutex);

wait(empty); /* 应为wait(full),而且还应该在wait(mutex)的前面*/ nextc:=buffer(out);

out:=out+1; /* 考虑循环,应改为: out:=(out+1) mod n; */

signal(mutex);

/* signal(empty); */

consumer item in nextc;

until false;

end

27. 试利用记录型信号量写出一个不会出现死锁的哲学家进餐问题的算法. 设初始值为1 的信号量c[I]表示I 号筷子被拿(I=1,2,3,4,...,2n),其中n 为自然数.

send(I):

Begin

if I mod 2==1 then

{

P(c[I]);

P(c[I-1 mod 5]);

Eat;

清华大学出版社,计算机操作系统课后习题解答

V(c[I-1 mod 5]);

V(c[I]);

}

else

{

P(c[I-1 mod 5]);

P(c[I]);

Eat;

V(c[I]);

V(c[I-1 mod 5]);

}

End

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

int mutex=1;

int empty=n;

int full=0;

int in=0;

int out=0;

main()

{

cobegin

send();

obtain();

coend

}

send()

{

while(1)

{

collect data in nextp;

wait(empty);

wait(mutex);

buffer(in)=nextp;

in=(in+1) mod n;

signal(mutex);

signal(full);

}

}//send

obtain()

{

while(1)

{

清华大学出版社,计算机操作系统课后习题解答

wait(full);

wait(mutex);

nextc:=buffer(out);

out:=(out+1) mod n;

signal(mutex);

signal(empty);

culculate the data in nextc;

}//while

}//obtain

29.画图说明管程由哪几部分组成?为什么要引入条件变量?

管程由三部分组成:局部于管程的共享变量说明;对该数据结构进行操作的一组过程;对局部于管程的数据设置初始值的语句. (图见P56)

因为调用wait 原语后,使进程等待的原因有多种,为了区别它们,引入了条件变量.

30.如何利用管程来解决生产者-消费者问题?

(见P60)

31.什么是AND 信号量?试利用AND 信号量写出生产者-消费者问题的解法. 为解决并行所带来的死锁问题,在wait 操作中引入AND 条件,其基本思想是将进程在整个运行过程中所需要的所有临界资源,一次性地全部分配给进程,用完后一次性释放.

解决生产者-消费者问题可描述如下:

var mutex,empty,full: semaphore:=1,n,0;

buffer: array[0,...,n-1] of item;

in,out: integer:=0,0;

begin

parbegin

producer: begin

repeat.

produce an item in nextp;.

wait(empty);

wait(s1,s2,s3,...,sn); //s1,s2,...,sn 为执行生产者进程除empty 外其余的条件

wait(mutex);

buffer(in):=nextp;

in:=(in+1) mod n;

signal(mutex);

signal(full);

signal(s1,s2,s3,...,sn);

until false;

end

consumer: begin

清华大学出版社,计算机操作系统课后习题解答

repeat

wait(full);

wait(k1,k2,k3,...,kn); //k1,k2,...,kn 为执行消费者进程除full 外其余的条件

wait(mutex);

nextc:=buffer(out);

out:=(out+1) mod n;

signal(mutex);

signal(empty);

signal(k1,k2,k3,...,kn);

consume the item in nextc;

until false;

end

parend

end

32.什么是信号量集?试利用信号量集写出读者-写者问题的解法。

P64略

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

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

34.当前有哪几种高级通信工具。

共享存储器系统、消息传递系统和管道通信系统三大类。

35.消息队列通信机制应有哪几方面功能?

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

在OS中引入进程的目的,是为了使多个程序能并发执行,以提高资源利用率和系统吞吐量。

在OS中再引入线程,则是为了减少程序在并发执行时所付出的时空开销,使OS具有更好的并发性。

37.说明线程具有哪些属性?

P73

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

a. 在引入线程的OS 中,把线程作为调度和分派的基本单位,而把进程作为资

清华大学出版社,计算机操作系统课后习题解答

源拥有的基本单位;

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

c. 进程始终是拥有资源的一个独立单位,线程自己不拥有系统资源,但它可以访问其隶属进程的资源;

d. 在创建,撤消和切换进程方面,进程的开销远远大于线程的开销.

39.为了在多线程OS中实现进程之间的同步与通信,通常提供了哪几种同步机制?

P75

40.用于实现线程同步的私用信号量和公用信号量之间有何差异?

P76

41.何谓用户级线程和内核级线程?并对它们进行比较.

a. 内核级线程是依赖于内核的,它存在于用户进程和系统进程中,它们的创建,撤消和切换都由内核实现;用户级线程仅存在于用户级中,它们的创建,撤消和切换不利用系统调用来实现,因而与内核无关,内核并不知道用户级线程的存在.

b. 内核级线程的调度和切换与进程十分相似,调度方式采用抢占式和非抢占式,调度算法采用时间轮转法和优先权算法等,当由线程调度选中一个线程后,再将处理器分配给它;而用户级线程通常发生在一个应用程序的诸线程之间,无需终端进入OS 内核,切换规则也较简单,因而,用户级线程的切换速度较快.

用户级线程调用系统调用和调度另一个进程执行时,内核把它们看作是整个进程的行为,内核级线程调用是以线程为单位,内核把系统调用看作是该线程的行为.

对于用户级线程调用,进程的执行速度随着所含线程数目的增加而降低,对于内核级线程则相反.

42.试说明用户级线程的实现方法。

P77

43.试说明内核级支持线程的实现方法。

P77

补充题目

1、 在Solaris OS 中,设置了哪几种线程?轻型线程的作用是什么?

a. 用户级线程,内核级线程和轻型线程;

b. 作用: 由LWP 实现了在内核与用户级线程之间的隔离,从而使用户级线程与内核无关.

2、在Solaris OS 中,用户级线程是通过什么方式来访问内核的?

清华大学出版社,计算机操作系统课后习题解答

通过LWP 来访问内核. LWP 可为内核所识别,但不能识别用户级线程,通过建立用户级线程与LWP之间的连接,可以实现用户级线程与内核的通信.

3、什么是临界资源和临界区?

a. 一次仅允许一个进程使用的资源成为临界资源.

b. 在每个进程中,访问临界资源的那段程序称为临界区.

4、 在单处理机环境下,进程间有哪几种通信方式?

a. 共享存储器系统通信方式;

b. 消息传递系统通信方式;

c. 管道通信方式.

5、试比较消息队列与管道通信机制.

a. 所谓管道,是指用于连接一个读进程和一个写进程,以实现它们之间通信的共享文件,又称pipe 文件.管道通信是属于共享存储器系统的.

b. 消息队列通信机制属于消息传递系统通信机制,存在通信链路,有消息的格式,有若干缓冲队列,采用独特的发送原语和接收原语.

第三章 处理机调度与死锁

1. 高级调度与低级调度的主要任务是什么?为什么要引入中级调度?

高级调度的主要任务:用于决定把外存上处于后备队列中的哪些作业调入内存,并为它

们创建进程,分配必要的资源,然后,再将新创建的进程插入就

绪队列上,准备执行。

低级调度的主要任务:用于决定就绪队列中的哪个进程应获得处理机,然后再由分派程

序执行将处理机分配给该进程的具体操作。

引入中级调度的主要目的:是为了提高系统资源的利用率和系统吞吐量。.

2.何谓作业、作业步和作业流?

P84

3.在什么情况下需要使用作业控制块JCB?其中包含了哪些内容?

P85

4.在作业调度中应如何确定接纳多少作业和接纳哪些作业?

前者取决于多道程序度,后者取决于采用的调度算法

5.试说明低级调度的功能。

P86

6. 在抢占调度方式中,抢占的原则是什么?

a. 时间片原则;

b. 优先权原则;

c. 短作业(进程)优先原则.

清华大学出版社,计算机操作系统课后习题解答

7. 选择调度方式和调度算法时,应遵循的准则是什么?

a. 面向用户的准则有周转时间短,响应时间快,截止时间的保证,以及优先权准则.

b. 面向系统的准则有系统吞吐量高,处理机利用率好,各类资源的平衡利用.

8. 在批处理系统,分时系统和实时系统中,各采用哪几种进程(作业)调度算法? (有待讨论)

9.何谓静态和动态优先级?确定静态优先级的依据是什么?

P93

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

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

不同点:FCFS调度算法每次调度都是从后备队列中选择一个或是多个最先进入该队列

的作业,将它们调入内存,为它们分配资源,创建进程,然后插入到就绪队

列中。该算法有利于长作业/进程,不利于短作业/进程。

SPF调度算法每次调度都是从后备队列中选择一个或若干个估计运行时间最

短的作业,将它们调入内存中运行。该算法有利于短作业/进程,不利于长作

业/进程。

11. 在按时间片轮转法中,如何确定时间片的大小时?

a. 系统对相应时间的要求;

b. 就绪队列中进程的数目;

c. 系统的处理能力

12.通过一个例子来说明通常的优先级调度算法不能适用于实时系统? P97

13. 为什么说多级反馈队列能较好地满足各种用户的需要?

a. 对于终端型作业用户,由于终端型作业用户所提交的作业,大都属于交互型作业,系统只要能使这些作业(进程)在第一队列所规定的时间片内完成,便可使终端型作业用户都感到满意.

b. 对于短批处理作业用户,很短的批处理型作业如果仅在第一队列中执行一个时间片即可完成,便可获得与终端型作业一样的相应时间.对于稍长的作业,通常也只需在第二队列和第三队列中各执行一个时间片即可完成,其周转时间仍然很短.

c. 对于长批处理作业用户,用户也不必担心其作业长期得不到处理. 14 P98

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

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

清华大学出版社,计算机操作系统课后习题解答

16 P100

17 P102

18.何谓死锁?产生死锁的原因和必要条件是什么?

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

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

c.必要条件是: 互斥条件,请求和保持条件,不剥夺条件和环路等待条件。

19.在解决死锁问题的几个方法中,哪种方法最容易实现?哪种方法使资源的利用率最高?

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

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

a. 摈弃"请求和保持"条件,就是如果系统有足够的资源,便一次性地把进程所需的所有资源分配给它;

b. 摈弃"不剥夺"条件,就是已经保持了资源的进程,当它提出新的资源请求而不能立即得到满足时,必须释放它已经保持的所有资源,待以后需要时再重新申请;

c. 摈弃"环路等待"条件,就是将所有资源按类型排序标号,所有进程对资源的请求必须严格按序号递增的次序提出.

21.在银行家算法的例子中,如果P0 发出的请求向量由Request0(0,2,0)改为Request0(0,1,0),问系统可否将资源分配给它?

可以.

首先,Request0(0,1,0)<=Need0(7,4,3),

Request0(0,1,0)<=Available(2,3,0);

分配后可修改得一资源数据表(表略),进行安全性检查,可以找到一个安全序列{P1,P4,P3,P2,P0},或{P1,P4,P3,P0,P2},因此,系统是安全的,可以立即将资源分配给P0.

清华大学出版社,计算机操作系统课后习题解答

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

试问:

⑴ 该状态是否安全?

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

⑴该状态是安全的,因为存在一个安全序列< P0P3P4P1P2>。下表为该时刻的安全序 ⑵若进程P2提出请求Request(1,2,2,2)后,系统不能将资源分配给它,若分配给进程P2,系统还剩的资源情况为(0,4,0,0),此时系统中的资源将无法满足任何一个进程的资源请求,从而导致系统进入不安全状态,容易引起死锁的发生。

补充题目

1. 为实现实时调度,对实时系统提出了哪些要求?

a. 要提供必要的调度信息;

b. 在调度方式上要具体情况具体分析;

c. 要具有快速响应外部中断的能力;

d. 快速任务分派.

2. 目前常用的调度方式和算法,能否应用到实时系统中?

a. 对于时间片轮转调度算法,是一种常用于分时系统的调度算法;

b. 对于非抢占式优先权调度算法,可用于要求不太严格的实时控制系统中; c. 对于基于时钟中断抢占的优先权调度算法,有很好的响应效果,可用于大多数的实时系统中;

d. 对于立即抢占(Immediate Preemption)的优先权调度,要求操作系统具有快速响应外部时间的能力.

3. 在多处理机系统中,比较有代表性的线程调度方式有哪几种?

a. 自调度方式;

b. 成组调度;

c. 专用处理机分配调度方式.

4. 试比较自调度和成组调度?

a. 自调度方式是系统中有一个公共的线程或进程的就绪队列,所有的处理机在空闲时,都可自己从该队列中取出一个进程或线程运行;

b. 成组调度是由系统将一组相关的进程或线程,同时分配到一组处理机上运

清华大学出版社,计算机操作系统课后习题解答

行,进程或线程与处理机一一对应;

c. 在一般情况下,成组调度的性能优于自调度,因为自调度存在瓶颈,低效,线程切换频繁等问题,而成组调度可减少线程的切换和调度的开销,因而目前得到了广泛的认可.

5.在OS/2 中采用哪种调度方式和调度算法?

在OS/2 中采用的是抢占式调度方式,多优先级的抢占式调度算法.

第四章 存储器管理

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

2. 可采用哪几种方式将程序装入内存?它们分别适用于何种场合?

a. 首先由编译程序将用户源代码编译成若干目标模块,再由链接程序将编译后形成的目标模块和所需的库函数链接在一起,组成一个装入模块,再由装入程序将装入模块装入内存;

b. 装入模块的方式有: 绝对装入方式,可重定位方式和动态运行时装入方式; c. 绝对装入方式适用于单道程序环境下;

d. 可重定位方式适用于多道程序环境下;

e. 动态运行时装入方式也适用于多道程序环境下.

3. 何谓静态链接及装入时动态链接和运行时的动态链接?

a. 静态链接是指事先进行链接形成一个完整的装入模块,以后不再拆开的链接方式;

b. 装入时动态链接是指目标模块在装入内存时,边装入边链接的链接方式; c. 运行时的动态链接是将某些目标模块的链接推迟到执行时才进行.

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

a. 对相对地址进行修改;b. 变换外部调用符号.

5. 在动态分区分配方式中,应如何将各空闲分区链接成空闲分区链?

应在每个分区的起始地址部分,设置一些用于控制分区分配的信息,以及用于链接各分区的前向指针;在分区尾部则设置一后向指针,通过前,后向指针将所有的分区链接成一个双向链.

6. 为什么要引入动态重定位?如何实现?

a. 为了在程序执行过程中,每当访问指令或数据时,将要访问的程序或数据的逻辑地址转换成物理地址,引入了动态重定位.

b. 可在系统中增加一个重定位寄存器,用它来装入(存放)程序在内存中的起始地址,程序在执行时,真正访问的内存地址是相对地址与重定位寄存器中的地址相加而形成的,从而实现动态重定位.

本文来源:https://www.bwwdw.com/article/54di.html

Top