2024年2月26日发(作者:)
第 1 章 操作系统概论
(1) 试说明什么是操作系统,它具有什么特征?其最基本特征是什么?解:
操作系统就是一组管理与控制计算机软硬件资源并对各项任务进行合理化调度,
了各种便于用户操作的工具的软件层次。
现代操作系统都具有并发、 共享、虚拟和异步特性, 其中并发性是操作系统的最基本特征,也是最重要的特征,其它三个特性均基于并发性而存在。
(2) 设计现代操作系统的主要目标是什么?解:
现代操作系统的设计目标是有效性、方便性、 开放性、可扩展性等特性。其中有效性指
且附加
的是 OS应能有效地提高系统资源利用率和系统吞吐量。 方便性指的是配置了 OS后的计算机应该更容易使用。这两个性质是操作系统最重要的设计目标。开放性指的是 OS应遵循世界标准规范,
如开放系统互连 OSI 国际标准。可扩展性指的是 OS应提供良好的系统结构,使
得新设备、新功能和新模块能方便地加载到当前系统中,同时也要提供修改老模块的可能,这种对系统软硬件组成以及功能的扩充保证称为可扩展性。
(3) 操作系统的作用体现在哪些方面?解:
现代操作系统的主要任务就是维护一个优良的运行环境,
户操作的方便性。 因此操作系统的基本功能应包括处理器管理、
统还需要提供一个友好的人机接口。
在互联网不断发展的今天,
以便多道程序能够有序地、 高
并保证用
效地获得执行, 而在运行的同时, 还要尽可能地提高资源利用率和系统响应速度,
存储器管理、 设备管理和文
操作系统中通常还具备基本
件管理。此外,为了给用户提供一个统一、方便、有效的使用系统能力的手段,现代操作系
的网络服务功能和信息安全防护等方面的支持。
(4) 试说明实时操作系统和分时操作系统在交互性、及时性和可靠性方面的异同。解:
交互性:分时系统能够使用户和系统进行人 - 机对话。实时系统也具有交互性,但人与系统的交互仅限于访问系统中某些特定的专用服务程序。
及时性:分时系统的响应时间是以人能够接受的等待时间为标准,而实时控制系
统对响应时间要求比较严格, 它是以控制过程或信息处理中所能接受的延迟为标准。
可靠性:实时系统要求系统可靠性要比分时系统高。在实时系统中往往采用多级容错措施来保证系统的安全及数据的安全。
(5) 试比较分布式操作系统和网络操作系统的异同。解:
它们的区别在于: 分布式操作系统的设计思想和网络操作系统是不同的,这决定了它们
在结构、 工作方式和功能上也不同。
网络操作系统要求网络用户在使用网络资源时首先必须
了解网络资源, 网络用户必须知道网络中各个计算机的功能与配置、
构等情况, 在网络中如果用户要读一个共享文件时,
网络资源,并且调度过程是“透明”的。
(6)
什么是操作系统虚拟机结构?它有什么好处?
机的哪一个目录下; 分布式操作系统是以全局方式管理系统资源的,
软件资源、 网络文件结
它可以为用户任意调度
用户必须知道这个文件放在哪一台计算
解:
虚拟机结构 OS最初是为了满足用户对分时系统的需求而出现的。
虚拟机监控器 (virtual machine monitor)
VM/370 的核心程序为
,它运行于裸机之上并提供多道程序功能。该系
统向上层提供多个对裸机硬件精确复制的虚拟机,这些复制品均包含核心态、用户态、
处理、中断以及其它真实机器所应该具有的全部功能。
这样做的好处是凡是能在一台物理裸机上运行的操作系统均可以出现在一个特定虚拟
机上,分配给各用户的不同虚拟机上可以随用户的个人爱好和操作习惯不同而采用不同的操作系统。在用户看来就是直接在自己独享的一台裸机上工作。
(7) 试说明客户机 / 服务器结构的操作系统为什么获得广泛应用。解:
客户机 / 服务器结构的操作系统具有不同于传统集中式
网络时代大为流行。主要原因有以下几点:
1.
I/O
OS的一系列独特优点, 使得其在
该系统的数据可以进行分布式处理和存储。
客户机本身均具有一定的处理能力,
部
以
分数据处理和存储工作可由本地客户机完成,减少了服务器机的任务量。
2.
对于重要数据, 可以将其放在受到严密保护的服务器所在的局域网内集中管理,
便保证数据安全。
/ 服务器机类型可选范围很大。
3.
C/S 结构有较好的灵活性和可扩充性,客户机
4. 易于修改用户程序。对客户机的修改和增删很方便,甚至可以由用户自行进行。
(8) 处理机管理有哪些主要功能?请简要描述。解:
处理机的管理功能主要体现在创建、撤销进程,并按照一定的算法为其分配所需资源,
同时还要管理和控制各用户的多个进程协调运行, 确保各个进程可以正确的通信。 在多道程序 OS中,这些管理功能最终通过对进程的控制和管理来实现,而在具有线程机制的 OS中,
这些功能的实现还依赖于对线程的管理和控制。
(9)
存储器管理有哪些主要功能?请简要描述。
解:
操作系统所管理的存储器包括内存、
外存等,因此存储器管理的主要任务就是将各种存
同时还要兼顾内存利用率、
逻辑上扩充内
储器件统一管理, 保证多道程序的良好运行环境,
存的需求以及用户的感受,提供优良的控制、存取功能,为用户提供操控存储器的手段。
为实现上述要求,存储器管理应具有内存分配、内存回收、内存保护、
等功能。
(10) 文件管理有哪些主要功能?请简要描述。解:
地址映射和虚拟内存
其主要功能就是管理外存上的静态文件,
机制还要能有效管理外存空闲区域,
提供存取、 共享和保护文件的手段,
以方便用
文件管理
户使用, 同时禁止无权限用户对他人资源的误访问或有权限用户对资源的误操作。
根据文件的大小为其分配和回收空闲区。
对响应时间的要求, 文件管理机制还应实现目录管理,
可或缺的组成部分。
(11) 设备管理有哪些主要功能?请简要描述。
解:
设备管理的主要作用是使用统一的方式控制、
理功能主要体现在:
接收、分析和处理用户提出的
时还要做到尽量提高
管理和访问种类繁多的外围设备。
I/O 请求,为用户分配所需
为了满足用户
以便快速地定位文件。
文件管理机制
OS不
能有效保护文件安全,提高资源利用率,为用户提供快速检索和使用文件的手段,是
设备管
I/O 设备, 同
CPU和 I/O 设备利用率、 I/O 处理效率,为用户提供操控
I/O 设备的便
捷界面和手段。 根据设备管理模块的功能要求,可以将其功能分为设备分配、缓冲管理、设备处理、虚拟设备等。
第 2 章 操作系统的界面
(1) 请说明系统生成和系统引导的过程。解:
系统的生成过程: 当裸机启动后, 会运行一个特殊的程序来自动进行系统的生成
生成系统之前需要先对硬件平台状况进行检查,或者从指定文件处读取硬件系统的配置信
息,以便根据硬件选择合适的操作系统模块组,比较重要的信息通常有:
小、当前关联设备的类型和数量以及操作系统的重要功能选项和参数。
系统生成程序就可以正确地生成所需的操作系统。
系统引导的过程: 系统引导指的是将操作系统内核装入内存并启动系统的过程。
括初始引导、内核初始化、全系统初始化。初始引导工作由
初始化基本输入输出设备, 载入操作系统内核代码等工作。
主要包
(安装),
CPU类型、内存大
按照这些信息的指示,
BIOS 完成, 主要完成上电自检,
内核被载入内存后,
引导程序将
CPU控制权交给内核,内核将首先完成初始化功能,包括对硬件、电路逻辑等的初始化,以
及对内核数据结构的初始化, 如页表 ( 段表 ) 等。全系统初始化阶段要做的就是启动用户接口程序,对系统进行必要的初始化,使系统处于等待命令输入状态。
(2) 操作系统具有哪些接口?这些接口的作用是什么?解:
操作系统为用户提供的接口有图形接口、命令接口和程序接口几种形式。
操作系统包括三种类型的用户接口: 命令接口(具体又可分为联机命令接口与脱机命令接口)、程序接口及图形化用户接口。其中,命令接口和图形化用户接口支持用户直接通过
终端来使用计算机系统,而程序接口则提供给用户在编制程序时使用。
(3) 请说明操作系统具有的共性服务有哪些不同类别,这些类别分别用于完成什么功能?解:所有的操作系统都通过一些基本服务来帮助用户简单便捷地使用计算机各类资源,
它们包括以下几个类别:
1.
控制程序运行: 系统通过服务将用户程序装入内存并运行该程序, 并且要控制程序在规定时间内结束。
进行 I/O 操作:用户是不能直接控制设备的, 只能通过操作系统与外部设备进行交互,由系统调用将结果显示在屏幕上或交给用户。
操作文件系统:为了保证实现“按名存取” ,文件系统应该为用户提供根据文件名来创建、访问、修改、删除文件的方法, 以确保文件数据的安全可靠以及正确存取。
实现通信: 操作系统需要提供多个程序之间进行通讯的机制,
序。
5. 错误处理:操作系统通过错误处理机制, 以便及时发现错误并采取正确的处理步骤,避免损害系统的正确性和统一性。
来控制程序的执行顺
2.
3.
4.
(4) 系统调用的用途是什么?
解:
通常,在操作系统内核设置有一组用于实现各种系统功能的子程序 ( 过程 ) ,并将它们提供给用户程序调用。 每当用户在程序中需要操作系统提供某种服务时, 便可利用一条系统调
用命令,去调用所需的系统过程。这即所谓的系统调用。系统调用的主要类型包括:
1.
进程控制类, 主要用于进程的创建和终止、 对子进程结束的等待、 进程映像的替换、进程数据段大小的改变以及关于进程标识符或指定进程属性的获得等;
2.
文件操纵类,主要用于文件的创建、打开、关闭、读 / 写及文件读写指针的移动和文件属性的修改, 目录的创建及关于目录、 特别文件或普通文件的索引结点的建立等;
3.
进程通信类, 用于实现各种类型的通信机制如消息传递、 共享存储区及信息量集机制等;
信息维护类,用于实现关于日期和时间及其它系统相关信息的设置和获得。 4.
(5) 命令解释程序有什么作用?解:
命令解释程序的主要作用是:在屏幕上产生提示符,请用户输入命令,然后读入命令、
识别命令, 并转至相应的命令处理程序入口地址, 把控制权交给该处理程序去执行,有关处理结果 ( 包括出错信息 ) 送屏幕显示。
最后将
第 3 章 处理器管理
(1) 为什么程序并发执行会产生间断性特征,并失去封闭性和可再现性?解:
之所以产生间断性特征是因为多个程序在并发执行时,需要为了完成同一项任务而相互
合作,并发执行的程序间的这种相互制约导致了“暂停—执行—暂停”的间断性运行规律。
失去封闭性是因为程序在并发执行时, 多个程序需要共享系统中的多种资源。 所以, 这些资源的状态是由多个程序改变的,从而使程序的运行失去了封闭性。
失去可再现性是因为程序在并发执行时,
解:
进程是可并发执行且具有独立功能的程序在一个数据集合上的运行过程,
它是操作系统
由于失去了封闭性, 从而导致其失去可再现性。
(2) 什么是进程?为什么要在操作系统中引入进程?
进行资源分配和调度的基本单位。 “进程”概念是人们为了使程序能够并发执行,并且能对并发的程序加以描述和控制而引入的。
(3) 试从并发性、独立性、动态性上比较程序和进程的不同。解:
并发性是进程的重要特征,同时也是 OS 的重要特征。引入进程的目的正是为了使其程序能和其它进程的程序并发执行,而程序是不能并发执行的。
独立性是指进程实体是一个能独立运行的基本单位, 同时也是系统中独立获得资源和独立调度的基本单位。而对于未建立任何进程的程序,都不能作为一个独立
的单位参加运行。
动态性是进程最基本的特性,可表现为由创建而产生,由调度而执行,因得不到资源而暂停执行,以及由撤销而消亡,因而进程有一定的生命期;而程序只是一组有序指令的集合,是静态实体。
(4) 什么是 PCB?它具有什么作用?为什么说 PCB是进程存在的唯一标识?解:
进程控制块 (Process Control Block , PCB)是操作系统为了管理进程而设置的一个专门的数据结构,用它来记录进程的外部特征,描述进程的运动变化过程。
它的作用是使一个在多道程序环境下不能独立运行的程序
行的基本单位,一个能和其它进程并发执行的进程
与 PCB是一一对应的。
(5) 进程有哪些基本状态?这些状态具有什么特征?解:
.
( 含数据 ) ,成为一个能独立运
进程
因为系统利用
PCB来控制和管理进程,
所以 PCB是系统感知进程存在的唯一标志。
进程的三种基本状态分别是:就绪状态、运行状态、阻塞状态。
就绪状态:进程已获取到除
马上投入运行。
运行状态:处于就绪状态的进程被调度程序选中后将得到
程就可以使用处理器进行数据运算和处理。
阻塞状态:当一个进程正在等待某个事件的发生
行,这时,即使分配有
CPU时间,它也无法执行。
( 如等待 I/O
的完成 ) 而暂停执
CPU控制权,此时该进
CPU之外的所有必要资源,只要再得到
CPU,就可以
(6) 为什么要引入挂起状态?该状态有什么特性?解:
引入挂起状态时为了满足四种需要: 调节系统负荷的需要、 用户的需要、 父进程的需要、系统的需要。
挂起状态的特点: 交换到磁盘上的进程, 不让其参与进程调度, 以达到平衡系统负荷的目的。
(7) 说明进程基本状态的转换关系及引起这些状态间转换的典型原因。解:
处于就绪状态的进程,在调度程序为之分配了处理器之后,就可以投入运行。同时,进
程的状态也由就绪状态转变为运行状态; 在采用时间片机制的操作系统中, 分配给当前进程的时间片用完之后, 它会暂停执行, 其状态也由运行状态转换到就绪状态; 如果由于某事件发生 ( 比如进程需要访问某 I/O 设备,而该设备正在被别的进程访问 ) 而使进程运行受阻, 不能再继续向下执行时,
它的状态会由运行状态转变为阻塞状态; 当进程期望的某事件发生时
( 比如需要访问的 I/O 设备已可用 ) ,进程将从阻塞状态转变为就绪状态
(8) 说明在加入了挂起状态的操作系统中,进程状态间的转换关系及引发转换的典型原因。解:
在引入挂起状态的操作系统中, 又增加了静止就绪和静止阻塞两个新的进程状态。调用
挂起原语把处于活动就绪状态的进程挂起后,
该进程就会由活动就绪状态转变为静止就绪状
态。调用挂起原语把处于活动阻塞的进程挂起后, 它的状态就转换为静止阻塞。 调用激活原语激活后又可以转换到活动阻塞状态。
(9) 试说明引起进程创建的典型事件。解:
引起进程创建的典型事件有:用户登录、作业调度、提供服务、应用请求。
(10) 试说明引起进程撤销的典型事件。
解:
引起进程撤销的典型事件有:正常结束、异常结束、外界干预。
(11) 试说明引起进程阻塞和唤醒的典型事件。
解:
引起进程阻塞和唤醒的典型事件有:请求系统服务、启动某种操作、新数据尚未到达、无新工作可做。 .
(12) 试说明进程创建的过程。
解:
创建进程的操作必须调用创建原语来实现。 创建原语首先为新进程申请获得惟一的数字标示符,并从 PCB集合中获取一个空白 PCB;为新进程的程序和数据以及用户栈分配必要的内存空间;然后对 PCB进程初始化;最后将新进程插入就绪队列中,等待被调度执行。
(13)
试说明进程撤销的过程。
解:
系统调用进程终止原语来终止进程。
应该将它的所有子孙进程终止,
首先根据被终止进程的标示符,
从 PCB集合中查找
到该进程的
PCB,从中读出该进程的状态,终止该进程的执行,如果该进程还有子孙进程,
防止它们成为不可控进程; 然后回收进程所拥有的资源; 最
后将被终止进程 ( 它的 PCB)从所在队列 ( 或链表 ) 中移出,等待其它程序来搜集信息。
(14) 什么是线程?请比较它与进程的异同。解:
线程是进程中的一个实体, 是被系统独立分配和调度的基本单位。线程基本上不拥有资
源,只需要一些必不可少的资源
进程和线程的差异:
1. 在传统的 OS 中,进程是拥有资源和独立调度分派的基本单位,在加入线程的
中,线程是代替进程成为独立调度和分派的基本单位,
单位。
2.
3.
( 如程序计数器、一组寄存器和栈
) 。
OS
进程则仍是拥有资源的基本
并发粒度不同。 除了不同进程的线程之外, 同一个进程里的不同线程之间也可以并发执行,所以线程拥有更好的并发性。
拥有资源数量不同。 进程是拥有资源的基本单位, 线程除了一些在运行过程中必不可少的资源外,基本上不拥有系统资源,它可以访问自己所在的进程的资源。
管理开销不同。 创建、撤销进程时系统都要为之分配和回收资源,所以进程切换用
的时间开销相对要多于线程。 进程间通信很麻烦, 而同一进程的线程则通过共享进程的资源很方便地通信和同步,同步开销小得多。
4.
进程和线程有着很多相似的地方:都可以并发执行;都有就绪、执行、阻塞这些基本状
态,也都可以在这些基本状态之间转换状态; 从创建到撤销都有一定的生命周期; 都需要同步工具。
(15) 处理器调度的层次有哪些?各层次的主要工作是什么?解:
处理器调度的层次分为三级调度:高级调度、中级调度和低级调度。
高级调度:它需要做出两个决定,一个是要从驻留在外存后备队列中调入多少个作业,二是要调入哪几个作业;然后为被选中的作业创建进程,并分配必要的系统资源,如内存、外设等,然后把新创建的进程放入就绪队列中,等待被调度执行。
中级调度:中级调度主要涉及进程在内存和外存之间的交换。当系统中的内存使用情况紧张时,中级调度把内存中暂时不能运行的进程调到外存中等待,等内存有足够的空闲空间时, 再由中级调度决定将外存上的某些具备了运行条件的就绪进程调入内存,把其状态修改为就绪状态并挂在就绪队列中,等待进程调度。
低级调度: 按照一定的算法从就绪队列中选择一个进程,
(16) 抢占式调度的原则是什么?请简要说明。
然后将处理器分配给它。
执行低级调度功能的程序称作进程调度程序,由它实现处理器在进程间的切换。
解:系统使用抢占方式进行进程调度时需要遵循一定的原则,主要有以下几个方面:
1. 时间片原则。 各进程按系统分配给的一个时间片运行,当该时间片用完或由于该进
程等待某事件发生而被阻塞时,系统就停止该进程的执行而重新进行调度。
2. 优先级原则。 每个进程均被赋于一个调度优先级, 通常一些重要和紧急的进程被赋于较高的优先级。 当一个新的紧迫进程到达时, 或者一个优先级高的进程从阻塞状
态变成就绪状态时,如果该进程的优先级比当前进程的优先级高,
进程的执行,将处理器分配给该优先级高的进程,使之执行。
3. 短进程优先原则。 当新到达的作业对应的进程比正在执行的作业对应进程的运行时
间明显短时, 系统剥夺当前进程的执行, 而将处理器分配给新的短进程, 使之优先执行。
(17) 在批处理系统、分时系统、实时系统中,应分别采用哪种作业
解:
批处理系统采用先来先服务调度算法; 分时系统采用时间片轮转法; 实时系统采用高响应比优先调度算法。
(18) 说明时间片轮转调度算法的基本思路。
解:
在采用时间片轮转调度算法的系统中,将系统中所有的就绪进程按照
FCFS原则,排成
一个队列。 每次调度时将 CPU分派给队首进程,
让其执行一个时间片。
时间片的长度从几个
ms 到几百 ms。在一个时间片结束时,发生时钟中断。调度程序暂停当前进程的执行,将其
送到就绪队列的末尾,
并通过 CPU现场切换执行当前的队首进程,
一个时间片,就让出
当然, 进程可以未使用完
( 进程 ) 调度算法?
OS 就停止当前
CPU(如阻塞 ) 。这样可以保证就绪队列中的所有进程都有机会获得处理
器而运行的机会,可以提高进程并发性和响应时间特性,从而提高资源利用率。
(19) 试说明多级反馈队列调度算法思想。
解:多级反馈队列调度算法则不必事先知道各进程的执行时间,又可以满足各种类型进
程的调度需要,它是一种目前公认较好的进程调度算法。它的算法思想如下
调度 ) :
1. 需要设置多个就绪队列, 并且为它们分别赋予不同的优先级。 每队列分配不同的时间片,规定优先级越低则时间片越长。
新进程就绪后,先插入队列 1 的末尾,按 FCFS算法调度。若一个时间片未能执行完,则降低插入到队列 2 的末尾;依此类推,降低到最后的队列,则按“时间片轮转”算法调度直到完成。
3. 进程由于等待事件而放弃 CPU 后 , 进入等待队列 , 一旦等待的事件发生 , 则回到原来的就绪队列。
只有当较高优先级的队列为空时, 才调度较低优先级队列中的进程执行。如果进程
执行时有新进程进入较高优先级的队列, 则需要重新调度, 抢先执行新进程, 并把被抢先的进程插入原队列的末尾。
(20) 什么是静态和动态优先级?如何确定静态优先级?
解:
静态优先级是在系统创建时确定的,一经确定之后在整个进程运行期间不再改变。
动态优先级是在进程运行前先确定一个优先级, 进程运行过程中根据进程等待时间的长短、执行时间的多少、输入输出信息量的大小等,通过计算得到新的优先级。
(21) 在一个单道批处理系统中,一组作业的到达时间和运行时间如下表所示。试计算使用先来先服务、短作业优先、高响应比优先算法时的平均周转时间和平均带权周转时间。
( 设采用抢占式
2.
4.
作业
到达时间
1
运行时间
2
3
4
解:
用 T 表示周转时间,用
W表示带权周转时间
FCFS的作业调度情况如下:
作业
1
2
3
提交时间
运行时间
开始时间
结束时间
周转时间
带权周转时间
4
FCFS的 T = ( +++) / 4 = W
=
SJF 的作业调度情况如下:
作业
1
2
3
4
( +++) / 4 =
提交时间
运行时间
开始时间
结束时间
周转时间
带权周转时间
SJF 的 T=(+++) / 4 = W =
作业
1
2
3
4
( +++)/ 4 =
高响应比优先的作业调度情况如下:
提交时间
运行时间
开始时间
结束时间
周转时间
带权周转时间
高响应比算法的 T=( +++) / 4 = W =
( +++) / 4 =
第 4 章 进程同步与死锁
(1) 什么是进程同步?什么是进程互斥?解:
同步是进程间的直接制约关系, 这种制约主要源于进程间的合作。 进程同步的主要任务
就是使并发执行的各进程之间能有效地共享资源和相互合作,
制约,按照一定的协议协调执行,使程序的执行具有可再现性。
进程互斥是进程间的间接制约关系,
一时刻却只能供一个进程使用,
当多个进程需要使用相同的资源,
而此类资源在任
从而在执行时间、 次序上相互
获得资源的进程可以继续执行,
没有获得资源的进程必须等
待,进程的运行具有时间次序的特征,谁先从系统获得共享资源,
资源的排它性使用所造成的进程间的间接制约关系称为进程互斥。
式。
(2) 进程执行时为什么要设置进入区和退出区?
谁就先运行,这种对共享
互斥是一种特殊的同步方
解:
为了实现多个进程对临界资源的互斥访问, 必须在临界区前面增加一段用于检查欲访问的临界资源是否正被访问的代码,如果未被访问,该进程便可进入临界区对资源进行访问,
并设置正被访问标志, 如果正被访问, 则本进程不能进入临界区,
实现这一功能的代码成为
“进入区”代码;在退出临界区后,必须执行“退出区”代码,用于恢复未被访问标志。
(3) 同步机构需要遵循的基本准则是什么?请简要说明。解:
同步机制都应遵循下面的
4 条准则:
1.
空闲让进。 当无进程处于临界区时, 允许进程进入临界区, 并且只能在临界区运行有限的时间。
忙则等待。 当有一个进程在临界区时, 其它欲进入临界区的进程必须等待,
进程互斥地访问临界资源。
以保证
2.
3.
有限等待。对要求访问临界资源的进程,应保证进程能在有限时间内进入临界区,以免陷入“饥饿”状态。
让权等待。当进程不能进入临界区时,应立即放弃占用
得到 CPU的使用权,以免陷入“饥饿”状态。
CPU,以使其它进程有机会
4.
(4) 整型信号量是否能完全遵循同步机构的四条基本准则?为什么?解:
不能。在整型信号量机制中,未遵循“让权等待”的准则。
V(full)
(5)
在生产者 - 消费者问题中,若缺少了
或 V(empty) ,对进程的执行有什么影响?
解:
如果缺少了 V(full) ,那么表明从第一个生产者进程开始就没有对信号量
但 full
的值还是
0,这样消费者进程在执行
full
P(full)
值改变,
时会认
即使缓冲池存放的产品已满了,
为缓冲池是空的而取不到产品,那么消费者进程则会一直处于等待状态。
如果缺少了
V(empty) ,例如在生产者进程向
n 个缓冲区放满产品后消费者进程才开始
empty 并没有被
n 个空缓
从中取产品,这时
empty=0,full=n ,那么每当消费者进程取走一个产品时
改变,直到缓冲池中的产品都取走了,
empty 的值也一直是 0,即使目前缓冲池有
冲区,生产者进程要想再往缓冲池中投放产品会因申请不到空缓冲区而被阻塞。
(6)
在生产者 - 消费者问题中, 若将 P(full) 和 P(empty) 交换位置,或将 V(full) 或 V(empty)
交换位置,对进程执行有什么影响?
解:
对 full 和 empty 信号量的 P、V 操作应分别出现在合作进程中, 这样做的目的是能正确表征各进程对临界资源的使用情况,保证正确的进程通信联络。
(7) 利用信号量写出不会出现死锁的哲学家进餐问题的算法。解:
对哲学家按顺序从
编号为( i+1 ) %5。
0 到 4 编号,哲学家 i 左边的筷子的编号为
i ,哲学家右边的筷子的
semaphore chopstick[5]={1};
.,n-1] of item;
in out: integer := 0, 0;
begin
parbegin
producer: begin
repeat
.
.
.
produce an item in nextp;
.
.
.
Swait(empty, mutex);
buffer(in) := nextp;
in := (in+1) mod n;
Ssignal(mutex, full);
until false;
end
consumer: begin
repeat
Swait(full, mutex);
nextc := buffer(out);
out := (out+1) mod n;
Ssignal(mutex, empty);
consume the item in nextc;
until false;
end
parend
end
利用管程机制解决生产者
-
消费者问题,首先需要建立一个管程
ProducerConsumer ,其中包含两个过程
insert(item)
和 consumer(item)
。生产者 - 消费者同步问题可以用伪代码描
述如下:
monitor ProducerConsumer
condition full,empty;
int count;
void insert(int item)
{
if (count==N) wait(full);
insert(item);
count=count+1;
if (count==1) signal(empty);
}
int remover()
{
if (count==0) wait(empty);
remove=remove_item;
count=count-1;
if (count==N-1) signal(full);
}
count=0;
end monitor
void producer()
{
while (true)
{
item=produce_item;
(item);
}
}
void consumer()
{
while (true)
{
item=;
consume(item)
}
}
(9) 进程的高级通信机制有哪些?请简要说明。解:
进程的高级通信机制分为三大类:共享存储系统、消息传递系统和管道通信系统。
1. 共享存储器系统: 在共享存储器系统中, 相互通信的进程通过共享某些数据结构或
共享存储区实现进程之间的通信。 该系统又可进一步细分为两种方式:基于共享数
2.
据结构的通信方式和基于共享存储区的通信方式。
消息传递系统: 消息传递机制可以实现不同主机间多个
式需要使用两条原语
send 和 receive
CPU上进程的通信。 这种方
(message) 。
来发送和接收格式化的消息
3.
管道通信系统: 管道通信是一种以文件系统为基础实现的适用于在进程之间实现大量数据传送的通信方式。
(10) 什么是死锁?产生死锁的原因和必要条件是什么?
解:
所谓死锁是指在一个进程集合中的所有进程都在等待只能由该集合中的其它一个进程
才能引发的事件而无限期地僵持下去的局面。
产生死锁的原因可以归结为两点:
环路条件。
1)竞争资源,
2 )各进程之间的推进顺序不当。
产生死锁的必要条件有四个: 1)互斥条件, 2 )不剥夺条件, 3 )请求和保持条件,
4 )
(11) 死锁的预防策略有哪些?请简要说明。解:
死锁的预防策略有三,说明如下:
1. 摒弃请求和保持条件:为摒弃请求和保持条件,系统中需要使用静态资源分配法,
该方法规定每一个进程在开始运行前都必须一次性地申请其在整个运行过程中所
需的全部资源。 此时,若系统有足够的资源, 就把进程需要的全部资源一次性地分配给它; 若不能全部满足进程的资源请求, 则一个资源也不分给它, 即使有部分资源处于空闲状态也不分配给该进程。 这样,当一个进程申请某个资源时, 它不能占有其它任何资源, 在进程运行过程中也不会再提出资源请求。 这种方法破坏了请求
和保持条件,从而避免死锁的发生。
2.
摒弃不剥夺条件:要摒弃“不剥夺条件” ,可以使用如下策略:进程在需要资源时才提出请求,并且进程是逐个地申请所需资源, 如果一个进程已经拥有了部分资源,然后又申请另一个资源而不可得时, 其现有资源必须全部释放。 在这种方法中, 进程只能在获得其原有资源和所申请的新资源时才能继续执行。
3. 摒弃环路等待条件: 为确保环路等待条件不成立, 可以在系统中实行资源有序分配
策略,即系统中的所有资源按类型被赋予一个唯一的编号, 每个进程只能按编号的升序申请资源。
(12) 某系统中有 A、 B、 C、 D四类资源,且其总数量都是
8 个。某时刻系统中有
判断下列资源状态是否安全?若进程
进程
5 个进程,
P2 申请资源 (1 , 1, 1, 1) ,能否为其分配?
Allocation
Need
A B C D
0
0
4
3
2
6
3
0
3
2
1
5
4
0
2
0
0
5
5
4
A B C D
P0
P1
P2
P3
0
0
2
2
1
1
0
0
2
1
0
3
2
0
0
0
P4
0
2
2
2
解:
现在对该时刻的状态进行安全分析:
由于 Available
此时的 Work 小于任意的 Need[i]
向量为( 3, 4, 4, 1),所以 Work 向量初始化为(
3, 4, 4, 1)
向量,所以系统处于不安全状态
Available
由于 Request2(1,1,1,1) 下表所示: ( 3,4,4,1 )且 Request2( 1,1,1,1 ) ) 变为( 2,3,3,0 )得到系统状态如 所以先试着把 P2 所申请的资源分配给它, Allocation A P0 P1 P2 P3 P4 此时 Available 0 1 3 2 0 B 0 1 2 0 2 C 2 0 1 0 2 Need D 2 0 4 0 2 A 0 2 2 4 0 Available D A 3 0 4 0 4 B 0 6 1 0 5 C 4 3 0 2 5 B C D 2 3 3 0 然后进行安全性检测: 向量为( 2,3,3,0 ),所以 Work 向量初始化为( 2,3,3,0 ),此时的 Work P2 分配资源 且这些进程只有在 小于任意的 Need[i] 向量,所以系统处于不安全状态,所以不可以为 (13) 三个进程 P1、P2、P3 都需要 5 个同类资源才能正常执行直到终止, 解: 系统中不会发生死锁的最小资源数量是 程也能顺利运行完,所以不会死锁。 需要设备时才申请,则该系统中不会发生死锁的最小资源数量是多少?请说明理由。 13,这样可以保证当每一个进程都占有 4 个资 源的时候, 有一个进程可以获得最后一个资源后被运行, 运行完毕后释放资源, 于是其余进 (14) 在解决死锁问题的几个方法中, 哪种方法最易于实现, 哪种方法使资源的利用率最高?解: 预防死锁这个方法实现简单, 效果突出; 避免死锁这种方法系统吞吐量和资源利用率较 高。 (15) 解: 考 由 n 个 程共享的具有 m 个同 源的系 ,如果 于 m+n, 明系 不会 生死 。 i=1,2,3, ⋯ ,n, 有 Need[i]>0 并且所有 程的最大需求量之和小于 本 中只有一种 源,不妨 个 程 需要的 源数量, Max[i] 第 i 个 程的 源 共需要量, Allocation[i] 表示第 i=1,2,3, ⋯ ,n 。 Need[i] 第 i i 个 程已 分配到的 源数量, Available 系 剩余的 源数,其中 假 此系 可以 生死 。 系 剩余的 源数量 所以 Available 即 Available ( Available>=0 ),由假 ,因 系 于死 状 , Need[i] 都大于 Available , 个 源无法分配出去,所以每个 程的 Need[i]>=Available+1 所 以 ① 因 剩下的 源数是即 ② ∑ Need[i]>=n*(Available+1)=n*Available+n, Available ,所以已 分配出去的 源数 ∑ Allocation[i]=m m – Available; – Available 由①式和②式可以得到: ∑ Need[i] + ∑ Allocation[i]>=n*Available+n+ ③ m – Available= ( n-1 ) ④ *Available+m+n 又因 n>=1,所以( n-1 )>=0,又因 Available>=0 由 ③ 式 和 ④ 式 可 以 得 到 ∑ Need[i] ⑤ ,所以( n-1 )*Available>=0 + ∑ Allocation[i]>=0+m+n=m+n 根据 意知: 又 因 Allocation[i] 由 ⑧ ⑥ ∑ Max[i] ⑦ : Max[i]=Need[i]+Allocation[i], ⑥ 所 以 ∑ Max[i]= ∑ Need[i] + ∑ 式 和 ⑦ 式 得 : ∑ Need[i] + ∑ Allocation[i] 由假 推出的⑤式和由 意推出的⑧式相矛盾,所以假 是 的,即系 不会 生死 。 (16) 某 站售票 ,在任何 刻最多可以容 20 名 票者 入,当售票 中少于 20 名 票者 , 外的 票者可立即 入,否 需要在外面等待。若把一个 票者看作一个 程, 回答以下 : ① 用信号量管理 些并 程 , 怎 定 信号量,写出信号量的初 以及信号量的各取 的含 。 ② 根据所定 的信号量,写出相 的程序来保 程能 正确地并 行。 ③ 如果 票者最多 解: ①定 信号量 S, 初 20,当 s > 0 ,它表示可以 入 票 的人数,当 s = 0 表示 内已有 20 人正在 票,当 s < 0 | s | 表示正等待 入的人数。 ② semaphore S=20; begin parbegin procedure:begin n 个人, 写出信号量取 的可能 化范 ( 最大 和最小 ) 。 repeat wait(s); Enter and buy ticket; signal(s); until false; end parend end ③最大 20,最小 20-n (17) 在 量控制系 中的数据采集任 ,把所采集的数据送往一 冲区; 算任 从 冲区中取出数据 行 算。 写出利用信号量机制 两个任 共享 冲区的同步算法。 解: semaphore mutex = 1; semaphore full = 0; semaphore empty = 1; begin parbegin collect: begin repeat ⋯⋯ collect data in nextp; wait(empty); wait(mutex); buffer:=nextp; signal(mutex); signal(full); until false; end compute: begin repeat ⋯⋯ wait(full); wait(mutex); nextc:=buffer; signal(mutex); signal(empty); compute data in nextc; until false; end parend end (18) 桌上有一空 ,允 存放一只水果。爸爸可以向 中放苹果,也可以向 中放桔子, 儿子专等着吃盘中的桔子, 女儿专等着吃盘中的苹果。 吃者用,请用信号量实现爸爸、儿子和女儿 解: 本题中应设置三个信号量 盘中是否有桔子,其初值为 爸爸 : P(S); 将水果放入盘中 if ( else v(S 假设 buffer1 放入的是桔子 ) v(S a o 规定当盘空时一次只能放一只水果供 3 个并发进程的同步。 1;So 表示 S、So、Sa,信号量 S 表示盘中是否为空,其初值为 0;Sa 表示盘中是否有苹果,其初值为 儿子: P(So); 从盘子中取出桔子 ); V ( S); 吃桔子 11 个信息,现在已经放入了两个信息; V 女儿: P(Sa); 0。同步描述如下: 从盘子中取出苹果 (S); ); 吃苹果; (19) 设某系统中有 3 个进程 Get、 Process 和 Put ,共用两个缓冲区 中最多可以放 个信息。 Get 进程负责不断地将输入信息送入 取出信息进行处理,并将处理结果送到 输出。试用信号量机制实现它们的同步与互斥。 buffer1 和 buffer2 。 buffer2 最多可以放 5 buffer1 中, Process 进程负责从 buffer1 中 buffer2 中, Put 进程负责从 buffer2 中读取结果并 解: semaphore empty1=9; 存储空间的分配和回收。 2. 3. 4. 5. 6. 地址转换,实现逻辑地址到物理地址的映射。 主存空间的共享。 主存空间的保护。 主存储空间的扩充。 对换,对换的主要任务是实现在内存和外存之间的全部或部分进程的对换,即将内 而将外存上处于就绪状态的进程换入内存。 对换的 存中处于阻塞状态的进程调换到外存上, (2) 为什么要配置层次式存储器? 解: 目的主要是为了提高内存利用率,提高系统的吞吐量。 为了解决 CPU和存储器之间速度上的不匹配, 层次结构,存储层次可粗略分为三级:最高层为 在现代计算机系统中, 存储系统通常采用 CPU寄存器,中间为主存,最底层是辅存。 ( 固定磁 根据具体功能还可以细分为寄存器、高速缓存、主存储器、磁盘缓存、辅存储设备 、可移 存 介 )5 。一个文件的数据可能出 在存 系 的不同 次中,例如,一 ( 如硬 ) ,当其需要运行或被 , 就必 入主存, 也 个文件数据通常被存 在 存中 可以 存放在主存的磁 高速 存中。 大容量的 存常常使用磁 , 磁 数据 常 份在可移 磁 或者光 上,以防止硬 故障 失数据。 (3) 什么是 地址?什么是物理地址? 什么要 行二者的 工作?解: 地址是 用程序中使用的 存地址, 有 也称 相 地址, 由 地址构成的地址空 称 空 。每个 用程序的 地址空 都是从零号地址 开始的。 物理地址是内存 器的 存 元地址, 有 也称 地址, 由物理地址构成的地址空 称 物理空 。物理地址空 也是从零号地址 开始的。 在多道程序 境下, 程序 地址空 和内存物理地址空 是不一致的。 用 程序的 地址可以是一 性或多 性,而内存中的每一个存 元都有相 的内存地址相 ,属于一 性地址。 在将用 程序部分或全部地装入内存空 , 要 地址到物理地址的映射。 (4) 地址重定位,静 地址重定位和 地址重定位有什么区 ?解: 地址重定位指从 地址到物理地址的映射 程,也称 地址映射。 静 地址重定位是指在用 程序 行之前完成地址映射工作, 即把程序的 地址都 的内存物理地址。 静 地址重定位的地址 只是在装入 一次完成, 而在程序运行期 不再 化。 地址重定位是指在程序 行 程中, CPU在 内存之前,将要 的程序或数据地址 内存地址。 (5) 什么是内部碎片和外部碎片?。 解: 在一个分区内部出 的碎片 ( 即被浪 的空 ) 称作内部碎片,如固定分区法就会 生内部碎片; 在所有分区之外新增的碎片称作外部碎片, 如在 分区法 施 程中出 的越来越多的小空 就是外部碎片,由于它 太小,无法装入一个 程,因而被浪 掉。 (6) 什么是分 和分段存 技 ,两者有何区 ?解: 在分 系 中,系 会把用 程序的地址空 划分成若干个大小相等的区域,每个区 域称作一个 面或 。 每个 都有一个 号, 叫做 号。 号一般从 号也是从 0 开始,如 0,1,2,⋯, 些物理 叫 “ ” (frame) 0 开始依次 序排列。系 程 每个段定 一 也 等。 似地, 也把内存空 划分成若干和 大小相同的物理 , 或内存 。 同 ,每个物理 也有一个 号, 分配内存 ,以 位将 程中的若干 分 装入多个可以不相 接的 中。 在分段存 管理方式中, 程序按内容或 程 ( 函数 ) 关系划分 若干个段, 信息, 都有自己的名字。 就是一个二 虚 存 器。 分段和分 有 多相似之 , 体表 在下述三个方面: 1. 是信息的物理 位, 而段是信息的 位。 分 是 了 离散分配, 减少内存碎片,提高内存利用率。或者 , 分 是由于系 管理的需要, 而不是用 的需 一个用 作 所包含的段 于一个二 性虚 空 , 段式管理程序以段 位 行内存分配, 然后通 地址映射机构 而不是整体 具 把段式虚 地址 的内存物理地址。 比如, 二者在内存中都采用离散分配方式, 分配方式, 而且都要通 地址映射机构来 地址 。 但二者在概念上却完全不同, 要。段则是信息的逻辑单位, 它含有一组意义相对完整的信息。 段的长度不是固定 的,取决于用户所编写的程序。 分段的目的是为了能更好地满足用户的需要, 更方便用户编程,更好地实现信息共享和保护。 2. 页的大小由系统确定, 由系统把逻辑地址划分为页号和页内地址两部分, 整个系统只能有一种大小的页面; 而段的长度却不固定, 它取决于用户的程序。 通常由编译程序在对源码进行编译时,根据程序的性质来划分。 分页的进程地址空间是一维的, 即单一的线性空间; 而分段的进程地址空间是二维的,由段号和段内地址两部分组成。 3. (7) 什么是虚拟存储器?列举采用虚拟存储器的必要性和可能性。解: 虚拟存储器是指在具有层次结构存储器的计算机系统中,具有请求调入和交换功能, 为用户提供一个比实际物理内存容量大得多的可寻址的一种存储器系统, 存容量进行扩充。 采用虚拟存储器的必要性:传统存储管理方式要求将作业全部装入内存之后才能运行, 这一特征导致大作业和多个作业要求运行时系统无法满足; 另外,传统存储管理方式具有驻 I/O 留性,即作业装入内存直到运行结束,便一直驻留在内存中。尽管进程在运行中会因 等原因而长期处于阻塞状态, 或有的程序模块在运行过一次后就不再需要, 续占用宝贵的内存资源。 采用虚拟存储器的可能性: 根据程序的局部性定理, 应用程序在执行之前, 没有必要全 部装入内存, 而只需要将那些当前要运行的部分页或段先装入内存即可运行, 仍然留在外存。程序在执行时,如果它所访问的页 其余部分可以 它能从逻辑上对内 但它们都仍将继 ( 段 ) 已经调入内存,便可继续执行下去。 但如果程序所要访问的页 ( 段) 不在内存中 ( 称为缺页或缺段 ) ,此时程序可以利用操作系统提供的请求调页 ( 段 ) 功能,将它们调入内存,以便程序能够继续执行下去。如果内存已满,无 法装入新调入的页 ( 段 ) ,则必须利用一定的页 ( 段 ) 置换功能,将内存中暂时不用的页 ( 段 ) 换到外存中,以腾出足够的空间来存放新调入的页 ( 段 ) ,从而保证程序的顺利执行。这样,一个大的程序就可以在较小的内存空间中执行。 从用户的角度来看, 该系统所具有的内存容量比实际内存容量大了很多。 但实际上, 用户所看到的大容量存储器是不存在的, 只是虚拟的,故把这样的存储器称为虚拟存储器。 (8) 一个计算机系统的虚拟存储器,其最大容量和实际容量分别由什么决定?解: 虚拟存储器的最大容量由主存和辅存的容量之和确定。 虚拟存储器的实际容量由指令中表示地址的字长决定,也就是计算机的地址结构决定 的。 (9) 描述下列算法:①首次适应;②最佳适应;③最差适应解: 最先适应算法又称首次适应算法,该算法要求空闲分区表或空闲分区链按起始地址递 增的次序排列。 在进行内存分配时, 从空闲分区表 ( 链 ) 首开始顺序查找, 一旦找到大于或等于所要求内存长度的分区, 则结束查找。 然后,该算法从该分区中划出所要求的内存长度分 配给请求者,余下的空闲分区仍留在空闲分区表 ( 链 ) 中,同时修改其相应的表 ( 链 ) 项。 最佳适应算法要求空闲分区按容量大小递增的次序排列。当用户作业申请一个空闲区 时,存储管理程序从空闲分区表 ( 链 ) 首开始顺序查找,当找到第一个满足要求的空闲区时, 则与最先适应算法相同, 停止查找。 按这种方式为作业分配内存, 就能把既满足作业要求又与作业大小最接近的空闲 分区分配给作业。 如果空闲分区大于作业的大小, 将减去作业请求 长度后的剩余空闲区仍然留在空闲分区表 ( 链 ) 中。 ( 链 ) 。当用户作业申 最坏适应算法要求空闲分区按其大小递减的顺序组成空闲分区表 请一个空闲区时, 先检查空闲分区表 ( 链 ) 的第一个空闲分区的大小是否大于或等于所要求的 内存长度, 若空闲分区表 ( 链 ) 的第一项长度小于所要求的大小, 则分配失败, 否则从该空闲分区中划出与作业大小相等的一块内存空间分配给作业, 余下的空闲分区仍然留在空闲分区表( 链 ) 中。 (10) 如果内存划分为 100KB、 500KB、 200 KB、 300 KB 和 600 KB( 按顺序 ) ,那么,首次适 应、最佳适应和最差适应算法各自将如何放置大小分别为 215 KB、414 KB、110 KB和 430 KB(按 顺序 ) 的进程,哪一种算法的内存利用率高? 解 : 见下图,在首次适应和最差适应算法中,最后 430KB 没有空间分配。由图可知,最佳 适应算法的内存利用率高。 (11) 某操作系统采用分区存储管理技术。操作系统占用了低地址端的 100KB的空间,用户 区从 100KB处开始共占用 512KB,初始时,用户区全部空闲,分配时截取空闲区的低地址部分作为一个分配区。在执行了如下的申请、释放操作序列后: 作业 1 申请 300KB、作业 2 申请 100KB、作业 1 释放 300KB、作业 3 申请 150KB、作业 4 申请50KB、作业 5 申请 90KB。 ① 分别画出采用首次适应算法、最佳适应算法进行内存分配后的内存分配图和空闲区队列; ② 若随后又申请 80KB,针对上述两种情况会产生什么后果? 解 : 采用首次适应算法、 最佳适应算法进行内存分配后的内存分配图和空闲区队列图如下所 示。 若随后又申请 80KB,只有采用首次适应算法的内存分配还有空间可以分配,分配图如 下: (12) 假设一个有 8 个 1024 字节页面的逻辑地址空间,映射到一个有 ① 逻辑地址有多少位? 解: 逻辑地址有 13 位;物理地址有 15 位。 (13) 某虚拟内存的用户编程空间共 试将 16 进制的虚拟地址 解: 1. 32 帧的物理内存: ② 物理地址有多少位? 32 页,每页的大小为 1 KB,内存为 16 KB,假设某时刻 6 页, 系统为用户的第 0、1、2、3 页分配的物理块为 5、10、 4、 7,而该用户作业的长度为 0A5C、 093C、1A5C转换成物理地址。 虚拟地址为 0A5C,对应的二进制数为: 0000 1010 0101 1100 。其中,页内偏移量 占 10 位地址码,为 25C。页号占 6 位地址码,为 2 号页。因第 2 页存储在 4 号块 中,其基地址为: 0001 0000 0000 0000 ,即十六进制的 址为十六进制的 125C。 2. 虚拟地址为 093C,对应的二进制数为: 0000 1001 0011 1100 。其中,页内偏移量 1000H。这样,其物理地 占 10 位地址码,为 13C。页号占 6 位地址码,为 2 号页。因第 2 页存储在 4 号块 中,其基地址为: 0001 0000 0000 0000 ,即十六进制的 址为十六进制的 113C。 1000H。这样,其物理地 3. 虚拟地址为 最大的页号为 1A5C,对应的二进制数为: 0001 1010 0101 1100 。页内偏移量占 5 号。因为虚拟地址为 1A5C对应的 6 号页超出了地址范围,所以属 10 6 页, 位地址码, 为 25C。页号占 6 位地址码, 为 6 号页。因为该用户作业的长度为 于越界。 (14) 覆盖技术和虚拟存储技术有何区别,交换技术和虚拟存储器中使用的调入和调出技术有何区别和联系? 解 : 覆盖技术与虚拟存储技术最本质的不同在于覆盖程序段的最大长度要受内存容量大小 的限制,而虚拟存储器中程序的最大长度不受内存容量的限制, 只受计算机地址结构的限制。另外,覆盖技术中的覆盖段由程序员设计,且要求覆盖段中的各个覆盖具有相对的独立性, 不存在直接联系或相互交叉访问;而虚拟存储技术对用户的程序段之间没有这种要求。交换技术就是把暂时不用的某个程序及数据从内存移到外存中去,以便腾出必要的内存空 间,或把指定的程序或数据从外存读到内存中以允许其运行的一种内存扩充技术。 交换技术与虚存中使用的调入 / 调出技术的主要相同点是:都要在内存与外存之间交换信息。主要区 别是:交换技术调入 / 调出整个进程,因此一个进程的大小要受内存容量大小的限制;而虚存中使用的调入 / 调出技术在内存和外存之间来回传递的是页面或分段,而不是整个进程,从而使得进程的地址映射具有了更大的灵活性,且允许进程的大小比可用的内存空间大。 (15) 在虚拟页式存储系统中引入了缺页中断,说明引入缺页中断的原因,并给出其实现的方法。 解: 虚拟页式存储系统中,系统允许作业的一部分页面在内存。当系统产生了缺页中断后, 操作系统才能将不在内存的页面从外存调入内存。 继续执行它的程序了。 缺页中断的实现由硬件和软件两部分组成。其实现方法如下: 当 CPU执行一条指令时, 形成操作数的有效地址。 其中的页号部分用来检查页表, 看该页是否在内存。 如果在内存, 则进行地址变换, 按变换后的地址取出操作数; 如果不在内存,则引起缺页中断,进入缺页中断处理程序。在缺页中断处理程序中,主要的处理为: 1 2 回。 利用存储器分块表检查实存是否有空闲页面。 如果有空闲存储块, 则根据页表提供的磁盘地址调入所需的页面, 修改页表和分块表后返当缺页被调入, 使中断恢复, 进程就可以 3 如果没有空闲存储块, 则选择一页淘汰掉。 若该页被修改过还需写回外存, 调入所需的页面。然后修改页表和分块表,返回。 (16) 试述缺页中断与一般中断的主要区别。 解: 程序在执行时,当访问的页面不在内存时,便产生缺页中断,请求操作系统将所缺页 调入内存。 中断处理程序将把控制转向缺页中断子程序。 面装入主存中。 接着处理器将重新执行缺页时打断的指令。 就是说, 缺页中断同样需要经历诸如保护 1. 一般中断是一条指令完成后中断, 然后系统执行此子程序, 把所缺页 缺页中断是一种特殊的中断, 也 CPU环境、分析中断原因、 转入缺页中断处理程序 而缺页中断是在一条指令执行时中断。 通常,CPU 进行处理、恢复 CPU环境等几个步骤,但与一般的中断相比,它又具有以下不同点: 都是在一条指令执行完之后, 才检查是否有中断请求到达。 如果有,便去响应中断,否则,继续执行下一条指令。然而, 缺页中断则是在指令执行期间,发现所访问的 指令或数据不在内存时所产生和处理的。 2. 一条指令执行时可能产生多个缺页中断。 如指令可能访问多个内存地址, 这些地址 在不同的 中。 (17) 假 有下面的段表: ① [0,430] ; ② [1,12] 下面 地址的物理地址分 是多少? ; ③ [2,500]; 段 0 1 2 3 4 ④ [3,400]; 基址 219 2300 90 1327 1952 ⑤ [4,122] 长度 600 14 100 580 96 解: ①: 649 ;②: 2312;③:越界;④: (18) 考 下面存 序列, 程序的大小 1727;⑤:越界 460 字 ( 以下数字均 十 制数字 ) : 10、11、104、 170、 73、 309、185、245、 246、 434、 458、364 面的大小 100 字, 程序的基本可用内存 200 字, 算采用 FIFO、LRU和 OPT置 算法的缺 次数。 解 : 因 面的大小 100 字, 程序的基本可用内存 200 字,即可用内存 序的存 序列可 如下 面 序列: 1、 1、2、 2、 1、4、 2、 3、 3、 5、 5、 4 采用 FIFO、 LRU和 OPT置 算法的 序列如下: 2 。程 由 可知 FIFO 算法的缺 次数 6 次, LRU的缺 次数 7 次, OPT的缺 次数 5 次。 (19) 有一个矩 int a[100][100]以行 先 行存 。有一虚 存 系 ,物理内存共有 3 ,其中 1 用于存放程序,其余 2 用于存放数据。假 程序已 在内存中占用 1 , 其余 2 空 。 程序 A: 程序 B: for (i=0;i<100;i++) for (j=0;j<100;j++) for (j=0;i<100;j++) for (i=0;i<100;i++) a[i][j]=0; a[i][j]=0; 若每 可存放 每 只能存放 解: 200 个整数, 程序 A 和程序 B 在 行 程中各会 生多少次缺 ?若 100 个整数呢?以上 明了什么 ? a 有 100 100=10000 个整数,系 中共有 2 个内存 用于 A,数 由 目所 条件可知,数 存放数 信息,数 中的元素按行 址。 若每 可以存放 元素的 序 : a[0][0], a[0][1], a[1][0], a[1][1], 200 个整数, 一个内存 中可以存放 2 行数 元素, 于程序 ⋯ , a[0][99] ⋯ , a[1][99] ⋯ a[99][0], a[99][1], ⋯, a[99][99] 然,程序 于程序 A 数 a 的 序与存 序一致,也是按行 行的。因此程序 100/2=50 次缺 中断。 A 每 2 行数 元素都会 生一次缺 中断, 整个数 会 生 B,数 元素的 序是: ⋯ , a[99][0] ⋯ , a[99][1] ⋯, a[99][99] a[0][0], a[1][0], a[0][1], a[1][1], ⋯ a[0][99], a[1][99], 然,程序 B 数 a 的 序与存 序不一致。因此程序 B 每 2 个元素将 1 行数 元素, 于程序 10000 次缺 中断。 面的减小 系 效率及 A,每 生一次缺 中断, 整个数 将 生 若每 只能存放 序 B,每 1 行数 元素都会 生一次缺 中断, 10000/2=5000 次缺 中断。 整个数 会 生 100 次缺 中断; 于程 100 个整数, 一个内存 中只能存放 1 个元素将 生一次缺 中断, 整个数 将 生 减小 面大小影响不大, 当缺 次数很大 , 以上 果 明,缺 中断的次数和数据存放方法及程序 数据的方法有很大关系; 当缺 次数 少 , 程序的 行会 来很大影响。 (20) 什么是 程在某 刻 t 的工作集?工作集与 面的 入和淘汰策略有什么关系? 解: 工作集是指在某段 隔 在 t- ~ t 之 所 的 面集合 里, 程 的 面集合,具体地 便是把某 程 w(t, ) ,把 量 称 工作集窗口尺寸。 正确 工作集窗口尺寸, 存 器的有效利用和系 吞吐率的提高,都将 生重要 影响。一方面,如果把 用。另一方面,如果把 降低了系 的吞吐率。 (21) 什么是抖 ? 生抖 的原因是什么?解: 抖 是由于内存空 争引起的。当需要将一个新 面 入内存 ,因内存空 , 不得不将一个老 面置 出去, 而 置 出去的老 面可能又要被使用, 因此需要重新将它 入。若一个 程 繁地 行 面 入 出, 必加大系 的开 , 使系 运行效率降低。通常称 种 象 程 生了抖 。 得很大, 程 不易 生缺 ,但存 器也将不会得到充分利 得 小, 会使 程在运行 程中 繁地 生缺 中断,反而 生抖 的原因主要有: 系 内的 程数量太多, 致使一个 程分得的存 少; 系 采用的置 算法不 合理。 第 6 章 文件管理 (1) 什么是文件,它包含哪些内容及特点?解: 文件是 算机系 中信息存放的一种 形式,是在 上具有完整意 的信息集合, 并且有一个名字以供 。 文件包含的内容有:源程序、二 制代 、文本文件、数据、表格、声音和 像等。 文件的特点如下: 1. 2. 文件具有保存性。它被存 在某种存 介 上, 期保存和多次使用。 文件是按名存取的。每个文件具有唯一的 名,通 名( 文件名 ) 来存取文 件中的信息,而不需了解文件在存储介质上的具体物理位置。 3. 文件的内容是一组信息的集合。信息可以是源程序、二进制代码、文本文件、数据、表格、声音和图像等。 (2) 文件系统要解决哪些问题?解: 文件系统的主要目标是提高存储空间的利用率,它要解决的主要问题有:完成文件存 储空间的管理, 实现文件名到物理地址的转换, 实现文件和目录的操作, 提供文件共享能力和安全措施, 提供友好的用户接口。 文件系统向用户提供了有关文件和目录操作的各种功能接口和系 统调用,如命令接口、程序接口和交互接口等。 (3) 什么是逻辑文件?什么是物理文件?解: 逻辑文件时从用户观点出发所观察到的文件组织形式,是用户可以直接处理的数据及 其结构。 物理文件是指文件在外存上的存储组织形式。它与存储介质的存储性能有关。 (4) 文件的物理组织方式有哪些,各有什么优缺点?解: 文件的物理组织方式有连续文件结构、链接文件结构和随机文件结构。 1. 连续文件结构是由一组分配在磁盘连续区域的物理块组成的。文件中的每一个记 录有一个序号,序号为 2. i+1 的记录,其物理位置一定紧跟在 i 号记录之后。 链接文件结构是按顺序由串联的块组成的,即文件的信息按存储介质的物理特性存于若干块中,一块中可包含一个逻辑记录或多个逻辑记录,或者一个逻辑记录 占有多个物理块。每个物理块的最末一个字( 或第一个字 ) 作为链接字,它指向后 继块的物理地址。文件的最后一块的链接字为结束标记 ( 例如“ ” ) ,它表示文件至本块 结束。 3. 随机文件结构是实现非连续分配的另一种方式。在随机文件结构中,文件的数据记录存放在直接存取型存储设备上,数据记录的关键字和其地址之间建立某种对 应关系,并利用这种关系进行存取。通常有三种形式的随机文件结构:直接地址 结构、索引结构和散列结构。 连续文件的优点是不需要额外的空间开销, 系统文件 ) ,这是一种较为节省的方法。其缺点是: 1. 不能动态增长。因为在它后面如果已经记录了别的文件,则这一文件增长就可能破坏后边的文件。如果后移下一个文件,则系统开销太大,甚至不可能。 一开始就提出文件长度要求,而要用户预先知道文件长度不是太容易。 一次要求比较大的连续存储空间,不一定好找。因为,如果外存上只有许多小的自由空间,虽然其总容量大于文件的要求,但由于不连续,因而这些空间可能被浪费。 链接文件可以克服连续文件的上述缺点,然而它也存在如下缺点: 1. 由于在处理文件的一部分时必须得顺序访问,因而访问速度较慢,时间上比较浪费。 对块链接而言,每个块中都要有链接字。所以,要占用一定的存储空间。 只要在目录中指出起始块号和文件长度, 就 ( 比如 可以对文件进行访问,且一次可以读出整个文件。对于固定不变且要长期使用的文件 2. 3. 2. 相比之下, 随机文件是一种比较好的结构,便于直接存取。但问题是, 对于索引文件应考虑如何有效地存储和访问索引表, 对于散列文件应寻找一个较好的散列算法和确定解决冲突的办法。 (5) 什么是文件目录,常用的文件目录结构有哪些,各有什么特点? 解: 文件目录是文件控制块的有序集合,是文件系统中最基本的数据结构。 通过它可以将文 件名转换为文件在外存的物理位置。 改时间等。 文件目录通常是放在磁盘上的。它的组织形式有 录。其中用得最普遍的是多级目录。 1. 单级目录是最简单的目录结构。在整个文件系统中只建立一张目录表,每个文件占一个目录项,目录项中包含文件名、文件扩展名、文件类型、文件长度、文件物理地址以及其它文件属性。 2. 为了克服单级目录存在的缺点,改变单级目录中文件的命名冲突,并提高对目录 文件的检索速度,可以为每一个用户建立一个单独的用户文件目录 Directory) 成。另为,系统再建立一个主文件目录 MFD (Master File Directory) UFD(User File ,在主文件 每一个文件控制块在文件目录中都有一个目录项, 其中 登记着文件的名字、外存地址、文件长度、逻辑结构、物理结构、访问权限、文件建立和修 3 种:单级目录、二级目录和多级目 。这些文件目录具有相似的结构,它由用户所有文件的文件控制块组 目录中,每个用户目录文件都占有一个目录项,其目录项中包括用户名和指向该用户目录文件的指针。 3. 在大型文件系统中,通常采用三级或三级以上的目录结构,以提高对目录的检索速度和文件系统的性能。多极目录结构又称为树型目录结构。多级目录结构是一棵倒向的有根树,树根是根目录;从根向下,每一个树枝是一个子目录,而树叶则是文件。树形目录有许多优点:它较好地反映了现实世界中具有层次关系的数据集合和较确切地反映系统内部文件的分支结构,不同的文件可以重名,只要它们不位于同一子目录中即可,易于规定不同层次或子树中文件的不同存取权限,便 于文件的保护、保密和共享等。 (6) 使用文件系统时,为什么要显式地使用 解: 显式的 open 操作完成文件的打开功能。它将基本文件目录中的内容读入用户活动文件 表中,并在系统活动文件表中记录文件的打开次数。 它撤销用户的活动文件表中相应的表项, 显式的 close 操作完成文件的关闭操作。 如果 open 和 close 命令来打开和关闭文件? 改变系统活动文件表中的文件打开次数信息。 需要,还要将被改动过的文件目录信息写回基本文件目录中。 可以取消显式的 open 与 close 操作。如果取消了 件操作前需判断文件是否已打开。 目录。 取消显式的 open 和 close 操作使得文件的读写操作变得复杂,因为,在每次读写前都 需要判断文件是否已被打开。此外,系统在结束时也要做一些额外的工作,以完成 应该完成的操作。 (7) 文件系统提供系统调用 rename 来实现文件重命名,同样也可以通过把文件拷贝到新文件并删除原文件来实现文件的重命名,这两种方法有什么不同? 解: 使用 rename 文件重命名功能时,用户必须提供两个参数:旧文件名和新文件名。实现 该功能时, 系统使用旧文件名查找文件目录, 若找到旧文件名所对应的目录表项, 则将目录表项中文件名字段对应的值改为新文件名值。 从实现过程看, 文件重命名功能完成的工作是修改目录表项中的文件名字段,除文件名外,文件的其它特性都未改变。 close open 和 close 操作,系统在进行文 以建立用户与 更新系统的基本文件 若未打开, 则应自动完成文件的打开功能, 文件间的联系。 同时,在系统结束时还应自动关闭所有的被打开文件, 在后一种实现方法中,先进行文件复制并给复制文件起一个新名,此时系统完成了一 次物理文件的复制工作, 然后删除旧文件。 虽然这样也能达到给文件重命名的目的, 但其实现过程比前一种方式复杂,并且新文件与旧文件的物理存放地址肯定不同。 (8) Hash 检索法有何优点?有何局限性?解: Hash 方法是根据记录的“主属性值”进行 位置。其优点是: 该方法实现起来比较简单。 检索记录的时间也比较短。 由于设计的 Hash 函数很难达到理想的均匀分布, 记录值,这将造成存放位置的冲突,使检索速度下降。 (9) 采用单级目录能否满足对目录管理的主要要求?为什么?解: 单级目录是最简单的目录结构。在整个文件系统中只建立一张目录表,每个文件占一个目录项,目录项中包含文件名、文件扩展名、文件类型、文件长度、文件物理地址以及其它文件属性。 单级目录的优点是简单、 易于实现, 实现了目录管理的基本功能——按名存取, 在以下一些缺点: 1. 查找速度慢:当系统中存在大量文件或众多用户同时使用文件时,由于每个文件 占用一个目录项,单级目录中就拥有数量可观的目录项。如果要从目录中查找一 但却存 Hash 运算,用得出的值确定该记录的存放 因此可能会出现较多有相同 Hash 的 个文件,就需要花费相当长的时间才能找到。对于一个具有 N 个目录项的单级目录,为 2. 检索出一个目录项,平均需要找 N/2 个目录项。 不允许重名:因为所有的文件都在同一目录中,因此每个文件必须有不同的文件名,然而,重名问题在现代操作系统中是难以避免的。另外,即使在单用户环境 3. 下,随着文件数量的增加,让用户记住所有的文件名也是不可能的。 不便于文件的共享:通常每个用户都有自己的名字空间和命名习惯,应当允许不同用户使用不同的文件名来访问同一文件,然而,单级目录却要求所有用户用同 一个名字来访问同一文件。 所以,单级目录不能满足对目录管理的主要要求。 (10) 什么是文件的共享,实现文件共享的方式有哪些? 解: 文件共享是指不同的用户可以使用同一文件。文件的共享可以节省大量的辅存空间和内存空间,减少输入 / 输出操作,为用户间的合作提供便利条件。 从系统管理的角度来看,有 3 种方法可以实现文件的共享,即:绕道法、 链接法和基本文件目录表 BFD。 (11) 文件目录和目录文件各起什么作用?解: 文件目录又称文件控制块或文件说明信息, 它记录文件的名字、 文件长度、 文件存放在 外存上的物理地址, 以及文件建立时间、 日期等信息。通常, 文件系统中把若干相互关联文件的目录组成一个独立的文件,这个由文件目录组成的文件称为目录文件。 问:①位示图占用多少磁盘空间?②第(12) 某操作系统的磁盘文件空间共有500 块,若用字长为 解: 32 位的位示图管理磁盘空间, 试 i 字第 j 位对应的磁盘块号是多少? ① 占用 16 个字的存储空间。 ② 32 i+j 。 (13) 试说明对索引文件和索引顺序文件的检索方法。 解: 索引文件中,每一个主文件的记录都要建立一条索引。这里,主文件的记录可以是变长的,键值可以是无序的。索引表是定长的和有序的,适合采用折半检索法进行检索。 索引顺序文件中,主文件中的记录分成若干组,每一组的第一条记录建立一条索引项。 整个索引文件是按键值排序的, 系统可采用折半检索法对文件进行快速检索。 检索到记录所在的外存块后,读出该块,再进行顺序查找和比较,最后找到所需要的记录。 (14) 目前广泛采用的目录结构形式是哪一种?它有什么优点?解: 目前广泛采用的目录结构形式是多级目录结构,也称树型目录结构。它可以实现文件 管理的主要要求,其优点是: 检索速度快 文件可重名 便于文件共享 (15) 基本的文件访问类型有哪些?什么是访问控制表?解: 一个文件系统可以定义多种不同的访问类型,基本的访问类型有: ● 读 (R) :从文件中读信息。 ● 写 (W): 对文件内容进行写或重写。 ● 执行 (E) :用户可以将文件装入内存并执行它。 ● 添加 (A) :将信息添加到文件末尾。 ● 删除 (D) :删除文件,释放其占用的空间。 不同的用户可能对同一个文件或目录需要不同类型的访问。实现基于身份访问的最普 通的方法是为每个文件和目录增加一个访问控制表 (access control list ,ACL),以给定每个用户名及其所允许的访问类型。 当用户请求访问一个特定文件时, 操作系统先检查该文件 的访问控制表,如果用户具有相应的访问权限,就允许其访问,否则,就出现保护违约,拒绝用户访问。 (16) 什么是索引文件?为什么要引入多级索引?解: 索引文件中每条主文件的记录都建立一个索引记录,因而需要为主文件建立索引表。 在对索引文件进行检索时, 首先根据用户 ( 程序 ) 提供的关键字, 并利用折半查找法去检索索 去访问所需的记录。 引表,从中找到对应的表项, 再利用该表项中给出的指向记录的指针值, 那么我们就必须像处理其它文件的存放那样决定索引表的物理存放方式, 的动态增加; 索引表也可以按链接联方式存放, 在很多情况下,有的文件很大,文件索引表也就较大。如果索引表的大小超过一个物理块, 但这不利于索引表 显然, 但这却增加了存放索引表的时间开销。 当文件太大,其索引块太多时,这种方法是低效的。一种较好的解决办法是采用多级索引,也就是在索引表所指的物理块中存放的不是文件信息,而是装有这些信息的物理块地址。 第 7 章 设 备 管 理 (1) 简单叙述设备管理的任务和功能。解: 设备管理的主要任务包括: 1. 2. 响应用户进程提出的 I/O 请求,选择和分配 I/O 设备进行数据传输操作。 控制 I/O 设备和 CPU(或内存 ) 之间进行数据交换,提高设备和设备之间、 备之间以及进程和进程之间的并行操作度,提高 I/O 设备的速度。 3. 方便用户使用设备, 为用户提供友好的透明接口, 把用户和设备硬件特性分开, 使得用户在编写应用程序时不必涉及具体的设备,系统按照用户的要求控制设备工 作。另外,这个接口还为新增加的用户设备提供一个和系统核心相连接的入口, 便用户开发新的设备管理程序。 为了完成上述任务,设备管理应具有下述功能: 1. 设备分配 : 计算机系统中的设备不允许用户直接使用,而是由操作系统统一分配和 以 CPU和设 CPU与 I/O 设备的利用率,提高 控制。设备分配的基本任务是根据用户进程的 I/O 请求及系统当前的 I/O 资源情况,按照某种设备分配算法为用户进程分配所需的设备。 2. 缓冲管理 : 为缓和 CPU和 I/O 设备间速度不匹配的矛盾, 提高 CPU与 I/O 设备之间以及各设备之间的并行性,现代操作系统都引入了缓冲技术。 设备驱动 : 设备驱动是指对物理设备进行控制, 实现真正的 I/O 操作。设备驱动的基本任务是实现 CPU与设备控制器之间的通信, 即接收由 CPU发来的 I/O 命令,如读/ 写命令,转换为具体要求后,传给设备控制器,启动设备去执行;同时也将由 设备控制器发来的信号传送给 CPU,如设备是否完好、是否准备就绪、 I/O 操作是 否已完成等,并进行相应的处理。 (2) 简单比较一下各种 I/O 控制方式的优缺点。 解: I/O 控制方式有四种, 即程序直接控制方式、 中断控制方式、 DMA方式和通道控制方式。 它们各自的优缺点叙述如下: 1. 程序直接控制方式。 优点是控制简单, 不需要很多硬件支持。 但 CPU和外设之间只 能串行工作, 且 CPU的大部分时间处于循环测试状态, 这使得 CPU的利用率大大降 3. 低; CPU在一段时间内只能和一台外设交换数据信息,从而不能实现设备之间的并 行工作;由于程序直接控制方式依靠测试设备状态标志来控制数据传送, 发现和处理因设备或其它硬件所产生的错误。 些 CPU执行速度较慢且外设较少的系统。 2. 因此无法 所以,程序直接控制方式只适用于那 中断控制方式。优点是能实现CPU与设备、设备与设备间的并行操作,CPU的利用 率较程序直接控制方式大大提高。 但 I/O 控制器的数据缓冲寄存器通常较小, 且数 据缓冲寄存器装满数据后将会发出中断,因此一次数据传送过程中中断次数较多, 耗去了大量 CPU时间;如果系统中配置的外设数目较多, 且都以中断方式进行控制, 则将耗去大量 CPU时间或因 CPU来不及处理而造成数据丢失。 3. DMA方式。与中断方式相比, DMA方式的优点是在一批数据传送完成后中断 CPU, 从而大大减少了 CPU进行中断处理的次数,并且 DMA方式下的数据传送是在 DMA 控制器控制下完成的, 在数据传输过程中无需 限,如对外设的管理和某些操作仍由 CPU干预。但 DMA方式仍有一定的局 CPU控制,且多个 DMA控制器的使用也不经济。 4. 通道控制方式。 通道是一个专管输入 / 输出控制的处理机。 在通道控制方式下, CPU 只需发出 I/O 指令,通道就能完成相应的 I/O 操作,并在操作结束时向 CPU发出中 断信号。由此可见, CPU仅在 I/O 操作开始和结束时花极短的时间处理与 通道价格较高,从经济的角度出发不宜过多使用。 I/O 操作 但是, 有关的事宜, 其余时间都与通道并行工作, 此外一个通道还能控制多台外设。 (3) 为什么要引入缓冲技术,其基本实现思想是什么? 解: 缓冲技术是用来在两种不同速度的设备之间传输信息时平滑传输过程的常用手段。在 操作系统的设备管理中,引入缓冲技术的主要原因可归结为以下几点。 缓解 CPU和 I/O 设备间速度不匹配的矛盾。 减少对 CPU的中断频率。 提高 CPU和 I/O 设备之间的并行性。 缓冲技术的实现思想是在 CPU和外设之间设立缓冲, 用以暂存 CPU和外设之间交换的数据,从而缓和 CPU与外设速度不匹配所产生的矛盾。 缓冲的实现方法有两种: 一种实现方法是采用硬 件缓冲器, 但由于这种方法成本太高, 除一些关键部位外, 一般情况下不采用硬件 缓冲器;另一种实现方法是在内存划出一块存储区,专门用来临时存放输入 / 输出数据,这个区域称为缓冲区。 (4) 什么是 SPOOLing系统,如何利用 SPOOLing系统实现打印机的虚拟分配?解: SPOOLing 是外围设备同时联机操作, 一台物理 I/O 设备虚拟为多台逻辑 又称为假脱机输入 / 输出操作。 SPOOLing技术可将 I/O 设备,从而允许多个用户共享一台物理 I/O 设备。 SPOOLing 技术是对脱机输入、输出系统的模拟,因此,它必须建立在具有多道程序功 能的操作系统上,而且还应该有高速随机外存的支持,这通常是采用磁盘存储技术。 SPOOLing 系统通常由以下 3 部分组成: 1. 输入和输出井: 这是在磁盘上开辟的两个大存储空间。输入井是模拟脱机输入时的 磁 盘设备, 用于暂存 I/O 设备输入的数据; 输出井是模拟脱机输出的磁盘, 用于暂存用户程序的输出数据。 2. 输入缓冲区和输出缓冲区: 为了缓和 CPU和磁盘之间速度不匹配的矛盾, 在内存中 开辟两个缓冲区: 输入缓冲区和输出缓冲区。 输入缓冲区用于暂存由输入设备送来 的数据, 以后再传送到输入井; 输出缓冲区则用于暂存从输出井送来的数据, 以后再传送给输出设备。 3. 输入进程和输出进程: SPOOLing 利用两个进程来模拟脱机I/O 时的外围控制机。 其中,输入进程模拟脱机输入时的外围控制机,将用户要求的数据从输入机通过输 入缓冲区再送到输入井, 当 CPU需要输入数据时, 直接从输入井中读到内存; 输出进程模拟脱机输出时的外围控制机, 把用户要求输出的数据, 先从内存送到输出井,待输出设备空闲时,再将输出井中的数据经过输出缓冲区送到输出设备上。 (5) 简单描述 I/O 软件的设计原则以及各层的功能。解: I/O 1. 软件设计时主要考虑以下几个问题: 设备无关性。 对于 I/O 系统中许多种类不同的设备, 作为程序员, 只需要知道如何 使用这些资源来完成所需要的操作,而无需了解设备的有关具体实现细节。例如, 应用程序访问文件时,不必考虑它是存储在硬盘、软盘,还是 理软件,也无需因为 2. 统一命名。要实现设备的无关性,其中一项重要的工作就是如何给 CD-ROM上。对于管 I/O 设备命名。 I/O 设备变化,而重新编写涉及设备管理的程序。 不同的操作系统有不同的命名规则, 一般而言, 是在系统中对各类设备采取预先设计的、统一的逻辑名称进行命名, 所有软件都以逻辑名称访问设备。 这种统一命名与具体设备无关, 即同一逻辑设备的名称, 在不同的情况下可能对应于不同的物理设备。 3. 出错处理。 错误多数是与设备紧密相关的, 因此对于错误的处理, 应该在尽可能靠 近硬件的地方处理, 在底层软件能够解决的错误就不要让高层软件感知, 只有底层软件解决不了的错误才通知高层软件解决。 4. 缓冲技术。 由于 CPU与 I/O 设备之间的速度差异, 需要使用缓冲技术。 对于不同类 型的设备, 其缓冲区的大小是不一样的, 块设备的缓冲是以数据块为单位, 而字符设备的缓冲则以字节为单位。因此, I/O 软件应能屏蔽这种差异,向高层软件提供 统一大小的数据块或字符单元, 使得高层软件能够只与逻辑块大小一致的抽象设备进行交互。 5. 设备的分配和释放。 对于系统中的共享设备, 如磁盘等,可以同时为多个用户服务。 对于共享设备, 应该允许多个进程同时对其提出 I/O 请求。对于独占设备, 如键盘和打印机等, 在某一段时间只能供一个用户使用, 对其分配和释放不当, 将引起混乱,甚至 死锁。对于独占设备和共享设备带来的许多问题, I/O 软件必须能够同时进行妥善地解决。 6. I/O 控制方式。针对具有不同传输速率的设备,综合系统效率和系统代价等因素, 合理选择 I/O 控制方式, 如像打印机等低速设备应采用中断驱动方式, 高速设备则采用 DMA控制方式等,以提高系统的利用率。为方便用户, 能屏蔽这种差异,向高层软件提供统一的操作接口。 操作系统通常把 I/O 软件组织成如下 4 个层次。 1. I/O 中断处理程序。用于保存被中断进程的 CPU环境,转入相应的中断处理程序进 而对磁盘等 I/O 软件应 行处理,处理完后再恢复被中断进程的现场,然后返回到被中断进程。 2. 设备驱动程序。 与硬件直接相关, 负责具体实现系统对设备发出的操作指令, 驱动 I/O 设备工作的驱动程序。 设备无关软件。 负责实现与设备驱动器的统一接口、 设备命名、 设备的保护以及设备的分配与释放等,同时为设备管理和数据传送提供必要的存储空间。 用户层 I/O 软件。实现与用户交互的接口,用户可直接调用在用户层提供的、与 I/O 操作有关的库函数,对设备进行操作。 (6) 为什么要引入设备独立性,如何实现设备独立性?解: 设备独立性又称为设备无关性。它指的是应用程序在使用设备进行 I/O 时,使用的是 I/O 重定向。 系统查阅 3. 4. 逻辑设备, 而系统在实际执行时使用的是物理设备, 系统为每个进程设置一张逻辑设备表 的映射建立在该用户的 进程利用逻辑设备名请求 解: 由操作系统负责逻辑设备与物理设备的 映射。引入设备独立性可以使设备的分配具有极大的灵活性,并易于实现 LUT。当某进程用逻辑名来请求设备时, 系统设备表 SDT,为它分配相应的可用物理设备。系统将这种用户逻辑设备与系统物理设备 LUT 中,并将该物理设备的驱动程序入口地址填入 I/O 操作时,系统通过查找 LUT 中。以后, 该 LUT即可找到物理设备及其驱动程序。 (7) 设备分配中会出现死锁吗,为什么? 设备分配中会出现死锁。 因为在不安全分配方式中, 进程在发出 I/O 请求后仍继续运行,需要时则可以发出第二个、 第三个 I/O 请求等。仅当进程所请求的设备已被另一个进程占用时,请求进程才进入阻塞状态。 这种分配方式的优点是, 一个进程可同时使用多个设备,使 进程推进迅速。其缺点是分配不安全,因为它可能具备“请求和保持”条件,从而可能造成 死锁。 因此,在设备分配时,还应对本次的设备分配是否会发生死锁进行安全性检查, 仅当分配是安全的情况下才可以进行设备分配。 (8) 试说明 DMA的工作流程。解: 1. CPU需要访问外存时, 便发送一条访问命令给 DMA的命令寄存器 CR、一个内存地址码给 DMA的内存地址寄存器 MAR、本次要传送的字节数给 DMA的数据计数器 DC、外存地址给 DMA的 I/O 控制逻辑中。 2. 3. 4. 启动 DMA控制器,然后 CPU转其它任务处理。 DMA控制器负责控制数据在内存与外存之间传送。每传送一个字节就需挪用一个内 存周期,按 MAR从内存读出或写入内存一个字节,修改 当 DC修改为 0 时,表示传送结束,由 (9) 什么是中断,简单叙述中断的处理过程? MAR和计数器 DC。 DMA向 CPU发出中断请求。 解: 中断是指计算机在执行期间,系统内发生任何非寻常的或非预期的急需处理事件,使 得 CPU暂时中断当前正在执行的程序而转去执行相应的事件处理程序, 后又返回原来被中断处继续执行或调度新进程的过程。 待处理完中断程序之 中断处理的过程如下: 1. 首先, CPU检查响应中断的条件是否满足。 CPU响应中断的条件是:有来自于中断 源的中断请求、 CPU允许中断。如果中断响应条件不满足,则中断处理无法进行。 2. 3. 如果 CPU响应中断,则 CPU关中断,使其进入不可再次响应中断的状态。 保存被中断进程的现场。 为了在中断处理结束后能使进程正确地返回到中断点, 系统必须保存当前处理机状态字 PSW和程序计数器 PC等的值。这些值一般保存在特定堆栈或硬 4. 5. 件寄存器中。 分析中断原因, 调用中断处理子程序。 在多个中断请求同时发生时, 处理优先级最高的中断。 执行中断处理子程序。 对陷阱来说, 在有些系统中则是通过陷阱指令向当前执行进程发出软中断信号后调用相应的处理子程序。 6. 7. 解: 设备驱动程序是请求 I/O 的进程与设备控制器之间的一个通信程序,主要功能有: 1. 2. 3. 4. 5. 解: 安全分配是一种“摈弃请求和保持条件”的资源分配方式。在这种方式中,一个进程 一旦获得请求资源, 该进程就由运行状态变为阻塞状态, 使它不可能再请求新的资源。 相反, 退出中断,恢复被中断进程的现场或调度新进程占据处理机。 开中断, CPU继续执行。 (10) 试说明设备驱动程序应完成哪些功能? 将用户的要求转换为具体要求。 检查用户的合法性,了解设备状态,根据要求传递参数,设置设备的工作方式。 向设备控制器发 I/O 命令启动设备,完成具体的I/O 操作。 及时响应外设的中断请求,根据中断类型调用相应的中断处理程序。 具有通道的控制系统,还要构造通道程序。 (11) 什么是设备的安全分配方式和不安全分配方式? 当该进程开始运行时 ( 如 I/O 完成后被唤醒 ) ,它已不占有资源。 因此,这种分配摈弃了造成 死锁的一个条件,分配是安全的。这种分配方式的缺点是进程推进速度慢,因为 CPU和是串行的。 I/O 不安全的分配方式是指进程在提出资源请求时系统不做任何检查,将资源分配给它, 当它再提出第 2 个资源请求时, 若请求的资源已被其它进程占用, 该进程不得不被阻塞等待,那么我们说该进程具备了 “请求和保持” 的条件。具备这种条件的进程可能产生死锁,因此 说,这种分配是不安全的分配。 (12) I/O 软件一般分为 4 个层次:用户层 I/O 软件、设备无关软件、设备驱动程序、 I/O 软件来完成: 中断处理程序。请说明下列工作各由哪一层 I/O ①为了读盘,计算磁道、扇区和磁头; ②维护最近使用的盘块所对应的缓冲区; ③把命令写到设备寄存器中; ④检查用户使用设备的权限; ⑤把二进制整数转换成 解: ①、③、④和⑤属于设备驱动程序的职责,②属于设备无关软件层的职责, (13) 在某个系统的某个运行时刻,有如下表示的磁盘访问的请求序列,假设磁头当前在 柱面,磁臂方向为从小到大。 15、 20、 9、 16、 24、 13、 29 请给出最短查找时间优先算法和电梯调度算法的柱面移动数,并分析为何通常情况下,操作系统并不采用效率更高的最短查找时间优先算法。 解: 1) 按照最短查找时间优先算法,柱面的访问次序是: 15、 16、 13、 9、20、 24、29 令磁臂移动方向从小到大为正向,从大到小的方向为反向,那么,最短查找时间优先算法的柱面移动次数为: 1+|-3|+|-4|+11+4+5=28 。 ASCⅡ码并打印。 15 2) 按照电梯调度算法,柱面的访问次序是: 15、 16、 20、 24、 29、 13、 9 电梯调度算法的柱面移动数为: 1+4+4+5+|-16|+|-4|=34 。 3) 从本题给的例子看,最短查找时间优先算法比电梯调度算法的柱面移动数少 6。因 此说前者的效率更高一些。但是,由于磁头在访问操作中,可能不断有新的柱面请求加入, 使磁头忙于应付一些距离较近的柱面请求, 冷落了对远距离柱面的响应。 长此以往, 将可能造成某些远距离柱面处于 “饥饿” 状态。这就是通常情况下操作系统并不采用最短查找时间 优先算法的原因。 一个记录,其布局如下: (14) 假设有 A、 B、 C 和 D 四个记录存放在磁盘的某个磁道上。该磁道分成 4 块,每块存放 块号 1 2 3 4 记录号 A B C D 20ms 花 5ms 的时间进行处理。 试问处理完这 4 个记录的总时间是多少?为了缩短时间, 优化分布,优化后的处理时间是多少? 解: 由题分析可知,读出一个扇区的时间为 5ms(也就是盘片旋转一周的 1/4) ,处理的时间也为 5ms。系统处理完记录 A 后要读记录 B 必须等待磁盘旋转 3 个扇区。因此系统处理完记 应该如何 录 B 需要耗时 3 5+5+5=25ms。 其它记录的读出与处理耗时皆如此分析,则优化前总处理耗时 T1 为: T1=(5+5)+(5 3+5+5)+(5 3+5+5) +(5 3+5+5)=85ms A, C, 为了减少系统的等待时间,可以将记录的存储序列进行优化,优化后的顺序为: B, D 。 优化后处理总时间 T2=(20/4+5) T2 为: 4+5=45ms (15) 为什么要引入磁盘高速缓存?什么是磁盘高速缓存?解: 磁盘的 I/O 速度远低于内存的访问速度,通常要低 已成为计算机系统的性能瓶颈。 高速缓存。 磁盘高速缓存并非通常意义下的内存和 CPU之间增设的一个小容量高速存储器,而是 因此,这里的高速缓 高速缓存在内存中可分成两种 4~6 个数量级。因此,磁盘的 I/O 为了提高磁盘 I/O 的速度, 其中最主要的技术便是采用磁盘 指利用内存中的存储空间来暂存从磁盘中读出的一系列盘块中的信息。 存是一组在逻辑上属于磁盘, 而物理上驻留在内存中的盘块。 形式。第一种是在内存中开辟一个单独的存储空间来作为磁盘高速缓存,其大小是固定的, 不会受应用程序多少的影响; 第二种是把所有未利用的内存空间变为一个缓冲池, 页系统和磁盘 I/O 共享。 (16) 廉价磁盘冗余阵列是如何提高对磁盘的访问速度和可靠性的?解: 用一台专门控制磁盘阵列的控制器,统一管理和控制一组磁盘驱动器,这样形成廉价 磁盘冗余阵列。 1) 提高磁盘访问速度的主要措施是“并行交叉存取”技术。系统将每一盘块的数据 分成若干子盘块,并将每个子盘块的数据分别写到各个不同磁盘的相同位置。当需要访问盘块时,采用并行传送方式,各盘块相同位置的子盘块同时向内存传输。 供请求分 这样一来,磁盘访问速度可提高 2) N-1 倍。 提高磁盘可靠性的措施按 RAID技术规定可分为:磁盘镜像技术、设专门的奇偶校验盘、校验数据以螺旋方式散布的校验方式、设置专用快速异步校验盘等。 第 8 章 操作系统的安全和保护 (1) 说明计算机系统的可靠性和安全性的区别和联系。解: 计算机系统的安全性和可靠性是两个不同的概念,可靠性是指硬件系统正常持续运行 的程度, 而安全性是指不因人为疏漏或蓄意操作而导致信息资源被泄露、 性是基础,安全性更为复杂。 (2) 叙述计算机系统安全的主要内容。 解: 计算机系统安全涉及的内容非常广泛, 总体上来讲包括三个方面的内容: 物理安全、 逻辑安全和安全管理。 物理安全是指系统设备及相关设施受到物理保护, 使之免遭破坏或丢失, 如计算机环境、设施、设备、载体和人员,对于这些物理因素,需要采取行政管理上的安全对策和措施,防止突发性或人为的损害或破坏;安全管理包括各种安全管理的政策和机制。 篡改和破坏。 可靠 逻辑安全是针对计算机系统, 特别是计算机软件系统的安全和保护, 严防信息被窃取和破坏。 它又包括以下四个方面。 1. 数据保密性 (Data Secrecy) :指保护信息不被未授权者访问,仅允许被授权的用户访问。 2. 数据完整性 (Data Integrity) :指未经授权的用户不能擅自修改系统中保存的信息,且能保持系统中数据的一致性。 3. 系统可用性 (System Availability) :指授权用户的正常请求能及时、正确、安全地得到服务或响应。或者说,计算机中的资源可供授权用户随时进行访问,系统 不会拒绝服务。系统拒绝服务的情况在互联网中很容易出现,连续不断地向某个服务器发送请求就可能会使该服务器瘫痪,以致系统无法提供服务,表现为拒绝服务。 4. 真实性 (Authenticity) :要求计算机系统能证实用户的身份,防止非法用户侵入系统,以及确认数据来源的真实性。 (3) 安全操作系统的主要功能有哪些? 解: 一个安全的操作系统包括以下功能: 1. 进程管理和控制。在多用户计算机系统中,必须根据不同的授权将用户进行隔离,但同时又要允许用户在受控路径下进行信息交换。构造一个安全的操作系统的核心问题就是具备多道程序功能,而实现多道程序功能取决于进程的快速转换。 2. 文件管理和保护。包括对普通实体的管理和保护 ( 对实体的一般性访问存取控制以及对特殊实体的管理和保护 ( 含用户身份鉴定的特定的存取控制 ) 。 3. 运行域控制。运行域包括系统的运行模式、状态和上下文关系。运行域一般由硬件支持,也需要内存管理和多道程序的支持。 4. 输入 / 输出访问控制。安全的操作系统不允许用户在指定存储区之外进行读写操作。 5. 内存保护和管理。内存保护是指,在单用户系统中,在某一时刻,内存中只运行一个用户进程,要防止它不影响操作系统的正常运行;在多用户系统中,多个用户进程并发,需要隔离各个进程的内存区,防止这些进程影响操作系统的正常运行。内存管理是指要高效利用内存空间。内存管理和内存保护密不可分。 6. 审计日志管理。安全操作系统负责对涉及系统安全的时间和操作做完整的记录、报警和事后追查,并且还必须保证能够独立地生成和维护审计日志以及保护审计过程免遭非法访问、篡改和毁坏。 (4) 计算机或网络系统在安全性上受到的威胁有哪些?解: 计算机或网络系统在安全性方面受到的威胁可分为如下 4 种类型: 1. 中断。也称为拒绝服务,是指系统的资源被破坏或变得不可用或不能用。这是对可用性的攻击,如破坏硬盘、切断通信线路或使文件管理失败。 2. 截取。未经授权的用户、程序或计算机系统通过非正当途径获得对资源的访问权。这是对保密性的威胁,例如在网络中窃取数据及非法复制文件和程序。 3. 篡改。未经授权的用户不仅获得对资源的访问,而且进行篡改,这是对完整性的攻击,例如修改数据文件的信息,修改网络中正在传送的消息内容。 4. 伪造。未经授权的用户不仅从系统中截获信息,而且还可以修改数据包中的信息,将伪造的对象插入到系统中,这是对真实性的威胁,例如,非法用户把伪造的消息加到网络中或向当前文件加入记录。 ) (5) 什么是被动威胁和主动威胁?它们分别发生在什么场合?解: 被动威胁实际上是对传输过程中的信息进行窃取和截获,攻击者的目的是非法获得正在 传输的信息, 了解信息内容和性质。 被动威胁导致信息内容泄露和信息流量被分析。 被动威胁比较隐蔽,很难被检测发现, 因为它不对信息进行修改,也不干扰信息的流动。 对付被动 威胁的关键在于预防,而不是检测。 主动威胁不但截获数据信息,而且还冒充用户对数据进行修改、删除或生成伪造数据。 主动威胁很难预防,只能通过检测发现,并恢复主动威胁导致的破坏。 (6) 简单叙述计算机系统常用的安全机制。解: 计算机系统常用的安全机制主要包括:加密机制、认证机制、授权机制、审计机制等。 1) 数据加密技术对系统中所有存储和传输的数据进行加密,使之成为密文。这样,攻击者在截获到数据后,无法查看到数据的内容;而只有被授权者才能接收和对该数据予以解密,查看其内容,从而有效地保护系统信息资源的安全性。 2) 认证机制包括数字签名和身份认证。对文件进行加密只解决了传送信息的保密问题,而防止他人对传输文件进行破坏,以及如何确定发信人的身份还需要采取其它的方法,这一方法就是数字签名。在电子商务安全保密系统中,数字签名技术有着特别重要的地位,电子商务安全服务中的源鉴别、完整性服务、不可否认服务都要用到数字签名技术。完善的数字签名应满足下述三个条件: 1. 2. 3. 签字方事后不能抵赖其签名。 其他人不能伪造对报文的签名。 接收方能够验证签字方对报文签名的真伪。 身份认证是安全操作系统应该具备的最基本功能,是用户要进入系统访问资源或 在网络中通信双方在进行数据传送之前实施审查和证实身份的操作。 3) 4) 授权机制用于确认用户或进程在授权许可下才能够访问使用计算机的资源。 审计是通过事后追查手段来保证系统的安全,是对系统实施的一种安全性技术措施,它对涉及系统安全的相关操作活动作一个完整的纪录,并进行检查及审核。实际上,审计的主要目的就是检测和阻止非法用户对计算机系统的入侵,并记录合法用户的误操作。审计为系统对安全事故原因的查询、事故发生地点、时间、类型、过程、结果的追查、事故发生前的预测及报警提供详细、可靠的依据和支持。审计记录一般应包括如下信息:事件发生的时间、地点、代表正在进行事件的主体的惟一标识符、事件的类型、事件的成败等。 (7) 简单叙述对称加密算法和非对称加密算法。解: 在对称加密算法中,加密和解密算法使用相同的密钥。加密密钥能够从解密密钥中推 算出来, 同时解密密钥也可以从加密密钥中推算出来。 对称加密算法要求发送方和接收方在 密钥加密。对称加密算法的安全性 所以密钥的保 安全通信之前, 商定一个密钥。 对称加密也称私钥加密、 密性对通信安全至关重要。 非对称加密算法使用两把完全不同的一对钥匙: 密文件时, 只有使用匹配的一对公钥和私钥, 依赖于密钥, 泄漏密钥就意味着任何人都可以对他们发送或接收的消息解密, 公钥和私钥。 在使用非对称加密算法加 加密明文时采 才能完成对明文的加密和解密。 用公钥加密, 解密密文时使用私钥, 而且发信方 ( 加密者 ) 知道收信方的公钥, 只有收信方 ( 解密者 ) 唯一知道自己的私钥。非对称加密也称公开密钥加密法。非对称加密算法的基本原理 是,如果发信方想发送只有收信方才能解读的加密信息, 发信方必须首先知道收信方的公钥, 然后利用收信方的公钥来加密原文;收信方收到加密密文后,使用自己的私钥解密密文。 (8) 试说明数字签名的加密和解密方式。解: 基于公开密钥密码算法的数字签名主要原理如下: 1. 报文的发送方从报文文本中生成一个 128 位的散列值,称之为报文摘要。 2. 3. 发送方用自己的私钥对该报文摘要进行加密,形成发送方报文的数字签名。 该报文的数字签名作为报文的附件和报文一起发送给接收方。 128 位的报文摘要。 如果两个报文摘要相 4. 报文接收方从接收到的原始报文中计算出 5. 报文接收方用发送方的公钥对报文附加的数字签名进行解密。 同,那么接收方就能确认该数字签名是发送方的。 (9) 数字证书的作用是什么?用一例子来说明数字证书的申请、发放和使用过程。解: 数字证书是一种权威性的电子文档,它提供一种在 Internet 上验证用户身份的方式,其作用类似于驾驶执照、身份证、护照。它由一个权威机构 证书授权 (Certificate 中,证书认证中心 (CA) 作为权威的、公正的、可信赖的第三方,其作用至关重要。在国际电 信联盟 ITU(International Telecommunication Union) 指定的标准中,规定数字证书的内 容应包括:用户名称、发证机构名称、公开秘钥及其有效日期、证书编号以及发证者签名。 下面通过一个具体例子来说明数字证书的申请、发放和使用过程。 1. 2. 用户 A 首先产生自己的密钥对, 并将公共密钥及部分个人身份信息传送给认证中心 CA。 认证中心 CA在核实身份后,将执行一些必要的步骤,以确信请求确实由用户发送 而来。然后,认证中心将发给用户一个数字证书,该证书内包含用户 A 的个人信息 和他的公钥信息,同时还附有认证中心的签名信息。 3. 用户 A 在向用户 B 发送信息时, 用户 A 用私有密钥对信息的报文摘要加密, 字签名,并连同已加密的数字证书一起发送给用户 4. 钥发送给用户 B。 5. 6. 用户 B 利用 CA的公开密钥对数字证书进行解密,确认该数字证书是原件,并从数 形成数 B。 用户 B 向 CA机构申请获得 CA的公开密钥。 CA收到用户 B 的申请后,将 CA的公开密 字证书中获得用户 A 的公开密钥,并且也确认该公开密钥确系是用户 A 的密钥。用户 B 利用用户 A 的公开密钥对用户 A 发送来的数字签名进行解密, 从而得到用户 A 发来的报文的真实明文,并鉴别用户 A 的真实身份。 (10) 什么是计算机病毒?计算机病毒有什么危害? 解: 计算机病毒,是指编制或者在计算机程序中插入的破坏计算机功能或者毁坏数据,影响计算机使用,并能自我复制的一组计算机指令或者程序代码。 计算机病毒的危害可表现在以下几个方面: 1. 占用系统空间。 计算机病毒是一段程序, 会占用一定的磁盘空间和内存空间。 病毒程序虽然很小, 但随着病毒的繁殖, 数量会急剧增加, 将占用大量的磁盘空间和内存空间,最终致使系统存储空间消耗殆尽。 2. 占用 CPU时间。计算机病毒在运行时会占用 CPU时间,随着病毒数量的增加, 将会消耗更多的 CPU时间,这会导致系统运行速度变得异常缓慢, 进一步还可能完全独占 CPU时间,致使计算机系统无法向用户提供服务。 3. 破坏文件。 计算机病毒可以增加或减少文件的长度, 改变文件的内容, 甚至删除文 件。病毒还可以通过对磁盘的格式化使整个系统中的文件全部消失。 4. 破坏计算机软硬件系统。 计算机病毒可破坏计算机软硬件系统, 常情况, 如提示一些莫名其妙的指示信息, 减缓,完全停机。 1998 年 6 月爆发于中国台湾的 无法启动系统,故障现象与主板硬件损坏一样,所以 坏计算机硬件系统的病毒。 (11) 简述计算机病毒的类型。解: 当今计算机病毒种类非常多,通常可分为如下几类: 1. 文件型病毒。文件型病毒是当前最为普遍的病毒形式,通过在运行过程中插入指令,把自己依附在可执行文件上。然后,利用这些指令来调用附在文件中某处的病毒代码。当文件执行时,病毒会调出自己的代码来执行,接着又返回到正常的执行指令序列。通常,这个执行过程发生很快,以至于用户并不知道病毒代码已执行。 2. 引导扇区病毒。引导扇区病毒潜伏在磁盘上用于引导系统的引导区。当系统开机时,病毒便借助于引导过程进入系统,通常引导扇区病毒先执行自身的代码,然后再继续系统的启动进程。病毒通过复制代码使引导区病毒感染计算机系统或者 致使计算机出现异 显示异常图形等, 甚至致使计算机运行 CIH 病毒不但会破坏计算机硬盘 CIH 病毒被认为是第一个破 中的信息, 而且还会破坏 BIOS ,使系统无法启动, 从而很难杀除。 由于染毒的 BIOS 软盘引导扇区或硬盘分区表。 在启动期间 , 病毒加载到内存,一旦在内存 , 病毒将感染由系统访问的任何非感染磁盘。 3. 宏病毒。宏是微软公司为其 OFFICE软件包设计的一个特殊功能,软件设计者为了让人们在使用软件时,避免一再地重复相同的动作而设计出来的一种工具,它利 用简单的语法,把常用的动作写成宏,当在工作时,就可以直接利用事先编好的宏自动运行,去完成某项特定的任务,而不必再重复相同的动作,目的是让用户 文档中的一些任务自动化。 4. 宏病毒是一种寄存在文档或模板的宏中的计算机病毒。一旦打开这样的文档,其 中的宏就会被执行,于是宏病毒就会被激活,转移到计算机上,并驻留在 Normal 模板上。从此以后,所有自动保存的文档都会感染上这种宏病毒,而且如果其他 用户打开感染病毒的文档,宏病毒又会转移到他的计算机上。 5. 内存驻留病毒。内存驻留病毒一旦执行,自己便占据内存驻留区。这是计算机运行程序和文件时载入它们的地方。病毒在内存中占据重要位置,病毒可以访问在计算机上运行的所有重要操作,它可以在文件和程序访问、修改或者操作时很轻松地破坏它们。计算机关闭时,所有内存中的数据都将被清除,包括病毒。但是,当病毒感染系统时,它会确保每次计算机启动时都将在内存中激活病毒。内存驻留病毒会通过占用系统资源来使用户的计算机变慢。它们可以破坏数据和系统文件,这会使用户的计算机不能正常工作。 6. 邮件病毒。邮件病毒其实和普通的电脑病毒一样,只不过它们的传播途径主要是通过电子邮件,所以才被称为邮件病毒,由于它们一般通过邮件中“附件”夹带的方法进行扩散,只要接收者打开电子邮件中的附件,病毒就会被激活,它将把自身发送给该用户列表中的每个人,然后进行破坏活动。 (12) 什么是访问矩阵、访问控制表和访问权限表。 解: 1. 访问矩阵的行代表域,列代表对象。矩阵的每个条目是一个访问集合。由于列明 确定义了对象,可以在访问权限中删除对象名称。条目 定义了在域 Di 中执 行的进程在访问对象 2. Oi 时被允许执行的操作集合。 把访问矩阵按列向量 ( 对象 ) 划分,为每一列建立一张访问控制表 ACL(Access Control List) 。在该表中,矩阵中属于该列的所有空项已被删除,只剩下有序对 <域,权集 >。通常情况下,访问矩阵中的空项远多于非空项,因而使用访问控制表可以显著地减少所占用的存储空间,提高查找速度。 3. 访问矩阵按行 ( 域 ) 划分,为每一行建立一张访问权限表 CL(Capability List) 。访问权限表是由一个域对每一个对象可以执行的操作集合所构成的表。访问权限表 包括两部分:对象名和访问权。表中的每一项为该域对某对象的访问权限。


发布评论