操作系统概论习题库带答案章节练习题复习题思考题章末测试题项目1-8章全_第1页
操作系统概论习题库带答案章节练习题复习题思考题章末测试题项目1-8章全_第2页
操作系统概论习题库带答案章节练习题复习题思考题章末测试题项目1-8章全_第3页
操作系统概论习题库带答案章节练习题复习题思考题章末测试题项目1-8章全_第4页
操作系统概论习题库带答案章节练习题复习题思考题章末测试题项目1-8章全_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第1章操作系统概论课后习题解答

1.什么是操作系统?它有哪些基本功能与基本特征?

【解答】操作系统是一个软件系统,它控制和管理计算机系统内各种硬件和软件资

源,提供用户与计算机系统之间的接口。

操作系统的功能有:

(1)提供用户接口

为方便用户使用计算机系统,操作系统提供了用户接口。操作系统提供两个级别的接

□:作业控制级接口(通常又称为命令接口):提供一组命令供用户直接或间接控制自己

的作业;程序级接口:提供一组系统调用供用户程序和其他系统程序调用。

(2)管理计算机资源

计算机系统中的资源包括硬件资源和软件资源。硬件资源有:处理机、存储器、外部

设备;软件资源有:程序和数据。现代计算机系统一般采用多任务并发执行方式,而且有

的计算机系统由多个用户同时联机使用。这使得计算机的资源不是由一个程序在运行时独

占使用,而是由多个并发运行的程序共享使用。如果由各并发运行的程序自己决定如何使

用资源,则会各行其是,造成冲突,混乱,使系统无法顺利高效运行。因此,要有一个地

位高于各应用程序之上的软件来进行自动的统一的管理,这个软件就是操作系统。操作系

统的目标之一就是统一管理分配计算机系统资源,在保证各并发执行的应用程序顺利运行

的前提下提高资源利用率。包括处理机管理、存储器管理、设备管理、文件管理。

操作系统的特性有:

(1)并发

在单处理机系统中,并发性是指宏观上有多道程序在同时运行,但在微观上是交替执

行的。多道程序并发执行能提高资源利用率和系统吞吐量。

(2)共享

共享是指计算机系统中的资源被多个并发任务共同使用。

(3)异步

在多道程序系统中,多进程并发执行,但在微观上,进程是交替执行的,因此进程以

“走走停停”的不连续方式运行。由于并发运行环境的复杂,每个进程在什么时候开始执

行,何时暂停,以怎样的速度向前推进,多长时间完成,何时发生中断,都是不可预知

的。我们称此种特征为异步性。

(4)虚拟

在操作系统中,虚拟指的是通过某种技术把一个物理实体映射为多个逻辑实体,用户

程序使用逻辑实体。逻辑实体是用户感觉上的实际不存在的事物。例如在分时系统中,虽

然只有一个CPU,但是在分时系统的管理下,每个终端用户都认为自己独占一台主机。此

时,分时操作系统利用分时轮转策略把一台物理上的CPU虚拟为多台逻辑上的CPU。

2.操作系统发展的动力是什么?

【解答】推动操作系统发展的主要动力有:

•2•操作系统实训

(1)不断提高计算机资源利用率的需要。

(2)方便用户的需要。

(3)器件不断更新换代的需要。

(4)计算机体系结构不断发展的需要。

3.批处理系统的目标是什么?

【解答】批处理系统旨在实现作业步之间以及作业之间的自动过渡,减少作业控制及

作业过渡时的手工操作,从而提高计算机系统的工作效率。

4.为什么要引入多道程序并发执行技术?

【解答】在单道批处理系统中任何时刻只有一道作业在内存中,在一道作业的运行过

程中,输入输出和计算操作是串行的,因此导致I/O设备和CPU串行工作,从而导致总有

空闲资源,在I/O设备工作时CPU空闲,在CPU工作(指进行计算工作)时I/O设备空

闲。即使是在脱机批处理系统中,内存和输入输出磁带之间的数据传输与CPU的计算工作

也是串行的。

为了进一步提高资源利用率,从而最终提高系统吞吐量(系统在单位时间内完成的总

工作量),在60年代中期引入了多道程序并发执行技术,从而形成了多道批处理系统。

多道程序并发执行的基本思想是:在内存中同时存放多道程序,在操作系统的控制下交替

执行。在多道批处理系统中,用户提交的作业都先存放在外存中并排成一个队列,称为后

备队列,然后由作业调度程序按一定的策略从后备队列中选择若干作业调入内存,使它们

并发运行,从而共享系统中的各种资源,提高资源利用率,最终提高系统吞吐量。

5.试分析单道与多道批处理系统的优缺点。

【解答】批处理系统实现了作业步之间以及作业之间的自动过渡,从而提高了计算机

系统的工作效率。多道批处理系统使得CPU与外部设备并行工作,提高了资源利用率。但

是批处理系统缺少人机交互,在作业运行过程中不能人工干预,使得用户不能灵活控制作

业过程。

6.为什么要引入分时操作系统?

【解答】多道批处理系统充分地提高了计算机资源利用率和系统吞吐量,但是它缺少

人机交互能力,即用户把作业提交给计算机系统后,就完全脱离了自己的作业,不能干预

作业的运行,因此不能及时修正作业运行过程中出现的错误,只有当作业运行结束后才能

脱机修正错误,因此用户使用不方便。对一个程序员来说,每当他编写好一个程序时,都

需要上机进行调试。由于新编写的程序难免有些错误或不当之处,因此希望能够进行人机

交互以便能及时地修改错误,即用户希望可以随意干预、控制自己作业的运行流程。

因此,人们开发出交互式分时操作系统。在分时系统中,一台主机可以连接若干终端,

每个用户可以通过终端与主机交互。用户可以方便地编辑和调试自己的程序,向系统发出

各种控制命令,系统及时地响应用户的请求,输出计算结果以及出错、告警、提示信息。

7.分时系统是怎样实现的?

【解答】在分时系统中,虽然若干用户通过各自的终端共享一台主机,但是在操作系

统的管理下,每个用户都感觉自己在独占一台主机。分时系统采用的策略是:基于主机的

高速运行,分时为终端用户服务。即主机按一定次序轮流为各终端用户服务,每个用户一

次仅使用主机很短的一段时间(称为时间片,毫秒级),在分得的时间片内若用户没有完

成工作则暂时中断,将处理机分配给下一个用户。虽然在一个用户使用主机时其他用户处

于等待状态,但是等待的时间很短,用户感觉不到,从而每个用户的各次请求都能得到快

速响应,给每个用户的印象是:他独占一台计算机。

8.实时操作系统应用在哪些场合?

【解答】实时系统应用于两个领域:

(1)实时控制

当把计算机用于生产过程的控制,以形成以计算机为中心的控制系统时,系统要求能

实时采集现场数据,并对所采集的数据进行及时处理,进而自动地控制相应的执行机构,

使某些(个)参数(如温度、压力、方位等)能按预定的规律变化。类似地,也可将计算

机用于武器的控制,如火炮的自动控制系统、飞机的自动驾驶系统,以及导弹的制导系统

等。通常把要求进行实时控制的系统称为实时控制系统。

(2)实时信息处理

通常,我们把要求对信息进行实时处理的系统,称为实时信息处理系统。该系统由一

台或多台主机通过通信线路连接成百上千个远程终端,计算机接收从远程终端发来的服务

请求,对数据进行检索和处理,并及时将结果反馈给用户。典型的实时信息处理系统有:

飞机订票系统、情报检索系统。

9.实时系统有哪些特点?

【解答】实时系统的特征:

(1)及时性

系统对外部实时信号必须能及时响应,响应的时间间隔要足以能够控制发出实时信号

的那个环境。

(2)可靠性

由于实时系统的应用环境特殊,在实时系统中,任何软硬件故障都可能给系统带来严

重的后果。必须采取相应的软硬件措施,以保证系统高度可靠。常用的硬件措施如采用双

工机制,即准备两台功能相同的计算机,将其中一台作为主机,另一台作为后备机。后备

机与主机并行工作,但不产生控制输出,若主机发生故障,后备机立即代替主机继续工

作,保证系统不间断运行。

10.操作系统的结构有哪些类型?分别阐述。

【解答】一般而言,操作系统有两种结构:层次结构、微内核结构。

(1)层次结构

层次结构操作系统的设计思想是:按照操作系统各模块的功能和相互依存关系,把系

统中的模块分为若干层次,其中任一层(除底层模块)都建立在它下面一层的基础上,每

一层仅使用其下层所提供的服务。

(2)微内核结构

微内核结构是20世纪90年代发展起来的。其基本思想是:把操作系统中的基本功能

模块组织为微内核,其他功能模块尽量放到核外,通过调用微内核来实现。微内核结构是

对传统内核的提炼,它有如下优点:

简化内核代码维护工作

建构灵活

•4•操作系统实训

安全性高

方便移植

11.处理机管理有哪些主要功能?它们的主要任务是什么?

【解答】(1)处理机调度

要在单处理机系统中并发运行多道程序,必须按照一定策略对处理机进行调度,就像

在一条铁路上运行多列火车一样,需要进行调度,要决定在某个时刻把处理机分配给哪个

进程进行计算操作。这是处理机管理的核心任务。

(2)进程控制

进程是程序的一次动态运行过程,在其生存期内从产生到消亡经过了一系列状态的转

换。在多道程序并发运行的系统中,通常不会让一道程序独占计算机全部资源不间断地运

行完毕,而是让多个进程交替运行。这样进程在其生存期内肯定有多种状态,最起码有运

行和不运行两种状态。进程的状态数量是操作系统按照一定的管理策略来设置的,进程状

态转换是操作系统实施进程管理的一个基本操作。操作系统提供了一些原语来对进程状态

的转换进行控制。

(3)进程通信

在多道程序环境下,可以由系统为一个应用程序建立多个进程,这些进程相互合作去

完成某一共同任务,它们之间要交换信息一一进程通信。为保证进程之间正确通信,操作

系统提供了一系列通信原语供应用进程调用。

(4)进程同步

在多道程序系统中,多个并发进程处在同一运行环境中,必然存在着某种联系,如进

程之间的资源共享和进程之间的协作。操作系统必须采用一定策略来处理并发进程之间的

制约关系,使各进程能顺利运行,即使各进程同步协调运行。操作系统中设置了同步机制

来完成此功能。

12.内存管理有哪些主要功能?它们的主要任务是什么?

【解答】操作系统提供如下存储管理功能:

(1)内存分配

内存分配的任务是为每道程序分配一定的存储空间。往往会出现多道程序对内存的需

求总和超过实际内存空间,因此在制定分配策略时应以提高内存利用率为目标。

(2)地址转换

程序必须装入内存才能被CPU访问到并执行,程序指令的操作对象——数据也必须装

入内存才能被程序访问,程序和数据装入内存后占据一定的物理内存地址空间,程序的逻

辑地址空间往往和物理地址空间不重合,而程序最终是在物理地址空间中运行,即访问程

序中的指令和数据时是按其所在的实际内存单元的地址来进行的,所以要正确地访问数据

和指令,必须把指令中的逻辑地址转换成相应的物理地址,这一操作称为地址转换,又称

为“重定位”。

(3)内存保护

内存保护的任务是确保每道用户程序都在自己的内存空间中运行,互不干扰。即,不

允许用户程序访问操作系统的程序和数据(只可以通过系统调用访问操作系统),也不允

许访问(存取)其他程序的存储空间。

(4)内存扩充

在多道程序环境中,内存资源比较紧张,往往会出现多道程序对内存的需求总和超过

实际内存容量的情况。因此在采用合适的内存分配策略以提高内存利用率的基础上,要采

用内存扩充技术来为多道程序运行提供充足的内存空间。这里说的内存扩充是从逻辑角度

而言的,不是指添加物理内存,扩充物理内存容量。

13.设备管理有哪些主要功能?它们的主要任务是什么?

【解答】

(1)设备分配

根据用户程序的I/O请求,为之分配所需的设备。如果在I/O设备和CPU之间还存在

着设备控制器和I/O通道时,还要为分配出去的设备分配相应的控制器和通道。

(2)缓冲管理

进程在运行过程中要和输入输出设备之间传输数据,在进程的数据存储区和I/O设备

控制器之间直接传输数据效率较低或者无法进行,因此操作系统提供了缓冲技术。缓冲管

理的任务是解决CPU和外设速度不匹配的矛盾,使它们能充分并行工作,从而提高CPU

和I/O设备的利用率,最终达到提高系统吞吐量的目的。

(3)设备驱动

设备驱动程序实现CPU与设备控制器之间的通信。由CPU向设备控制器发出I/O指

令,由设备控制器驱动相应设备进行I/O操作;当I/O操作完成时,设备控制器向CPU发

送中断信号,由相应的中断处理程序进行处理。

(4)设备无关性

又称设备独立性。即用户编写的应用程序与实际使用的物理设备无关。用户编写的应

用程序中不直接指定使用哪台具体的物理设备,而是使用操作系统提供的逻辑设备,然后

由操作系统把用户程序中使用的逻辑设备映射到具体的物理设备,实施具体的I/O操作。

这样做的一个明显好处是用户应用进程的运行不取决于某台具体物理设备的状态,而由操

作系统为其分配一台合适的设备完成I/O操作。这样会避免出现有设备可用但进程却无法

运行的情况.

14.文件管理有哪些主要功能?它们的主要任务是什么?

【解答】文件管理具体有如下功能:

(1)文件存储空间的管理

为新文件分配所需的外存存储空间,回收释放的文件存储空间。在进行文件存储空间

的分配和回收时,要考虑到提高外存空间的利用率和提高文件的存取速度。

(2)目录管理

为了能方便地在外存中找到所需要的文件,要为外存中存放的文件建立目录,每个文

件都对应着一个目录项。目录项包含文件名、文件属性、文件在外存中的存放位置等用户

和操作系统所需信息。目录管理的主要任务是建立外存中文件的目录结构,实现用户程序

对文件的“按名存取”。文件目录项要按一定结构组织起来,以便于操作系统检索。在

UNIX/LINUX中采用了树型目录结构。

(3)文件操作

包括文件的创建、删除、打开、关闭、读、写等。这其实是一组文件系统功能调用,

•6•操作系统实训

在用户程序中当要对文件进行操作时,可以调用文件系统提供的这些文件操作功能。

(4)文件的存取权限控制

为了防止系统中的文件被非法窃取和破坏,操作系统提供了文件的存取权限控制功

能,以防止未被授权的用户存取文件,防止用户以不正确的方式存取文件。当用户对某一

文件操作时,首先检查其对该文件的操作权限,如果该用户具有对该文件的此种操作权

限,则允许该用户存取该文件,否则拒绝用户对该文件的此种操作。

15.操作系统提供了哪些人机接口?

【解答】为方便用户使用计算机系统,操作系统提供了用户接口。操作系统提供两个

级别的接口:

(1)作业控制级接口(通常又称为命令接口):提供一组命令供用户直接或间接控

制自己的作业。作业级接口由一组用户可直接使用控制作业运行的命令和命令解释器构

成。如:在DOS系统中有内部命令和外部命令,有命令解释器。该接口又

可进一步分为联机用户接口和脱机用户接口。

联机用户接口:由一组键盘字符命令(或鼠标命令)和命令解释器组成,使用户可以联

机交互方式使用计算机。

脱机用户接口:操作命令的形式为作业控制语言,用户以脱机批处理方式使用计算

机。用户对作业流程的控制意图是利用作业控制语言书写成一份作业说明书来表达的。

(2)程序级接口:提供一组系统调用供用户程序和其他系统程序调用。程序级接口

由一组系统功能调用命令以及完成这些命令的程序模块组成。为方便用户编程,提高编程

效率,规范编程,操作系统提供了完成某些通用功能的程序,供用户在开发应用程序时调

用。不同的操作系统提供了不同的系统功能调用以及调用方式。

第2章文件管理习题解答

i.什么是文件和文件系统?文件系统有哪些功能?

【解答】文件是具有符号名而且在逻辑上具有完整意义的信息项的有序序列。

文件系统是指操作系统系统中实现对文件的组织、管理和存取的一组系统程序,它实

现对文件的共享和保护,方便用户“按名存取”。

文件系统的功能“

(1)文件及目录的管理。如打开、关闭、读、写等.

(2)提供有关文件自身的服务。如文件共享机制、文件的安全性等。

(3)文件存储空间的管理。如分配和释放。主要针对可改写的外存如磁盘。(4)提

供用户接口。为方便用户使用文件系统所提供的服务,称为接口。文件系统通常向用户提

供两种类型的接口:命令接口和程序接口。不同的操作系统提供不同类型的接口,不同的

应用程序往往使用不同的接口。

2.Linux文件可以根据什么分类?可以分为哪几类?各有什么特点?

【解答】在Linux操作系统中,文件可以根据内部结构和处理方式进行分类。

在Linux操作系统中,可以将文件分为普通文件、目录文件、特别文件三类。

各类文件的特点是:

普通文件:由表示程序、数据或正文的字符串构成的文件,内部没有固定的结构。这

种文件既可以是系统文件,也可以是库文件或用户文件。

目录文件:由文件目录构成的一类文件。对它的处理(读、写、执行)在形式上与普

通文件相同。

特别文件:特指各种外部设备,为了便于管理,把所有的输入/输出设备都按文件格式

供用户使用。这类文件对于查找目录、存取权限验证等的处理与普通文件相似,而其他部

分的处理要针对设备特性要求做相应的特殊处理。

应该指出,按不同的分类方式就有不同的文件系统。

3.什么是文件的逻辑结构?什么是文件的物理结构?Linux文件系统分别采用什么样

的结构?有什么优点和缺点?

【解答】文件的逻辑结构:用户对文件的观察的使用是从自身处理文件中数据时采用

的组织方式来看待文件组织形式。这种从用户观点出发所见到的文件组织方式称为文件的

逻辑组织。

文件的物理结构:从系统的角度考察文件在实际存储设备上的存放形式,又称为文件

的存储结构.

在Linux系统中,所有文件的逻辑结构都被看作是流式文件,系统不对文件进行格式

处理。

在Linux系统中,文件的物理结构采用的是混合多重索引结构,即将文件所占用盘块

的盘块号,直接或间接地存放在该文件索引结点的地址项中。

在Linux系统中,采用混合索引结构的优点是,对于小文件,访问速度快;对于大中

型的文件,其文件系统也能很好的支持;缺点是会带来因为多次访问磁盘而影响速度。

4.目前广泛用的目录结构形式是哪种?它有什么优点?

【解答】广泛用的目录结构形式是树型目录结构。

优点:

(1)能有效的提高对目录的检索速度。

(2)允许文件重名。允许用户在自己的分目录中,使用与其他用户相同的文件名。

(3)便于实现文件共享。

5.常见的文件存储空间管理有哪几种?各自有什么特点?Linux系统的存储空间管理

采用什么方法?

【解答】常见的文件存储空间管理有:空闲空间表法、空闲块链接法、位示图法、空

闲块成组链接法。

空闲空间表法:所有连续的空闲盘块在表中占有一项,其中每一个空闲表项包括序

号、空闲区的第一个盘块号、该区的空闲盘块数及对应的空闲物理块号。利用该表进行盘

块的分配和文件删除时盘块的回收。

空闲块链接法:将磁盘上的所有盘块拉成一条链,用一个指针指向第一个空闲块,而

各个空闲块中都含有下一个空闲区的块号,最后一块的指针项记为NULL,表示链尾。分

配和释放盘块都在链头进行。

位示图法:利用一串二进制位的值来反映磁盘空间的分配情况,每个盘块都对应一

•8•操作系统实训

位。若盘块空闲,对应位为0;若盘块已分配出去,则对应位为1。

空闲块成组链接法:把所有空闲盘块按固定数量分组,组与组之间形成链接关系,最

后一组的块号通常放在内存的一个专用栈中。因而对盘块的分配和回收都在栈中进行。

Linux系统的存储空间管理采用空闲块成组链接法。

6.内存管理和外存管理有何异同?

【解答】可以从以下几个方面进行比较:

(1)主要任务:内存管理的主要任务是为多道程序的运行提供良好的环境,使每到

程序都能顺利运行。外存管理的主要任务是为文件提供存储空间。

(2)基本功能:内存管理的基本功能包含了内存空间的分配、回收、保护、扩充等

方面。外存管理的基本功能则只是对外存空间的分配和回收。

(3)分配方式:内存和外存管理都可采用连续或离散分配方式,且都以离散分配方

式为主。

(4)分配算法:对于连续分配方式,内存与外存管理中的分配和回收算法类似,主

要有首次适应算法、循环首次适应算法等。在离散分配方式中,两者索采用的机制不同,

内存管理只要利用页表或段表;在外存管理中,则主要利用文件分配表。

(5)分配单位:内存以字节为单位,外存则以盘块为单位分配。

7.为什么要打开文件?叙述在linux文件系统,打开文件Zhome/userOl/myfile的过

程?

【解答】当用户要求对一个文件实施多次读/写或其他操作时,每次都要从检索目录开

始。为了避免多次重复地检索目录,在大多数OS中都引入了“打开”(open)这一文件

系统调用,当用户第一次请求对某文件进行操作时,先利用open系统调用将该文件打开。

在UNIX文件系统,打开文件/home/userOl/myfHe的过程四步:

(1)检索目录

核心先调用检索目录过程namei从根目录或从当前目录开始,沿目录树查找指名文件

的索引结点。在查找时,利用线性检索法,将文件路径名中的各分量名,与相应目录文件

中的文件名逐一进行比较。若未找到该文件名,或者该文件不允许存取,便做出错处理;

否则,进入第二步。

(2)分配内存索引结点

如果该文件己被其他用户打开,此时只需对在第一步中所找到的i结点,执行其引用

计数加1的操作;否则,应为被打开文件分配一个内存i结点,并调用磁盘读过程将磁盘i

结点的内容拷贝到内存i结点中,并设置i.count为1。

(3)分配文件表

这是指为已打开的文件分配一个文件表项,使文件表项中的f.node指向内存索引结

点。通常还将读写指针f.offset置为0,以表示从头开始读/写此文件;置读写标志

f.flag,及将文件的引用计数f.count加1,并记入该表项的首址fp。

(4)分配用户文件描述表项

在用户文件描述表中取得一空表项。若成功,便将fp填入该表项中,并把该表项的序

号fd作为文件描述符,写入调用进程的U区中。

8..在Linux系统中,一个盘块大小为1KB,每个盘块号占4B,则一个进程要访问一

个相对于文件开始的偏移量为263168B处的数据时,计算是直接还是索引访问,几级索

引?

【解答】一次间接。

263168B/1024B=257

即该地址在第257块。

块内偏移量为:263168-1024*257=0

因10<257<266

故为一次间接。

9.有一个UNIX文件的权限为:rwxr_x___,该文件的文件主为uid=12,gid=l,有

一用户B的uid=6,gid=l,问:系统是否允许用户B执行该文件?为什么?

【解答】允许。

因为UID为用户标识符。说明用户B与该文件主为同组用户。

10.说明Linux系统磁盘的结构及各部分的功能。

【解答】(1)

0号块1号块2号块…K号块(索引结点区)文件区

(2)0号块存放引导程序,是引导区,1号块是超级块,也叫超级块,存放文件卷的

管理信息,索引节点区存放各文件的索引结点;文件区存放文件的内容。

11.磁盘容量为1.2GB的硬盘,假设盘块大小为1KB,每个盘块号在FAT表区占

4B,你作为磁盘的设计人员,应设FAT区为多长?

【解答】1.2GB=1.2M*1KB

即1.2GB/1KB=I.2M

磁盘由1.2个磁盘块组成。

1.2*4B=4.8MB

所以磁盘的FAT表区长度应为4.8MB

12.设在linux中有一进程P,P中有一操作需要访问一文件中偏移量为14000处的数

据;试问linux如何实现地址变换?

【解答】(1)核心将14000换为逻辑块号13及块内偏移量688;

(2)判断,因10<13<266,故为一次间址;

(3)从i.add(lO)中取得盘块号,设为x;

(4)调用bread过程读x盘块;

(5)在一次间址中的文件逻辑块号为3(从0编);

(6)从中得实际块号,设为y;

(7)则该块中的688B即为所求。

13.多操作系统中提供了文件重命名功能,它能赋予文件一个新名字。若进行文件复

制,并给复制文件起一个名字,然后删除旧文件,也能达到给文件重命名的目的。试问这

两种方法在实现上有何不同?

【解答】使用文件重命名功能时,用户必须提供两个参数:旧文件名,新文件名。实

现该功能时,系统使用旧文件名查找文件目录,若找到旧文件名所对应的目录表目,则将

目录表中文件名字段对应的值改为新文件名值。从实现过程看,文件重命名功能完成的工

•10•操作系统实训

作是修改目录表中的文件名字段,除文件名外,文件的其它特性都未改变。

在后一种实现方法中,先进行文件复制并给复制文件起一个新名,此时系统完成了一

次物理文件的复制操作,然后删除旧文件。虽然这样也能实现给文件重命名的目的,但其

实现过程比前一种方式复杂,并且新文件与旧文件的物理存放地址肯定不同。

14.在利用link系统调用进行连接时,如果path1=/usr/zhang/ff.c,

path2=/usr/li/message/ff.c,试画出此时的树型目录图。

【解答】在树型文件系统中,每一个文件都有一路径名。例如,用户zhang的文件

ff.c的路径名为/usr/zhang/ff.c。如果用户li要共享此文件,可利用系统调用

link(pathl,path2)

与文件ff.c建立连接。其中参数

path1=/usr/zhang/ff.c

path2=/usr/li/message/ff.c>

即在li的message目录文件中创建一个新目录项。建立连接后的树型目录结构图如

15.在实现文件共享时,如果不先进行连接,会产生什么后果?

【解答】建立连接的目的,一方面是为共享该文件的用户增加一新的文件路径名,另

一方面是让系统知道有多少个用户需要使用该文件。在每次连接时,该文件的索引结点访

问计数会增加lo共享该文件时,若无建立连接的操作,系统就无法知道是否还有用户需

要该文件,其后果可能是:当用户要使用该文件时,发现该文件已被删除;或者在用户使

用该文件期间,文件突然比删除。

第3章进程管理课后习题解答

1.操作系统为什么要引入进程的概念?

【解答】程序在并发执行方式下,运行时具有异步性的特征。这样,就需要一个数据

结构PCB来记录程序的状态,以及控制其状态转换所需的一些信息。因此,将PCB、程

序、数据三者组成一个完整的实体,就是进程实体。进程是程序的一次执行,引入进程的

概念,便于操作系统对于程序的运行进行控制。

2.试比较进程和程序的区别。

【解答】进程和程序之间存在着密切的联系,但它们是两个完全不同的概念。它们之

间的主要区别是:

(1)程序是静态的概念,本身可以作为一种软件资源长期保存着;而进程则是程序

的一次执行过程。它是动态的概念。

(2)进程是一个能独立运行的单位,能与其它进程并发执行。进程是作为资源申请

和调度单位存在的;而通常的程序是不能作为一个独立运行的单位而并发执行的。

(3)程序和进程无一一对应的关系。一个程序可由多个进程共用;另一方面,一个

进程在其活动中又可顺序地执行若干个程序。一个程序,运行一次,便创建了一个进程;

同一个程序,若运行十次,就产生了十个进程。

(4)各个进程在并发执行过程中会产生相互制约关系,造成各自前进速度的不可预

测性。而程序本身是静态的,不存在这种异步特征。

3.程序并发执行,为什么会失去封闭性和可再现性?

【解答】在程序并发执行的环境下,多个进程共享系统中的资源,这些资源是否被使

用,及每一时刻由哪个进程使用,将由多个进程的相互作用而决定。这样,程序的执行就

失去了封闭性。某个进程的执行必然受到其它进程的影响。

由于进程在并发执行的过程中失去了封闭性,当下一次再运行该程序时,系统中存在

的进程及各进程的状态都可能发生变化,导致进程的执行失去可再现性。

4.什么叫进程的并发性?试举一个进程并发执行的例子。

【解答】多个进程在同一时间间隔内同时发生,叫做进程的并发性。

例如:我们在Linux系统下使用编辑器vi进行编辑,而此时系统正在后台运行一个编

译程序,此时,两个进程并发执行。

5.举一个例子,说明一个程序可能同时属于多个进程。

【解答】例如:超市的收银系统。在每个终端上,收银员在运行收款程序,因此每个

收银员都在执行一个进程。超市里同时有很多收款终端,同一个程序被并发执行多次,造

成了多个进程并发执行。

6.试说明PCB的作用,为什么说PCB是进程存在的惟一标志?

【解答】PCB的作用是:在一个在多道程序环境下,集中反映了一个进程的动态特

征。在进程并发执行时,由于资源共享,带来各进程之间的相互制约。显然,为了反映这

些制约关系和资源共享关系,必须使用PCB中的信息,才能对进程实施有效的管理和控

制。

•12•操作系统实训

PCB是进程实体的一部分,是操作系统中非常重要的数据结构,存放着进程所需的运

行信息和控制信息,系统在创建进程时,首先创建PCB,然后通过PCB感知进程的存

在,进程在被撤消时,PCB也随之被撤消。因此,PCB是进程存在的惟一标志。

7.说明进程由哪几部分构成?

【解答】进程实体通常就是由程序、数据集合和PCB这三部分构成,也称为“进程映

像”。

8.什么叫临界区?为什么进程在进入临界区之前,要先执行申请操作,离开临界

区,要做释放操作?

【解答】将每个进程中访问临界资源的那段代码称为临界区,因此也可以说:不能被

多个进程同时进入的程序或数据区域叫做临界区。

因为临界区不能由多个进程同时进入,因此,在进入临界区之前,要先执行申请操

作,确保在没有其它进程进入的情况下,该进程才能进入该临界区;在离开临界区之前,

要做释放操作,以便其它进程可以进入该临界区。

9.试说明进程的基本状态及转换的原因。

【解答】在操作系统中,进程通常至少有三种基本状态:就绪状态、执行状态、阻塞

状态。

进程状态转换的原因是:系统中的进程是并发执行的。在系统中,CPU在不同的时

间,按一定的算法为不同的进程服务;系统中的资源是有限的;各进程之间存在相互作

用。因此,进程并非固定处于某个状态,它将随着自身的推进和外界条件的变化而发生变

化。对于一个系统,处于就绪状态的进程,在调度程序为之分配了处理机之后,该进程便

由就绪态转变为执行状态。当前进程,如果因分配给它的时间片已用完而被暂停执行时,

该进程便由执行状态又回到就绪状态;一个处在执行状态的进程,因为等待某外部事件发

生,而使该进程状态转变为阻塞状态。一个处于阻塞状态的进程,当它所需的外部事件满

足,它应由阻塞状态变为就绪状态。

10.在创建一个进程时,所要做的工作有哪些?

【解答】操作系统通过进程创建原语来创建一个进程。创建原语通过下述步骤创建一

个进程:

(1)申请空白PCBo

(2)为新进程分配资源。

(3)初始化进程控制块。

(4)将新建进程插入就绪态队列。

11.从概念上说明记录型信号量的构成,描述wait原语和signal原语所进行的操作。

【解答】记录型信号量的数据结构由两部分构成,即:数值分量和指针分量。数值表

示系统中可用的该类临界资源的数量,而指针分量为进程链表指针,指向等待该类资源的

PCB队列。

申请临界资源的原语wait操作可描述为:

procedurewait(S)

varS:semaphore;

begin

s:=s-l;

ifs20then本进程继续;

else

将本进程放入阻塞态队列;

转进程调度

end

释放临界资源的原语signal操作可描述为:

proceduresignal(S)

varS:semaphore;

begin

s:=s+l;

ifsWOthen唤醒指针L所指的阻塞态进程;;

end

12.在生产者一消费者问题中,如果缺少了signal(fuU)或signal(empty),对执行结果

将会有何影响?

【解答】若缺少释放资源的原语操作,则会导致生产者或消费者进程不能再继续工

作。

如缺少了signal(full),则消费者进程可能得不到所需的临界资源如缓冲区,不能取一

件产品;

同样地,如果缺少signal(empty),则生产者进程又可能得不到所需的资源,不能存放

一件产品。

13.在生产者一消费者问题中,如果两个wait操作即wait(mutex)和wait(empty)位置

互换,会产生什么后果?

【解答】如果两个wait操作即wait(mutex)和wait(empty)位置互换,则有可能产生死

锁。

14.进程的高级通信方式有哪几种?

【解答】高级通信方式可分为三大类:共享存储器系统、消息传递系统和管道通信系

统。

在共享存储器系统中,相互通信的进程共享某些数据结构或共享存储区;消息传递系

统中,进程间的数据交换以消息为单位,用户直接利用系统提供的一组通信原语来实现通

信,消息传递系统可分为消息缓冲通信和信箱通信;管道通信通信的方法是,向管道提供

输入的发送进程以字符流形式将大量的数据送入管道,而接受管道输出的接收进程可从管

道中接收数据。

15.什么是线程?说明它与进程的主要区别。

【解答】线程是进程中执行运算的最小单位,亦即执行处理机调度的基本单位。

线程与进程的的主要区别:

(1)调度性方面:进程是资源分配的基本单位。而线程是分配处理机的基本单位,

它与资源分配无关。即真正在处理机上运行的是线程。

(2)拥有资源方面:进程是拥有资源的独立单位,而线程基本是不拥有资源的。同

一进程的线程共用该进程的资源。

(3)并发性方面:进程和线程都可以并发执行。但同一个进程的线程在并发执行

•14•操作系统实训

时,状态转换速度较快。

(4)系统开销方面:进程在创建、状态转换、撤消时开销较大,而对于同样的工

作,线程的开销较小。

16.什么是多线程机制?引入它有什么好处?

【解答】多线程机制是指操作系统支持在一个进程内执行多个线程的能力。

引入线程的好处有以下几点:

(1)易于调度。由于线程只作为独立调度的基本单位,同一进程的多个线程共享进

程的资源,所以线程易于切换。

(2)提高了系统的效率。通过线程可方便有效地实现并发性。进程可创建多个线程

来执行同一程序的不同部分。

(3)创建一个线程比创建一个进程花费的开销少,创建速度快。

(4)在多处理器的系统中,有利于发挥多处理器的功能,提高进程的并行性。

17.在读者一写者问题中,如果修改问题中的同步算法,要求对写进程优先,即一旦

写进程到达,后续的读者进程必须等待,而无论是否有读者进程在读文件。写出相应进程

的程序段。

【解答】增加一个信号量S,用于在写进程到达后封锁后续的读进程。

semaphoreS=l;

在读进程开头,增加两句:

P(S);

V(S);

即所有访问该文件的进程,在申请读以前,先申请信号量S。如果没有写进程,则可

以直接通过;如果存在写进程,则该信号量S申请不到,该读者进程等待。

对于写进程,首先该申请信号量S,由于读者进程申请到以后接着释放该信号量,所

以写者进程更容易申请到So写者进程申请到S以后,直到写操作完成以后才释放该信号

量。因此,读者进程和写进程改为:

Var:rmutex,wmutex:semaphore:=l,1;

Readcount:integer:=0;

begin

parbegin

读者进程:

Reader:

begin

repeat

wait(s);

signal(s);

wait(rmutex);

ifreadcount=0thenwait(wmutex);

readcount:=Readcount+1;

signal(nnutcx);

进行读操作;

wait(rmutex);

readcount:=readcount-l;

ifreadcount=0thensignal(wmutex);

signal(rmutex);

untilfalse;

end

写者进程:

writer:

begin

repeat

wait(s);

wait(wmutex);

执行写操作;

signal(wmutex);

signal(s);

untilfalse;

end

parend

end

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

【解答】有多种算法可解决该问题。

方法(1)至多只允许有四位哲学家同时去拿左边的筷子。

实现方法:在每个进程的程序段前定义一个信号量S,初值为4,每个哲学家在使用

筷子之前,先申请信号量S,吃完放下筷子后,再释放S。各进程执行的程序段为:

Pi()

Begin

S:semaphore=4

Varchopstick:array[0,4]ofsemaphore=[1,1,1,1,1];

repeat

wait(s);

wait(chopstick(i]);

wait(chopstick[(i+l)mod5]);

eat;

signal(chopstick[i]);

signal(chopstick[(i+1)mod5]);

signal(s);

think;

untilfalse;

end

方法(2)仅当哲学家的左、右两只筷子均可用时.,才允许他拿起筷子进餐。解决的

方法:可用AND型信号量。各进程执行的程序段为:

Pi()

begin

•16•操作系统实训

Varchopstick:array[0,4]ofsemaphore=[1,1,1,1,1];

repeat

wait(chopstick[i],chopstick[(i+l)mod5]);

eat;

signal(chopstick[i|,chopstick[(i+l)mod5]);

think;

untilfalse;

end

方法(3)规定奇数号哲学家先拿他左边的筷子,然后再去拿右边的筷子;而偶数号

哲学家则相反。

实现的方法:在第i个哲学家所执行的程序段中判定i的值是偶数还是奇数,然后再

做资源申请。各进程执行的程序段为:

Pi()

begin

Varchopstick:array[0,4]ofsemaphore=[1,1,1,1J];

repeat

ifimod2==1then

)wait(chopstick|i|);

wait(chopstick[(i+l)mod5]);}

else

{wait(chopstickl(i+1)mod5]);

wait(chopstick[i]);)

eat:

signal(chopstick[i]);

signal(chopstick[(i+l)mod5]);

think;

untilfalse;

end

19.设公共汽车上有一位司机和一位售票员,它们的活动如下:

售票员进程:

开车门

关车门

售票

请分析司机与售票员之间的同步关系,如何用P、V操作实现。

【解答】为了安全起见,显然要求:关车门后才能启动车辆;到站后才能开车门。所

以司机和售票员在到站、开门、关门、启动车辆这几个活动之间存在着同步关系。两个信

号量SI、S2分别表示可以开车和可以开门,S1的初值为1,S2的初值为0。用PV操作实

现司机进程和售票员进程同步的算法描述如下:

semaphoresl,s2:=l,0;

main()

{cobegin

driver();

busman();

coend

)

driver()

{

while(l)

p(sl);

启动车辆;

正常行车:

到站停车;

V(s2);

)

busman()

{while(l)

P(s2);

开车门;

等待上下乘客;

关车门;

V(sl);

售票;

)

[注:为提高系统的效率,提高进程的并发性,将售票放在汽车行驶的过程中。]

第4章存储管理课后习题解答

i.存储管理的功能是什么?

【解答】存储管理的主要功能是:

(1)内存分配。内存分配的任务是为每道作业分配一定的内存空间。往往会出现多

道程序对内存的需求总和超过实际内存空间,因此,制定分配策略时应以提高内存利用率

为目标。

(2)地址转换映射。一个应用程序经编译后形成很多目标程序,这些目标程序经过

连接后形成可执行程序。需要把逻辑地址转换成物理地址。

(3)内存保护。内存保护的任务是确保每道用户程序都在自己的内存空间中运行,

•18•操作系统实训

互不干扰。

(4)内存扩充。在多道程序环境中,内存资源比较紧张,往往会出现多道程序对内

存的需求总和超过实际容量的情况。这时要进行内存扩充,扩充的方式采用虚拟存储器的

方式进行。

2.存储分配的方式有几种?

【解答】存储分配的方式有连续存储分配和非连续的存储方式两大类。

连续的存储分配的方式包括单连续存储分配、固定分区分配方式、动态分区分配方

式、可重定位的分区分配方式。非连续的存储分配方式包括分段存储管理、分页存储管

理、段页式存储管理三种方式。

3.什么叫虚拟存储器?

【解答】基于局部性的原理,作业在装入之前,没有必要一次性装入内存,仅将要运

行的部分装入到内存,其余的仍然放在磁盘上。当程序要访问的页没有装入到内存时,将

它们装入到内存,继续运行。若内存已经满,则将内存中暂时不用的页调出内存,释放所

占的内存空间,将要访问的页调入内存执行。这样就可以在较大的程序调到一个较小的内

存空间上运行。从用户角度看,该系统所具有的内存容量比实际的内存容量要大的多,人

们把这样的存储器称为虚拟存储器。

4.简述目前常用的几种分区分配方式。

【解答】目前常用的分区分配方式有分页存储管理、分段存储管理、段页式存储管

理、请求分页式存储管理、请求分段式存储管理和请求段页式存储管理。

5.简述请求页式存储管理的实现思想。

【解答】请求分页式存储管理是建立在页式存储管理的基础之上的一种存储管理方

式。是一种常用的虚拟存储方式。它需要软、硬件的支持。换进和换出的基本单位是页

面。

6.缺页中断和一般中断的区别是什么?

【解答】缺页中断作为中断,同样要经过CPU现场、分析中断原因、转缺页中断处理

程序进行处理、恢复CPU现场等步骤。但缺页中断又是一种特殊的中断,它与一般中断的

主要区别是:

(1)在指令执行期间产生和处理中断信号。通常,CPU都是在一条指令执行完后去

检查是否有中断请求到达。若有则去响应中断;否则继续执行下一条指令。而缺页中断是

在指令执行期间,发现所要访问的指令或数据不在内存时产生和处理的。

(2)一条指令在执行期间可能产生多次缺页中断。例如,对于一条读取数据的多字

节指令,指令本身跨越两个页面,假定指令后一部分所在页面和数据所在的页面均不在内

存,则该指令的执行至少产生两次缺页中断。

7.已知页面走向为1、2、1、3、1、2、4、2、1、3、4,且开始执行时主存中没有页

面。若只给该作业分配两个物理块,当采用FIFO页面淘汰算法时缺页率为多少?假定现

在有一种淘汰算法,该算法淘汰页面的策略为当需要淘汰页面时,就把刚使用过的页面作

为淘汰对象,试问相同的页面走向,其缺页率又为多少?

【解答】在进行内存访问时,若访问的页以在主存,则称此次访问成功。若访问的页

不在主存,则称此次访问失败。并产生缺页中断。若程序P在运行过程中访问页面的总次

数为S,其中产生缺页中断的访问次数为f,则其缺页率为f/s.

采用FIFO淘汰算法的页面置珈的情词如表4-1所示:

页率为9/11。

若采用后一种页面淘汰策略,其页面置换的情况为:

8.表给出了某系统中的空闲分区表,系统采用可变分区存储管理策略。现有以下的作业

序列:96k、20K、200K«若用首次适应算法和最佳适应算法来处理这些作业序列,试问

哪一种算法可以满足该作业序列的要求?为什么?

表4-3

分区号大小起始地址

132k100k

210k150k

35k200k

4218k220k

596k530k

【解答】首次适应算法要求空闲分区按地址递增的次序排列,在进行内存分配时,总

是从空闲分区表首开始顺序查找,直到找到第一个能满足大小要求的空闲分区为止。然后

再按作业大小,从该分区划出一块内存空间分配给请求者。余下的空闲分区仍然留在空闲

分区表中。

最佳适应算法要求空闲分区按大小递增的次序排列。在进行内存分配时,总是从空闲

分区首开始顺序查寻,直到找到第一个能满足其大小的空闲分区为止。如果该空闲分区大

于作业的大小,则与首次适应算法相同,将剩余空闲区仍留在空闲分区表中。

若采用最佳适用算法,在申请96K存储区时,选中的是5号分区,5号分区大小与申

表4-4

•20•操作系统实训

请空间大小一致,应从空闲分区表中删去该表项;接着申请20K时,选中1号分区,分配

后2号分区还剩12K;最后申请200K,选中4号分区,分配后剩18K。显然采用最佳适应

算法进行内存分配,可以满足该作业序列的需求。为作业序列分配了内存空间后,空闲分

区表如表44所示。

分区号大小起始地址

112k100k

210k150k

35k200k

418k220k

表4-5

分区号大小起始地址

112k100k

210k150k

35k200k

4122k220k

596k530k

9.在某系统中,采用固定分区分配管理方式中,内存分区(单位字节)情况如下图所

示。现有大小为Ik,9k,33K,121k的多个作业要求进入内存,试画出它们进入内存后

的空间分配情况,并说明主存浪费多大?

【解答】该题有四个分区,第一分区大小为8k,第二分区大小为32k,第三分区大小为

120k,第四分区大小为332k.该作业进入系统后的内存分配情况如下面的图形所示。

想作系统第一分区

第二分区

.第三分区

.第四分区

512k-l

图4-1图4-2

从图中可以看出,作业进入系统后,第一分区剩余空间为7k,第二分区剩余空间为

23k,第三个分区剩余空间为87k,第四个分区剩余空间为211k,主存空间浪费328k。

10.有一个分页存储管理系统,页面大小为每页100字节。有一个50X50的整型数

组,按行连续存放,每个整数占两个字节,将数组初始化为0的程序描述如下:

inta|501(50];

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论