操作系统(宗大华版)课后习题答案

更新时间:2024-02-28 04:15:01 阅读量: 综合文库 文档下载

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

第1章 操作系统概述

二、选择?

1.操作系统是一种 B 。

A.通用软件 B.系统软件

2.操作系统是对 C 进行管理的软件。

C.应用软件

D.软件包

A系统软件 B.系统硬件 C.计算机资源 D.应用程序

3.操作系统中采用多道程序设计技术,以提高CPU和外部设备的 A 。

A.利用率 B.可靠性 C.稳定性 D.兼容性

4.计算机系统中配置操作系统的目的是提高计算机的 B 和方便用户使用。 A.速度 B.利用率 C.灵活性

5. C 操作系统允许多个用户在其终端上同时交互地使用计算机。 A.批处理 B.实时 C.分时

道批处理

6.如果分时系统的时间片一定,那么 D ,响应时间越长。

A.用户数越少 三、问答?

B.内存越少

C.内存越多

D.兼容性

D.多

D.用户数越多

1.什么是“多道程序设计”技术?它对操作系统的形成起到什么作用?

答:所谓“多道程序设计”技术,即是通过软件的手段,允许在计算机内存中同时存放几道相互独立的作业程序,让它们对系统中的资源进行“共享”和“竞争”,以使系统中的各种资源尽可能地满负荷工作,从而提高整个计算机系统的使用效率。基于这种考虑,计算机科学家开始把CPU、存储器、外部设备以及各种软件都视为计算机系统的“资源”,并逐步设计出一种软件来管理这些资源,不仅使它们能够得到合理地使用,而且还要高效地使用。具有这种功能的软件就是“操作系统”。所以,“多道程序设计”的出现,加快了操作系统的诞生。 2.怎样理解“虚拟机”的概念?

答:拿操作系统来说,它是在裸机上加载的第一层软件,是对计算机硬件系统功能的首次扩充。从用户的角度看,计算机配置了操作系统后,由于操作系统隐蔽了硬件的复杂细节,用户会感到机器使用起来更方便、容易了。这样,通过操作系统的作用使展现在用户面前的是一台功能经过扩展了的机器。这台“机器”不是硬件搭建成的,现实生活中并不存在具有这种功能的真实机器,它只是用户的一种感觉而已。所以,就把这样的机器称为“虚拟机”。

3.对于分时系统,怎样理解“从宏观上看,多个用户同时工作,共享系统的资源;从微观上看,各终端程序是轮流运行一个时间片”?

1

答:在分时系统中,系统把CPU时间划分成许多时间片,每个终端用户可以使用由一个时间片规定的CPU时间,多个用户终端就轮流地使用CPU。这样的效果是每个终端都开始了自己的工作,得到了及时的响应。也就是说,“从宏观上看,多个用户同时工作,共享系统的资源”。但实际上,CPU在每一时刻只为一个终端服务,即“从微观上看,各终端程序是轮流运行一个时间片”。

第2章习题解答

一、填空?

1.进程在执行过程中有3种基本状态,它们是 运行 态、 就绪 态和 阻塞 态。 2.系统中一个进程由 程序 、 数据集合 和 进程控制块(PCB) 三部分组成。 3.在多道程序设计系统中,进程是一个 动 态概念,程序是一个 静 态概念。

4.在一个单CPU系统中,若有5个用户进程。假设当前系统为用户态,则处于就绪状态的用户进程最多有 4 个,最少有 0 个。

注意,题目里给出的是假设当前系统为用户态,这表明现在有一个进程处于运行状态,因此最多有4个进程处于就绪态。也可能除一个在运行外,其他4个都处于阻塞。这时,处于就绪的进程一个也没有。

5.总的来说,进程调度有两种方式,即 不可剥夺 方式和 剥夺 方式。 6.进程调度程序具体负责 中央处理机(CPU)的分配。

7.为了使系统的各种资源得到均衡使用,进行作业调度时,应该注意 CPU忙碌 作业和 I/O忙碌 作业的搭配。

8.所谓系统调用,就是用户程序要调用 操作系统 提供的一些子功能。

9.作业被系统接纳后到运行完毕,一般还需要经历 后备 、 运行 和 完成 三个阶段。

10.假定一个系统中的所有作业同时到达,那么使作业平均周转时间为最小的作业调度算法是 短作业优先 调度算法。

11.在引入线程的操作系统中,所谓“线程”,是指进程中实施 处理机调度和分配 的基本单位。 12.有了线程概念后,原来的进程就属于是 单线程 的进程情形。

二、选择?

1.在进程管理中,当 C 时,进程从阻塞状态变为就绪状态。

2

A.进程被调度程序选中 B.进程等待某一事件发生 C.等待的事件出现 D.时间片到

2.在分时系统中,一个进程用完给它的时间片后,其状态变为 A 。 A.就绪

D.由用户设定

3.下面对进程的描述中,错误的是 D 。 A.进程是动态的概念 C.进程具有生命周期

4.操作系统通过 B 对进程进行管理。 A.JCB

D.FCB

5.一个进程被唤醒,意味着该进程 D 。 A.重新占有CPU C.移至等待队列之首

6.由各作业JCB形成的队列称为 C 。

B.等待

C.运行

B.进程的执行需要CPU D.进程是指令的集合

B.PCB C.DCT

B.优先级变为最大 D.变为就绪状态

A.就绪作业队列 B.阻塞作业队列 C.后备作业队列 D.运行作业队列

7.既考虑作业等待时间,又考虑作业执行时间的作业调度算法是 A 。

A.响应比高者优先 B.短作业优先 C.优先级调度 D.先来先服务

8.作业调度程序从处于 D 状态的队列中选取适当的作业投入运行。 A.就绪 B.提交

D.后备

9. A 是指从作业提交系统到作业完成的时间间隔。 A.周转时间 C.等待时间

10.计算机系统在执行 C 时,会自动从目态变换到管态。

A.P操作 B.V操作 11.进程状态由就绪变为运行,是由于 C 引起的。 A.中断事件 B.进程状态变迁

C.等待

B.响应时间 D.运行时间

C.系统调用 D.I/O指令

三、问答?

C.进程调度 D.为作业创建进程

1.在多道程序设计系统中,如何理解“内存中的多个程序的执行过程交织在一起,大家都在走走停停”这样一个现象?

3

答:在多道程序设计系统中,内存中存放多个程序,它们以交替的方式使用CPU。因此,从宏观上看,这些程序都开始了自己的工作。但由于CPU只有一个,在任何时刻CPU只能执行一个进程程序。所以这些进程程序的执行过程是交织在一起的。也就是说,从微观上看,每一个进程一会儿在向前走,一会儿又停步不前,处于一种“走走停停”的状态之中。

2.什么是“原语”、“特权指令”、“系统调用命令”和“访管指令”?它们之间有无一定的联系?

答:特权指令和访管指令都是CPU指令系统中的指令,只是前者是一些只能在管态下执行的指令,后者是一条只能在目态下执行的指令。原语和系统调用命令都是操作系统中的功能程序,只是前者执行时不能被其他程序所打断,后者没有这个要求。操作系统中有些系统调用命令是以原语的形式出现的,例如创建进程就是一条原语式的系统调用命令。但并不是所有系统调用命令都是原语。因为如果那样的话,整个系统的并发性就不可能得到充分地发挥。 3.操作系统是如何处理源程序中出现的系统调用命令的?

答:编译程序总是把源程序中的系统调用命令改写成为一条访管指令和相应的参数。这样在程序实际被执行时,就通过访管指令进入操作系统,达到调用操作系统功能子程序的目的。 4.系统调用与一般的过程调用有什么区别?

答:系统调用是指在用户程序中调用操作系统提供的功能子程序;一般的过程调用是指在一个程序中调用另一个程序。因此它们之间有如下三点区别。

(1)一般的过程调用,调用者与被调用者都运行在相同的CPU状态,即或都处于目态(用户程序调用用户程序),或都处于管态(系统程序调用系统程序);但发生系统调用时,发出调用命令的调用者运行在目态,而被调用的对象则运行在管态,即调用者与被调用者运行在不同的CPU状态。

(2)一般的过程调用,是直接通过转移指令转向被调用的程序;但发生系统调用时,只能通过访管指令提供的一个统一的入口,由目态进入管态,经分析后,才转向相应的操作系统命令处理程序。

(3)一般的过程调用,在被调用者执行完后,就径直返回断点继续执行;但系统调用可能会导致进程状态的变化,从而引起系统重新分配处理机。因此,系统调用处理结束后,不一定是返回调用者断点处继续执行。

5.试述创建进程原语的主要功能。 答:创建进程原语的主要功能有以下三项。 (1)为新建进程申请一个PCB。

(2)将创建者(即父进程)提供的新建进程的信息填入PCB中。

4

(3)将新建进程设置为就绪状态,并按照所采用的调度算法,把PCB排入就绪队列中。 6.处于阻塞状态的一个进程,它所等待的事件发生时,就把它的状态由阻塞改变为就绪,让它到就绪队列里排队,为什么不直接将它投入运行呢?

答:只要是涉及管理,就应该有管理的规则,没有规则就不成方圆。如果处于阻塞状态的一个进程,在它所等待的事件发生时就径直将它投入运行(也就是把CPU从当前运行进程的手中抢夺过来),那么系统就无法控制对CPU这种资源的管理和使用,进而也就失去了设置操作系统的作用。所以,阻塞状态的进程在它所等待的事件发生时,必须先进入就绪队列,然后再去考虑它使用CPU的问题。

7.作业调度与进程调度有什么区别?

答:作业调度和进程调度(即CPU调度)都涉及到CPU的分配。但作业调度只是选择参加CPU竞争的作业,它并不具体分配CPU。而进程调度是在作业调度完成选择后的基础上,把CPU真正分配给某一个具体的进程使用。

8.系统中的各种进程队列都是由进程的PCB链接而成的。当一个进程的状态从阻塞变为就绪状态时,它的PCB从哪个队列移到哪个队列?它所对应的程序也要跟着移来移去吗?为什么? 答:当一个进程的状态从阻塞变为就绪时,它的PCB就从原先在的阻塞队列移到就绪队列里。在把进程的PCB从这个队列移到另一个队列时,只是移动进程的PCB,进程所对应的程序是不动的。这是因为在进程的PCB里,总是记录有它的程序的断点信息。知道了断点的信息,就能够知道程序当前应该从哪里开始往下执行了。这正是保护现场所起的作用。

9.为什么说响应比高者优先作业调度算法是对先来先服务以及短作业优先这两种调度算法的折中?

答: 先来先服务的作业调度算法,重点考虑的是作业在后备作业队列里的等待时间,因此对短作业不利;短作业优先的作业调度算法,重点考虑的是作业所需的CPU时间(当然,这个时间是用户自己估计的),因此对长作业不利。“响应比高者优先”作业调度算法,总是在需要调度时,考虑作业已经等待的时间和所需运行时间之比,即:

该作业已等待时间 / 该作业所需CPU时间

不难看出,这个比值的分母是一个不变的量。随着时间的推移,一个作业的“已等待时间”会不断发生变化,也就是分子在不断地变化。显然,短作业比较容易获得较高的响应比。这是因为它的分母较小,只要稍加等待,整个比值就会很快上升。另一方面,长作业的分母虽然很大,但随着它等待时间的增加,比值也会逐渐上升,从而获得较高的响应比。根据这种分析,可见“响应比高者优先”的作业调度算法,既照顾到了短作业的利益,也照顾到了长作业的利益,是对先来先服务以及短作业优先这两种调度算法的一种折中。

10.短作业优先调度算法总能得到最小的平均周转时间吗?为什么?

5

名,必须从根目录开始。所以,一个文件的绝对路径名是惟一的。相对路径名总是从当前目录往下,所以文件的相对路径名与当前位置有关,是不惟一的。

7.试述“创建文件”与“打开文件”两个系统调用在功能上的不同之处。

答:所谓“创建文件”,表示原先该文件并不存在。所以创建文件时,最主要的功能是在磁盘上为其开辟存储空间,建立起该文件的FCB。文件创建后,有了它的FCB,系统才真正感知到它的存在;“打开文件”是这个文件已经存在,只是它的有关信息不在内存。因此,打开文件最主要的功能是把该文件FCB中的信息复制到内存中,以便为随后对文件的操作带来便利。 8.试述“删除文件”与“关闭文件”两个系统调用在功能上的不同之处。

答:“删除文件”最主要的功能是把该文件的FCB收回。文件没有了FCB,系统也就无法感知到它的存在了。所以,在执行了删除文件的命令后,这个文件就在系统里消失了;而“关闭文件”最主要的功能是把复制到内存活动目录表里的该文件的FCB信息取消。这样一来,在内存活动目录表里没有了该文件的信息,就不能够对这个文件进行读、写了。所以,关闭一个文件后,这个文件还存在,只是不能对它操作了。如果要操作,就必须再次将它打开(即把FCB里的信息复制到内存的活动目录表),然后再进行操作。

9.为什么在使用文件之前,总是先将其打开后再用?

答:有关文件的信息都存放在该文件的FCB里,只有找到文件的FCB,才能获得它的一切信息。但FCB是在磁盘里。因此,只要对文件进行操作,就要到磁盘里去找它的FCB。这种做法,无疑影响了文件操作的执行速度。正因为如此,操作系统才考虑在对文件进行操作前,先将其打开,把文件的FCB内容复制到内存中来。这样,查找文件的FCB,就不必每次都要去访问磁盘。 10.如果一个文件系统没有提供显式的打开命令(即没有OPEN命令),但又希望有打开的功能,以便在使用文件时能减少与磁盘的交往次数。那么应该把这一功能安排在哪个系统调用里合适?如何安排?

答:文件系统中设置打开命令的根本目的,是减少文件操作时与磁盘的交往次数。如果系统没有提供显式的打开命令,但又要能减少与磁盘的交往次数,那么只需把这一功能安排在读或写系统调用命令里。这时,在读、写命令功能前面添加这样的处理:总是先到内存的活动目录表里查找该文件的FCB。如果找到,则表明在此前文件已经被打开,于是就可以立即进行所需要的读、写操作;如果没有找到,那么表明在此前文件还没有打开。于是应该先按照文件名,到磁盘上去查找该文件的FCB,把它复制到内存的活动目录表里,然后再进行对它的操作。

四、计算?

1.我们知道,可以用位示图法或成组链接法来管理磁盘空间。假定表示一个磁盘地址需要D个二进制位,一个磁盘共有B块,其中有F块空闲。在什么条件下,成组链接法占用的存储空间少于位示图?

26

解:依题意,该磁盘共有B块,这意味采用位示图法来管理磁盘空间时,共需要B个二进制位构成位示图的存储空间;另一方面,现在共有F个空闲块,而表示一个磁盘地址(即一个空闲块)需要D个二进制位。所以在当前条件下,用成组链接法来管理磁盘空间中的F个空闲块时,要用F×D个二进制位的存储空间来管理它们。因此,只要题中所给的D、B、F三者之间满足关系:

B>F×D

就可以保证使用成组链接法占用的存储空间少于位示图。

2.假定磁带的存储密度为每英寸800个字符,每个逻辑记录长为160个字符,记录间隙为0.6英寸。现在有1000个逻辑记录需要存储到磁带上。分别回答: (1)不采用记录成组技术,这时磁带存储空间的利用率是多少?

(2)采用以5个逻辑记录为一组的成组技术进行存放,这时磁带存储空间的利用率是多少? (3)若希望磁带存储空间的利用率大于50%,应该多少个逻辑记录为一组?

解:(1)如果不采用记录成组技术,存放一个逻辑记录,就要有一个记录间隙。因为磁带的存储密度为每英寸800个字符,每个逻辑记录长为160个字符。所以一个逻辑记录占用的磁带长度是:

160/800=0.2(英寸)

一个记录间隙所需要的磁带长度为0.6英寸。所以,磁带存储空间的利用率是: 0.2/(0.2+0.6)=0.25=25%

(2)采用以5个逻辑记录为一组的成组技术进行存放,表示存放5个逻辑记录后,有一个记录间隙。5个逻辑记录占用的磁带长度是: 0.2×5=1(英寸)

这时一个记录间隙所需要的磁带长度仍为0.6英寸。所以,这时磁带存储空间的利用率是: 1/(1+0.6)=0.625=62.5%

(3)若希望磁带存储空间的利用率大于50%,假定应该x个逻辑记录为一组。这就是说,存放x个逻辑记录后,有一个记录间隙。x个逻辑记录占用的磁带长度是:0.2×x(英寸);这时一个记录间隙所需要的磁带长度仍为0.6英寸。所以,磁带存储空间的利用率是: x/(x+0.6)=0.5

解这个一元一次方程式,x=3。也就是说,当把3个以上的逻辑记录组成一组时,磁带存储空间的利用率将大于50%。

27

3.假定有一个名为MYFILE的文件,共有10个逻辑记录,每个逻辑记录长为250个字节。磁盘块尺寸为512字节,磁盘地址需要2个字节表示。把MYFILE采用链接结构存储在磁盘上。 (1)画出该文件在磁盘上的链接结构图(磁盘块号自定)。

(2)现在用户要读文件上包含第1425个字符的逻辑记录。给出完成这一请求的主要工作步骤。 解:(1)由于每个逻辑记录长为250个字节,磁盘块尺寸为512字节。所以,每个磁盘块里可以存放两个逻辑记录,余下的字节用于存放指针,文件总共需要5块。假定系统分配给该文件的磁盘块号是:25、33、10、56、4。于是,该文件在磁盘上的链接结构图如图5-1所示。

文件名 X X文件的目录 首块号 25 尾块号 4 块号: 25 33 10 56 4 2个 逻辑记录 指针: 33 10 56 4 –1 图5-1 计算题3的图示

(2)首先要知道包含第1425字节的逻辑记录应该放在链接结构的第几块。因为一个逻辑记录是250个字节,2个逻辑记录放在一个磁盘块里。所以 1425/(250×2)=2(“/”表示整除运算)

即包含第1425字节的逻辑记录应该放在链接结构的第3块(注意,由于是用整除,所以第1块应该是0)。

其次,文件系统沿着指针,把第3块(也就是块号为56的块)读入内存缓冲区中。 最后,由

1425%(250×2)=425 且

250×1<425<250×2

所以把缓冲区里的第2个记录读到用户指定的内存区里。

第6章习题解答

28

(“%”表示求余运算)

一、填空?

1.信号量的物理意义是当信号量值大于零时表示 可分配资源的个数 ;当信号量值小于零时,其绝对值为 等待使用该资源的进程的个数 。

2.所谓临界区是指进程程序中 需要互斥执行的程序段 。

3.用P、V操作管理临界区时,一个进程在进入临界区前应对信号量执行 P 操作,退出临界区时应对信号量执行 V 操作。

4.有m个进程共享一个临界资源。若使用信号量机制实现对临界资源的互斥访问,则该信号量取值最大为 1 ,最小为 ?(m?1)。

注意,无论有多少个进程,只要它们需要互斥访问同一个临界资源,那么管理该临界资源的信号量初值就是1。当有一个进程进入临界区时,信号量的值就变为0。随后再想进入的进程只能等待。最多的情况是让一个进程进入后,其余(m?1)个进程都在等待进入。于是这时信号量取到最小值:?(m?1)。

5.对信号量S的P操作原语中,使进程进入相应信号量队列等待的条件是Vs<0 。 6.死锁是指系统中多个 进程 无休止地等待永远不会发生的事件出现。 7.产生死锁的4个必要条件是互斥、非剥夺、部分分配和 循环等待 。

8.在银行家算法中,如果一个进程对资源提出的请求将会导致系统从 安全 的状态进入到 不安全 的状态时,就暂时拒绝这一请求。

9.信箱在逻辑上被分为 信箱头 和 信箱体 两部分。

10.在操作系统中进程间的通信可以分为 低级 通信与 高级 通信两种。

二、选择?

1.P、V操作是 A 。

A.两条低级进程通信原语 C.两条系统调用命令

2.进程的并发执行是指若干个进程 B 。

B.两条高级进程通信原语 D.两条特权指令

A.共享系统资源 B.在执行的时间上是重叠的 C.顺序执行 D.相互制约

3.若信号量S初值为2,当前值为?1,则表示有 B 个进程在与S相关的队列上等待。 A.0 B.1 C.2

4.用P、V操作管理相关进程的临界区时,信号量的初值应定义为 C 。

D.3

29

A.?1 B.0 C.1

5.用V操作唤醒一个等待进程时,被唤醒进程的状态变为 B 。

D.随意

A.等待 B.就绪 C.运行 D.完成

6.若两个并发进程相关临界区的互斥信号量MUTEX现在取值为0,则正确的描述应该是 B 。 A.没有进程进入临界区 B.有一个进程进入临界区

C.有一个进程进入临界区,另一个在等待进入临界区 D.不定

7.在系统中采用按序分配资源的策略,将破坏产生死锁的 D 条件。

A.互斥 B.占有并等待 C.不可抢夺 D.循环等待

8.某系统中有3个并发进程,都需要4个同类资源。试问该系统不会产生死锁的最少资源总数应

该是 B 。

A.9 B.10

9.银行家算法是一种 A 算法。

C.11

D.12

A.死锁避免 B.死锁防止 C.死锁检测

10.信箱通信是进程间的一种 B 通信方式。

A.直接 三、问答?

B.间接

D.死锁解除

C.低级 D.信号量

1.试说出图6-1(即教材中第2章的图2-2)所给出的监视程序A和计数程序B之间体现出一种什么关系,是“互斥”还是“同步”?为什么?

程序A: while(1) { A1: 收到监视器的信号; A2: COUNT=COUNT+1; } 图6-1 对两个程序的描述

程序B: while(1) { B1: 延迟半小时; B2: 打印COUNT的值; B3:COUNT=0; }

答:图6-1(即教材中第2章的图2-2)所给出的监视程序A和计数程序B之间体现出的是一种互斥关系,因为在监视程序A里,要对共享变量COUNT进行操作:

COUNT=COUNT+1;

在计数程序B里要对共享变量COUNT进行操作:

打印COUNT的值; COUNT=0;

30

第j售票处要订 第i航班的飞机票 按旅客要求找到Ai P(S) (进入公共数据监界区) Rj=Ai; (取出该航班现有票数) N Rj≥1? (还有这个班次的飞机票?) Y Rj=Rj–1; Ai=Rj; (进行数据修改) 打印“票已售完!” V(S) (退出公共数据监界区) V(S) (退出公共数据监界区) 售出一张飞机票 图6-17 正确的第j售票处的售票程序

第七章习题解答

一、填空

1.一个操作系统的可扩展性,是指该系统 能够跟上先进计算技术发展 的能力。

2.在引入线程的操作系统中,线程是进程的一个实体,是 进程 中实施调度和处理机分派的基本单位。

3.一个线程除了有所属进程的基本优先级外,还有运行时的 当前 优先级。

4.在Windows 2000中,具有1~15优先级的线程称为 可变型 线程。它的优先级随着时间配额的用完,会被强制降低。

5.Windows 2000在创建一个进程时,在内存里分配给它一定数量的页帧,用于存放运行时所需要的页面。这些页面被称为是该进程的“ 工作集 ”。

6.Windows 2000采用的是请求调页法和 集群 法相结合的取页策略,把页面装入到内存的页帧里的。

7.分区是磁盘的基本组成部分,是一个能够 被格式化和单独使用 的逻辑单元。 8. MFT是一个数组,是一个以数组元素为 记录 构成的文件。

41

9.只要是存于NTFS卷上的文件,在MFT里都会有一个 元素 与之对应。

10.在Windows 2000的设备管理中,整个I/O处理过程都是通过 I/O请求包(IRP)来驱动的。

二、选择

1.在引入线程概念之后,一个进程至少要拥有 D 个线程。

A. 4 B.3 C.2 D.1

2.在Windows 2000中,只有 A 状态的线程才能成为被切换成运行状态,占用处理器执行。

A.

备用

B.就绪

C.等待

D.转换

3.Windows 2000是采用 C 来实现对线程的调度管理的。 C.

A. B.

线程调度器就绪队列表

线程调度器就绪队列表、就绪位图

线程调度器就绪队列表、就绪位图、空闲位图

D.线程调度器就绪队列表、空闲位图

4.在Windows 2000里,一个线程的优先级,会在 A 时被系统降低。

A.

时间配额用完 B.请求I/O

C.等待消息

D.线程切换

5.在单处理机系统,当要在进程工作集里替换一页时,Windows2000实施的是 B 页面淘汰策略。

A.

FIFO(先进先出)

B.LRU(最近最久未用)

C.LFU(最近最少用)

D.OPT(最优)

6.在页帧数据库里,处于下面所列 A 状态下的页帧才可以变为有效状态。

A.初始化

B.备用

C.空闲

D.修改

7.当属性值能够直接存放在MFT的元素里时,称其为 B 。

A.

非常驻属性

B.常驻属性

C.控制属性

D.扩

展属性

8.在NTFS文件系统中,文件在磁盘上存储时的物理结构是采用 C 的。

42

A. 连续式 B.链接式 C.索引式 D.组合式

9.在Windows 2000的设备管理中,I/O请求包(IRP)是由 D 建立的。

A.用户应用程序 C.设备驱动程序

B.文件系统驱动程序 D.I/O管理器

10.Windows2000处理机调度的对象是 B 。

A.进程

B.线程

C.程序

D.进程和线程

三、问答

1.何谓操作系统的‘微内核’设计模式?

答:所谓操作系统的‘微内核’设计模式,其中心思想是将操作系统划分成两个部分:系统的非基本部分和系统的核心部分。系统的非基本部分以单一功能的进程形式,在用户态下运行;把最为关键的进程管理、内存管理、以及进程通信等功能,留存下来组成系统的内核,在核心态下运行。 2.用微内核模式构造的操作系统,为什么具有可扩展性、可移植性、以及更好的安全性和可靠性? 答:用微内核模式构造操作系统,要增加新的服务时,是增加到用户空间中,而不是修改内核。当内核确实需要变动时,因为内核本身很小,因此所要做的修改也会很小。所以说,这样的操作系统能够跟上先进计算技术的发展,具有可扩展性;由于很小,因此稍加改动,就能够从一种硬件平台移到另一种硬件平台,从而具有可移植性;再有,绝大多数服务都运行在用户态,不以内核进程的面目出现,即使一种服务失败,也不会导致整个系统的崩溃或瘫痪,因此使内核具有更好的安全性和可靠性。 3.什么是对称多处理器系统(SMP)?

答:一个计算机系统是所谓的“对称多处理器系统(SMP)”,即该系统具有多个处理器,每个处理器都运行同一个操作系统的拷贝,这些拷贝根据需要可以互相通信。 4.何谓“处理机饥饿”线程?为何要极大地提升它的优先级? 答:所谓“处理机饥饿”,是指在就绪队列里长期等待而一直没有得到运行机会的那种线程。由于它长时间的等待,得不到CPU,这显然是不公平的。为了平衡线程间的这种关系,Windows 2000就专门有一个系统线程,定时检查是否存在这样的线程(比如,它们在就绪队列里已经超过了300个时钟中断间隔,相当3~4秒钟)。如果有,就把该线程的优先级一下提升到15,分配给它长度为正常值两倍的时间配额。在它用完这个时间配额后,其优先级立即衰减到它原来的基本优先级。 5.何为“置页策略”?Windows 2000具体是怎么做的? 答:当缺页中断时,系统必须确定把虚拟页面放入到物理内存的什么地方。这就是所谓的“置页策略”。 在Windows 2000,内存中可分配的页帧对象,只能从页帧号数据库的初始化帧链表、空闲帧链表、后备帧链表和修改帧链表里得到。具体的做法是:

(1)在要求存储分配时,如果需要的是一个零初始化的页帧,那么系统首先试图从初始化帧链表中得到一个可分配的页帧;如果这个链表为空,则从空闲帧链表中选取一帧并将其初始化;如果空闲帧链表也为空,那么就改为从后备帧链表中选取一帧并将其初始化;如此等等。

(2)如果所需要的并不是一个零初始化页帧,那么首先去查看空闲帧链表;如果空,则去查看后备帧链表。在决定要把后备帧链表里记录的一帧分配出去之前,必须从该元素回溯,找到进程页表里

43

相关的表项,清除其里面的“页帧号”,断绝这个页表项与该页帧的联系。这样,才能保证分配的安全。

(3)如果必须要把一个处于修改状态的页帧分配出去,那么首先要将该页帧的内容写入磁盘,然后将它链到后备帧链表里去,以便使用。

6.为什么要把一个磁盘划分为若干个分区:

答:把磁盘格式化为若干个分区,主要的目的有三个:第一,使磁盘初始化,以便将其格式化后用于存储数据;第二,通过一个个分区,可以将不同的操作系统分开,以保证多个操作系统可以在同一个磁盘上得到正常的运行;第三,便于更好地对磁盘进行管理,达到充分利用磁盘空间的目的。

7.什么是NTFS文件系统中的VCN和LCN? 答:在NTFS文件系统中,簇是文件存储的分配单位。系统按照簇的尺寸来划分文件的虚拟空间,这样形成的顺序号,称为虚拟簇号,即VCN;把整个卷中所有的簇从头到尾进行顺序编号,称为逻辑簇号,即LCN。 8.在NTFS中是如何实现其可恢复性的? 答:为了实现可恢复性,NTFS在主控文件表(MFT)里设置了一个日志文件。在系统运行过程中,随时向日志文件里存储更新记录,定时地向日志文件里存储检查点记录、事务表记录以及脏页表记录。为系统的恢复积累所需要的信息。

在系统崩溃而重新启动时,NTFS将对日志文件进行分析扫描、重做扫描和撤消扫描,完成重做和撤消,使系统恢复到发生崩溃之前。 9.Windows 2000为什么采用两级中断处理方式?

答:Windows 2000采用的是中断服务程序(ISR)和延迟过程调用程序(DPC)两级处理中

断。之所以这样,是为了提高系统的并行工作能力,防止因中断服务程序占用较长的处理机时间,引起不必要的阻塞。因此,中断服务程序(ISR)部分执行尽可能少的关键性操作,并运行在高中断请求级上;余下的中断处理部分称为延迟过程调用程序(DPC),运行在低中断请求级上。

四、计算

1.FAT16文件系统的簇号应该用多少个二进制位标识?如果一簇的尺寸最大为16KB,那么这

种卷的尺寸最多为多少?

答:由FAT16表明,这种文件系统的簇号应该用16个二进制位来标识。也就是说,这种卷最多可以含216(=65536)个簇。题目中给出一个簇的最大尺寸为16KB,因此这种卷的最大尺寸为216*16KB=1GB。

第8章习题解答

一、填空

1.Linux中,可以同时并行工作的进程个数,由符号常量 NR_TASKS 所限定。通常,它被定义

为512。

2.在Linux中,进程调度被分为 实时进程调度 和非实时进程调度两种。

3.当进程运行时出现了系统调用或中断事件,而要去执行操作系统内核的程序时,进程的运行模式就从用户模式转为 核心 模式。

44

4.Linux存储管理的特点是采用在 各个分区 里进行分页的存储管理技术。

5.采用在分区里分页的虚拟存储管理技术,有利与实行存储 保护 和共享。 6.Ext2中块组里的索引节点位图,是用来管理块组中的 索引节点 的,它占用一个盘块。 7.Ext2中块组里的盘块位图,是用来管理块组中的 盘块 的,它占用一个盘块。 8.Linux中的进程描述符,就是通常所说的 进程控制块 。 9.Linux内核中,利用控制寄存器来控制硬设备完成输入/输出任务的软件,叫做设备驱动程序,有时也称为 设备驱动器 。 10.网络是一种经过 网络接口 与主机交换数据的设备。

二、选择

1.下面所列的名称中, B 不是Linux进程的状态。

A. 僵死状态 B.休眠状态 C.可中断状态 D.可运行状态

2.Linux的SCHED_RR调度策略,适合于 C 。

A.运行时间短的实时进程 C.运行时间长的实时进程

B.交互式分时进程 D.批处理进程

3.下面列出的进程间通信方法中, A 不被用来在进程之间传递具体数据。 A. 信号 B.消息队列 C.共享存储区 D.管道 4.Linux在实行虚拟地址转换时,采用的是 B 级页表结构。 A. 一 B.二 C.三 D.四 5.在Ext2中,下面的说法, D 是错误的。 A. 每个文件都有一个inode节点

B.目录文件有inode节点

C.特别文件有inode节点 D.打印机没有inode节点

6.在Linux中, A 在文件系统中没有相应的inode节点。 A. 网络设备 B.打印机 7.按照文件的内容,Linux把文件分成 D 三类。 A.系统文件、用户文件、设备文件

C.终端 D.磁盘

B.一般文件、流式文件、记录文件

C.目录文件、流式文件、设备文件 D.普通文件、目录文件、特别文件

8.在Linux中,对于页表,下面的说法里 C 是正确的。

A.页表必须占用连续的内存空间 B.页表必须全部在内存

C.页表不必全部在内存,可以不占用连续的内存空间 D.页表必须全部在内存,但可以不占用连续的内存空间

45

三、问答

1.何谓在分区里进行分页的虚拟存储管理技术?

答:所谓在分区里进行分页的虚拟存储管理技术,即是把用户程序按照其逻辑结构,把虚拟存储空间划分成若干个分区,然后在分区里面分页。由于通常都是按照程序的逻辑结构来划分分区,因此这种存储管理技术,不仅具有页式存储管理的特点(各页可以存放在内存中不连续的页里),而且有利于进行存储保护和共享。 2.Linux采用的多级页表技术,有什么优点? 答:按照分页式存储管理,页表必须占据内存的连续存储区。由于Linux提供的虚拟地址空间,最大可以有1M个页面。因此,一个页表最大就可以有一百万个表项。把它存放在一个连续的内存区里,不利于存储空间的充分利用。于是,Linux就将页表也按页来划分,并形成页表的索引。这样,大的页表就不必占用连续的内存空间了,从而提高了内存空间的利用率。 3.如书上的图8-12(a)的位示图里,如果现在第36内存块被释放,那么它是否应该和它前面的第34、35块以及它后面的第37、38、39、40块,合并成为一个大的空闲区?为什么? 答:不应该与它们合并。在伙伴系统里,只有尺寸相同、又相邻接的空闲区才能进行合并。第36内存块是由独个内存块构成的空闲区,第34、35块是由两个块构成的空闲区,第37、38、39、40块是由四个块构成的空闲区。既然它们的尺寸不同,因此不能合并。 4.在Ext2中,若有一个分区大小为8GB,盘块的尺寸是4KB。试问,该文件卷最多有多少磁盘块?最多有多少个块组? 答:由于盘块的尺寸是4KB,共有8*4K=32K个二进制位。这表明,在一个块组里,用一个盘块构成盘块位图时,最多可以管理32K个磁盘块,也就是一个块组里最多可以有32K个磁盘块。现在分区尺寸为8GB,盘块尺寸为4KB,所以整个文件卷有8GB/4KB=2M个盘块;有2M/32K=64个块组。 5.试画出Linux巨型文件的索引结构图。 答:Linux巨型文件的索引结构图如下:

6.模仿书上图8-9,画出Linux的三级页表式地址转换过程图。

答:Linux的三级页表式地址转换过程图如下:

46

7.Linux的每个进程都有若干个VMA,且两个VMA可以不连续。即使两个VMA连续,它们也必须分开管理吗?为什么? 答:即使两个VMA连续,它们也必须分开管理。这是因为两个VMA实施的存储保护可以不同,不可能进行统一的管理。 8.试描述在Linux中,你如何能够根据给出的文件名称,找到该文件具体存放在磁盘的哪些磁盘块上的? 答:首先根据文件名称查文件目录,得到该文件的inode节点编号。再由inode节点编号,在索引节点表里找到该文件的索引节点。最后从索引节点里的i_block[ ]数组,就可以得到该文件具体存放在哪些磁盘块里。

9.模仿书上图8-23所示的字符设备数据结构间的关系,画出块设备管理中blkdevs数组、device_struct结构、block_device_operations结构间的关系示意图。

答:块设备数据结构间的关系示意图如下:

四、计算 1.如果在Linux里,某段小于4MB。那么它虚拟空间的页表索引有多少表项?它有多少个页表?构成页表索引和页表,总共需要开销多少内存空间?

答:对于Linux来说,它的页表索引最大有1024个表项,每个表项对应一个页表。每个页表有

47

1024个表项,一个表项描述了虚拟空间中的一页与内存块(4KB)的对应情况。因此,一个页表可以用来描述4MB大小的空间。由于现在已知段的长度小于4MB,即是虚拟地址空间小于4MB。所以,它的页表索引需要有1个表项,这个表项指向唯一的一个页表。

虽然页表索引只有1个表项,但必须占用一页的存储量。另外,一个页表要占用一页的存储量。所以,小于4MB的段,要开销两个块的存储空间。

2.假设页面的尺寸为4KB,一个页表项用4B。若要求用页表来管理地址结构为36位的虚拟

地址空间,并且每个页表只占用一页。那么,采用多级页表结构时,需要几级才能达到管理的要求?

答:36位的虚拟地址空间尺寸为236=16GB。已知页面的尺寸为4KB,一个页表项用4B,每个页表只占用一页。这表示一个页表有1024个表项,可以管理1024(=210)个页面,即管理4M(=222)大小的虚存空间。根据题意,第1级只能是一个页表,它可以管理K个页面(因为一个页表里有1024个表项)。K个页面的存储量是4MB。因此,用一级页表不能管理16GB的虚拟空间。于是进入第2级;第2级有K个页表,可以管理K*K个页面。K*K个页面的存储量是

4GB。显然用二级页表不能管理16GB的虚拟空间。于是进入第3级;第3级有K*K个页表,可以管理K*K*K个页面。K*K*K个页面的存储量是超过了16GB,达到了242。因此,本题需要使用三级页表才能够管理236的虚拟空间。

3.Linux的空闲区队列表free_area总共可以有11个队列。试问,在第11个队列里排队的每一个空闲区里,包含有多少个连续的内存块?

答:Linux的空闲区队列表free_area里,排在每个队列里的空闲区中所含连续块的数目,是按2的次幂递增的。在第1个队列里,空闲区中所含连续块的数目为20;在第2个队列里,空闲区中所含连续块的数目为21;在第3个队列里,空闲区中所含连续块的数目为22;??。因此,在第11个队列里,空闲区中所含连续块的数目为210。即在这个队列里,每个空闲区中所含连续块的数目为1024块!

4.Linux的Ext2文件系统,其巨型文件最多可以有多少个磁盘块?

答:Ext2文件系统的巨型文件,最多可以有(b/4)*(b/4)*(b/4)+(b/4)*(b/4)+(b/4)+12个磁盘块。

第9章习题解答

一、填空?

1.MS-DOS操作系统由BOOT、IO.SYS、MSDOS.SYS以及 COMMAND.COM 所组成。 2.MS-DOS的一个进程,由程序(包括代码、数据和堆栈)、 程序段前缀 以及环境块三部分组成。

3.MS-DOS向用户提供了两种控制作业运行的方式,一种是 批处理方式 ,一种是命令处理方式。

48

4.MS-DOS存储管理规定,从地址0开始每16个字节为一个“ 节 ”,它是进行存储分配的单位。

5.MS-DOS在每个内存分区的前面都开辟一个16个字节的区域,在它里面存放该分区的尺寸和使用信息。这个区域被称为是一个内存分区所对应的 内存控制块 。

6.MS-DOS有4个存储区域,它们是: 常规内存区 、上位内存区、高端内存区和扩充内存区。

7.“ 簇 ”是MS-DOS进行磁盘存储空间分配的单位,它所含扇区数必须是2的整数次方。 8.当一个目录表里仅包含“.”和“..”时,意味该目录表为 空 。

9.在MS-DOS里,用文件名打开文件,随后就通过 句柄 来访问该文件了。 10.在MS-DOS里,把 字符设备 视为设备文件。

二、选择?

1.下面对DOS的说法中, B 是正确的。

A.内、外部命令都常驻内存 B.内部命令常驻内存,外部命令非常驻内存 C.内、外部命令都非常驻内存 D.内部命令非常驻内存,外部命令常驻内存 2.DOS进程的程序,在内存里 D 存放在一起。

A.总是和程序段前缀以及环境块 B.和谁都不 C.总是和进程的环境块 D.总是和程序段前缀 3.MS-DOS启动时能够自动执行的批处理文件名是: C 。

A.CONFIG.SYS B.MSDOS.SYS C.AUTOEXEC.BAT D.COMMAND.COM 4.下面所列的内存分配算法, D 不是MS-DOS采用的。

A.最佳适应法 B.最先适应法 C.最后适应法 D.最坏适应法 5.在MS-DOS里,从1024K到1088K的存储区域被称为 D 区。 A.上位内存 B.扩展内存 6.MS-DOS的存储管理是对 A 的管理。

C.扩充内存

D.高端内存

A.常规内存 B.常规内存和上位内存 C.常规内存和扩展内存 D.常规内存和扩充内存 7.在下面给出的MS-DOS常用扩展名中, B 不表示一个可执行文件。 A..exe B..obj C..com 8.下列四项中, D 不是MS-DOS文件分配表的功能。

D..bat

49

A.记录文件的链接结构 B.进行磁盘存储空间的管理 C.存放簇之间的链接指针 D.反映文件间的共享情况 9.下面不能作为MS-DOS设备文件的设备是: B 。 A.显示器 B.磁盘 10.MS-DOS的设备文件是指 C 。 A.字符设备和块设备 B.块设备

C.打印机

D.键盘

C.字符设备 D.NUL设备

三、问答?

1.什么是DOS的内部命令,什么是DOS的外部命令?

答:MS-DOS把命令处理模块(COMMAND.COM)中那些功能简单、使用频率较高的操作命令称为“内部命令”。内部命令程序都在COMMAND.COM暂驻内存模块里。只要暂驻内存模块在内存中,系统接收到一条内部命令时,就能够直接调用它并执行。

MS-DOS把命令处理模块(COMMAND.COM)中那些使用频度较小的操作命令称为“外部命令”。它们都是以文件的形式存放在磁盘上。当在内存的暂驻内存模块接收到一个外部命令时,必须先将它从磁盘读入内存,然后才能被执行。

2.试勾画出DOS启动过程中四大部分的相互关系。谁最先运行?谁又把谁装入到内存?最后CPU的控制权落在了谁的手里?

答:MS-DOS由一个引导程序(BOOT)和3个程序模块(IO.SYS和ROM-BIOS、MSDOS.SYS、COMMAND.COM)组成,其间的层次关系,如教材中的图8-1所示。

BOOT是一个极短的程序。系统初启时,它最先投入运行。随后检查系统盘根目录下的头两个文件是否是IO.SYS和MSDOS.SYS。如果为真,则把IO.SYS装入到内存,结束引导任务,转而执行IO.SYS里的系统初始化程序。

IO.SYS及ROM-BIOS是MS-DOS的输入/输出管理模块。其中在系统盘上的IO.SYS,是进行输入/输出的接口模块;固化在ROM里的ROM-BIOS,是一个个具体的设备驱动程序。在引导程序将IO.SYS装入内存、转而执行IO.SYS里的系统初始化程序后,就由它负责调入MSDOS.SYS;负责装入COMMAND.COM模块。所以,MSDOS.SYS以及COMMAND.COM都是由IO.SYS装入到内存的。 COMMAND.COM是MS-DOS操作系统与用户之间的接口。在系统启动后,CPU的控制权最后落在了它的手里,由它接收用户输入的各种DOS命令,解释后加以执行。

3.MS-DOS不支持进程间的并发执行,进程之间只能够串行执行。那么它是怎样保证进程之间顺利切换的呢?

答:在进程的程序段前缀里,有返回时的地址,有调用者的PSP地址(即指向调用进程的进程控制块指针),这是保证进程之间顺利切换的两个重要的信息。对于DOS来说,创建一个新进

50

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

Top