操作系统期末复习自用
第一章简答题
什么是操作系统?操作系统追求的主要目标是什么?
-
操作系统是计算机系统中的一个系统软件,是能有效地组织和管理计算机系统中的硬件和软件资源,合理地组织计算机工作流程, 控制程序的执行,并向用户提供各种服务功能,使得用户能够灵活、方便、有效地使用计算机,并使整个计算机系统能高效地运行的一组程序 模块的集合
-
操作系统追求的主要目标包括四个方面,分别是:方便性、有效性、可扩充性、开放性
操作系统分成哪几类?
-
单道批处理系统
-
多道批处理系统
-
分时系统
-
实时系统
-
通用操作系统
-
网络操作系统
-
分布式操作系统
从资源管理观点看,操作系统具有哪些功能?
-
处理机管理功能
-
存储器管理功能
-
文件管理功能
-
设备管理功能
-
向用户提供使用方便的用户接口
什么是多道程序系统?其主要特点是什么?
-
多道程序系统是指在内存中同时放入若干道作业,并且可以相互交替执行程序
-
多道程序设计的基本特征:多道性、无序性、调度性
简述操作系统的特征。
-
并发
操作系统支持多个进程或线程同时运行,利用CPU的多核性能,或在单核上通过时间片轮转的方式实现伪并发
-
共享
操作系统管理的资源,如CPU、内存、文件等,可以被多个进程共同访问和使用,同时保证这种共享是安全的,防止数据冲突
-
虚拟
操作系统通过某种转换技术,如分页、分段等,将物理资源转化为虚拟资源,以便于资源的管理和使用,提高资源的利用率
-
异步性
在操作系统中,因为资源可能会被多个进程竞争,进程的执行不是一成不变的,可能会因为等待资源而暂停,直到资源可用
第二章简答题
为了支持操作系统,现代处理机一般都提供哪两种工作状态,以隔离操作系统和普通程序?两种状态各有什么特点?
-
主要分为两种工作状态:管态(特权态、系统态、特态)和目态(普通态、用户态、普态)
-
管态
操作系统管理程序运行时的状态,具有较高的特权级别
-
目态
用户程序运行时的状态,具有较低的特权级别
-
-
当处理机处于管态时,全部指令(包括特权指令)可以执行,可使用所有资源,并具有改变处理机状态的能力。当处理机处于目态时,就只有非特权指令能执行
什么是分级的存储体系结构?它主要解决了什么问题?
-
依次为:寄存器、高速缓存、内储存器、硬盘储存器、磁带机和光盘存储器
-
从整个系统来看,在计算机系统中的存储装置是由寄存器、高速缓存、内存储器硬盘存储器、磁带机和光盘存储器等装置构成的。较小、较贵而快速的存储设备有较大较便宜而慢速的存储设备做后盾,它们通过访问频率的控制来提高存储系统的效能。解决容量、速度和成本之间的矛盾
内存通常有哪两种类型?它们各自的特点是什么?用在哪里?
-
读/写型存储器(RAM)和只读存储器(ROM)
-
读/写型存储器(RAM)是指可以把数据存入其中任一地址单元,并且可在以后的任何时候把数据读出来,或者重新存入别的数据的一种存储器,这种存储器通常称为随机访问存储器,断电后信息会消失。只读存储器(ROM)是指只能从其中读取数据,但不能随意地用普通的方法向其中写入数据(向其中写入数据只能用特殊的方法),这种存储器通常称为只读存储器,断电后信息不会消失。
-
RAM 主要用于存放随机存取的程序和数据。通常把一些常驻内存的模块以微程序形式固化在 ROM 中
第三章简答题
什么是进程?它与程序有哪些异同点?
-
进程是具有独立功能的可并发执行的程序在一个数据集合上的运行过程,是系统进行资源分配和调度的独立单位
-
主要有以下异同点:
-
进程是程序的一次执行,它是一个动态的概念,程序是完成某个特定功能的指令的有序序列,它是一个静态的概念。但进程是把程序作为它的运行实体,没有程序,也就没有进程
-
进程和程序的区别还在于:一个进程可以执行一个或几个程序,例如,一个执行C编译程序的进程先后执行了预处理、词法分析、语洁分析、目标代码生成和优化等几个程序。反之,同一程序也可能由多个进程同时执行。例如,在分时系统中,几个用户同时使用内存中的同一C语言编译程序分别编译各自不同的C语言源程序
-
进程是系统进行资源分配和调度的一个独立单位;程序则不是,以多用户进程共享一个编译程序为例,为多个用户执行编译时,资源分配显然是以进程为单位,而不是以程序为单位
-
程序可以作为一种软件资源长期保存,而进程是程序的一次执行过程,它是临时的,有生命期的。表现在它由创建而产生,完成任务后被撤消
-
进程是具有结构的。为了描述进程的运行变化过程,应为每个进程建立一个结构——进程控制块。从结构上看,进程是由程序、数据和进程控制块3部分组成
-
进程有哪几种基本状态?试举出使进程状态发生变化的事件并描绘它的状态转换图。
-
进程在执行中不断地改变其执行状态,通常,一个进程必须具有以下3种基本状态。
-
就绪状态
当进程已分配到除CPU以外的所有必要的资源后,只要能再获得处理器便可立即执行,这时的状态称为就绪状态。在一个系统中,可以有多个进程同时处于就绪状态,通常把这些进程排成一个或多个队列,称这些队列为就绪队列。
-
运行状态
指进程已获得处理器,其程序正在执行。在单处理器系统中,只能有一个进程处于运行状态。在多处理器系统中,则可能有多个进程处于运行状态。
-
阻塞状态
进程因发生某种事件(如I/O请求、申请缓冲空间等)而暂停运行时的状态,亦即进程的运行受到阻塞,故称这种状态为阻塞状态,有时也称为“等待”状态或“睡眠”状态。通常将处于阻塞状态的进程排成一个队列,称为阻塞队列。在有的系统中,按阻塞的原因不同而将处于阻塞状态的进程排成多个队列。
-
-
进程的3种基本状态及其变化如下所示:
进程在运行期间不断地从一个状态转换到另一个状态,进程的各种调度状态依据一定的条件而发生变化,它可以多次处于就绪状态和运行状态,也可多次处于阻塞状态,但可能排在不同的阻塞队列。下面简要地阐述进程状态转换的原因。
-
就绪→运行状态
处于就绪状态的进程,当进程调度为之分配了处理器后,该进程便由就绪状态变为运行状态,正在运行的进程也称为当前进程
-
运行→阻塞状态
正在运行的进程因发生某种事件而无法运行,例如,进程请求访问临界资源,而该资源正被其他进程访问,则请求孩资源的进程将由运行状态变为阻塞状态
-
运行→就绪状态
在分时系统中,正在运行的进程,如因时间片用完而被暂停运行,该进程便由运行状态变为就绪状态。又如,在抢占调度方式中,一个优先权高的进程到来后可以抢占一个正在运行的优先权低的进程的处理器:这时低优先权进程也将由运行状态转换为就绪进程
-
阻塞→就绪状态
处于阻塞状态的进程,在其等待的事件已经发生,如输入输出完成,则进程由阻塞状态变为就绪状态
3、某系统采用最高响应比优先的调度算法,某个时刻根据用户要求创建了一个进程P,进程P在其存在过程中依次经历了以下过程。分析进程P在整个生命过程中的状态变化。
- 进程调度选中了进程P占用处理机运行,进程P运行中提出资源申请,要求增加内存使用量,没有得到。
- 进程P等待一段时间后,得到内存。
- 进程调度再次选中了进程P占用处理器运行。
- 有紧急进程Q进入,系统停止进程P占用处理机运行,将处理机分别给进程Q。
- 进程Q运行完,进程调度再次选用进程P占用处理器运行。
- 进程P运行完。
A:就绪态→运行态,B:运行态→阻塞态,C:运行态→就绪态,D:运行态→终止态,E:阻塞态→就绪态
-
解:
-
B
-
E
-
A
-
C
-
A
-
D
-
4、什么是线程?进程和线程的主要区别是什么?
-
在引入线程的操作系统中,线程是进程的一个实体,是被系统独立调度和分派的基本单位。线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器、一组寄存器和栈),但它可与同属一个进程的其他线程共享进程所拥有的全部资源。一个线程可以创建和撤消另一个线程,同一进程中的多个线程之间可以并发执行。
-
线程具有许多传统进程所具有的特征,故又称为轻型进程(Light-Weight Process)或进程元;而把传统的进程称为重型进程(Heavy-Weight process),它相当于只有一个线程的任务。在引入了线程的操作系统中,通常一个进程都有若干个线程,至少也需要有一个线程。下面,我们从调度、并发性、系统开销、拥有资源等方面来比较线程和进程。
-
调度
在传统的操作系统中,拥有资源的基本单位和独立调度、分派的基本单位都是进程。而在引入线程的操作系统中,则把线程作为调度和分派的基本单位,而把进程作为资源拥有的基本单位,使传统进程的2个属性分开,线程便能轻装运行,从而可显著地提高系统的并发程度。在同一进程中,线程的切换不会引起进程切换,在由一个进程中的线程切换到另一进程中的线程时,将会引起进程切换。
-
并发性
在引入线程的操作系统中,不仅进程之间可以并发执行,而且在一个进程中的多个线程之间亦可并发执行,因而使操作系统具有更好的并发性,从而能更有效地使用系统资源和提高系统吞吐量。例如,在一个未引入线程的单个CPU操作系统中,若仅设置一个文件服务进程,当它由于某种原因而被阻塞时,便没有其他的文件服务进程来提供服务。在引入了线程的操作系统中,可以在一个文件服务进程中设置多个服务线程,当第一个线程等待时,文件服务进程中的第二个线程可以继续运行;当第二个线程受阻塞时,第三个线程可以继续执行,从而显著地提高了文件服务的质量以及系统吞吐量。
-
拥有资源
不论是传统的操作系统,还是设有线程的操作系统,进程都是拥有资源的一个独立单位,它可以拥有自己的资源。一般地说,线程自己不拥有系统资源(也有一点必不可少的资源),但它可以访问其隶属进程的资源,亦即,一个进程的代码段、数据段以及系统资源,如已打开的文件、I/O设备等,可供同一进程的其他所有线程共享。
-
系统开销
由于在创建或撤消进程时,系统都要为之分配或回收资源,如内存空间、I/O设备等。因此,操作系统所付出的开销将显著地大于在创建或撤消线程时的开销。类似地,在进行进程切换时,涉及到整个当前进程CPU环境的保存以及新被调度运行的进程的CPU环境的设置。而线程切换只需保存和设置少量寄存器的内容,并不涉及存储器管理方面的操作。可见,进程切换的开销也远大于线程切换的开销,此外,由于同一进程中的多个线程具有相同的地址空间,致使它们之间的同步和通信的实现也变得比较容易。在有的系统中,线程的切换、同步和通信都无需操作系统内核的干预。
-
第四章简答题
什么叫临界资源?什么叫临界区?对临界区的应用使用应符合哪些规则?
-
一次仅允许一个进程访问的资源(共享互斥资源)
-
不论是硬件隔界资源,还是软件临界资源,多个进程必须互斥地对它进行访问,我们把在每个进程中访问临界资源的那段代码称为临界区
-
对临界区的应用使用应符合以下规则:
每个进程在进入临界区之前应先对欲访问的临界资源进行检查,看它是否正被访。如果此时临界资源未被访问,该进程便可进入临界区对该资源进行访问,并设置它正被访问的标志;如果此时该临界资源正被某进程访问,则本进程不能进入临界区。因此,必须在临界区前面增加一段用于进行上述检查的代码。相应地,在临界区后面也要加上一段代码,用于将临界区正被访问的标志恢复为未被访问标志。所有的同步机制都应该遵循下述4条准则:
-
空闲让进
当无进程处于临界区时,相应的临界资源处于空闲状态,因而可允许一个请求进入临界区的进程立即进入自己的临界区,以有效地利用临界资源。
-
忙则等待
当已有进程进入自己的临界区时,意味着相应的临界资源正被访问,因而所有其他试图进入临界区的进程必须等待,以保证诸进程互斥地访问临界资源。
-
有限等待
对要求访问临界资源的进程,应保证该进程能在有效时间内进入自己的临界区,以免陷入“死等”状态。
-
让权等待
当进程不能进入自己的临界区时,应立即释放处理器,以免进程陷入“忙等”。
-
当进程对信号量S执行wait、signal操作时,S的值发生变化,当S>0、S=0和S<0时,其物理含义是什么?
-
S>0时,S表示可使用的资源数或表示可使用资源的进程数
-
S=0时,S表示无资源可供使用或表示不允许进程再进入临界区
-
S<0时,S表示等待使用资源的进程个数或表示等待进入临界区的进程个数
什么是死锁?死锁产生的四个必要条件是什么?
-
所谓死锁是指在多道程序系统中,一组进程中的每一个进程均无限期地等待被该组进程个的另一个进程所占有旦永远不会释放的资源。这种现象称系统处于死锁状态,简称死锁。处于死锁状态的进程称为死锁进程。
-
产生死锁的4个必要条件是:
-
互斥条件
进程要求对所分配的资源进行排它性控制,即在一段时间内某资源仅为一进程所占有。
-
请求和保持条件
当进程因请求资源而阻塞时,对已获得的资源保持不放。
-
不剥夺条件
进程已获得的资源,在未使用完之前,不能被剥夺,只能在使用完时由自己释放。
-
环路等待条件
在发生死锁时,必然存在一个进程——资源的环形链,即进程集合{p1,p2…,Pn}中的P1正在等待一个P2占用的资源,P2正在等待一个P3占用的资源,……,Pn正在等待已被P1占用的资源。
-
第五章简答题
可变分区常用的分区算法有哪几种?它们各自的特点是什么?
为把一个新作业装入内存,需按照一定的分配算法,从空闲分区表或空闲分区链中,选出一分区分配给该作业。目前常用以下4种分配算法:
-
首次适应算法
我们以空闲分区链为例来说明采用首次适应算法时的分配情况。首次适应算法要求空闲分区链以地址递增的次序链接,在进行内存分配时,从链首开始顺序查找,直至找到一个能满足其大小要求的空闲分区为止。然后,再按照作业的大小,从该分区中划出一块内存空间分配给请求者,余下的空闲分区仍留在空闲分区链中。
该算法倾向于优先利用内存中低址部分的空闲分区,在高址部分的空闲分区很少被利用,从而保留了高址部分的大空闲区。显然,这为以后到达的大作业分配大的内存空间创造了条件。其缺点是低址部分不断被划分,致使留下许多难以利用的、很小的空闲分区,而每次查找又都从低址部分开始,这无疑会增加了查找可用空闭分区的开销。
-
循环首次适应算法
该算法是由首次适应算法演变而形成的。在为作业分配内存空间时,不再每次从链首开始查找,而是从上次找到的空闲分区的下一个空闲分区开始查找。直至找到第一个能满足要求的空闲分区,并从中划出一块与请求的大小相等的内存空间分配给作业。
为实现该算法,应设置一起始查寻指钉,以指示下一次起始查寻的空闲分区,并采用循环查找方式。即如果最后一个(链尾)空闲分区,其大小仍不能满足要求,应返回到第一个空闲分区,比较其大小是否满足要求。找到后,应立即调整起始查寻指针。该算法能使内存中的空闲分区分布得更均匀,减少查找空闲分区的开销,但这会缺乏大的空闲分区。
-
最佳适应算法
“最佳”的含义是指每次为作业分配内存时,总是把既能满足要求,又是最小的空闲分区分配给作业,避免了“大材小用”。为了加速寻找,该算法要求将所有的空闲区,按其大小以递增的顺序形成一空闲分区链,这样,第一个找到的满足要求的空闲区,必然是最优的。孤立地看,最佳适应算法似乎是最佳的,然而在宏观上却不一定。因为每次分配后所切割下的剩余部分,总是最小的。这样,在存储器中会留下许多这样难以利用的小空闲区。
-
最差适应算法
“最差”的含义是指每次为作业分配内存时,总是找到一个满足作业长度要求的最大空闲分区进行分配,以便使剩下的空闲区不至于太小,可以继续利用。这种算法适合于中小作业运行,但对大作业的运行来讲是不利的。
不管采用何种算法,在分配时,总不能使得被分配的空闲区刚好满足作业的要求,可能需要把被找到的空闲分区一分为二,一部分分配给作业,多余的部分则作为新的空闲分区放到空闲分区表中并调整到适当的位置。但是,有时新的空闲区会很大,有时可能会很小,把这一很小的空闲区留下来作为新的空闲分区则这一分区可能永远也不会被分配。在这种情况下,系统可以把它全部分配给作业,这样可节省系统开销,避免内存碎片的产生。
什么是覆盖?什么是交换?覆盖和交换的区别是什么?
-
将程序划分为若干个功能上相对独立的程序段,按照程序的逻辑结构让那些不会同时执行的程序段共享同一块内存区的内存扩充技术就是覆盖。
-
交换是指先将内存某部分的程序或数据写入外存交换区,再从外存交换区中调入指定的程序或数据到内存中来,并让其执行的一种内存扩充技术。
-
与覆盖技术相比,交换不要求程序员给出程序段之间的覆盖结构,而且,交换主要在进程或作业之间进行,而覆盖则主要在同一个作业或同一个进程内进行。另外,只能对那些与覆盖程序段无关的程序段进行覆盖。
简述段和页的区别。
分页和分段有许多相似之处,但是在概念上两者完全不通,主要表现在:
-
页是信息的物理单位,分页是为了系统管理内存的方便而进行的,故对用户而言,分页是不可见的,是透明的;段是信息的逻辑单位,分段是作业逻辑上的要求,对用户而言,分段是可见的。
-
页的大小是固定的,由系统决定;段的大小是不固定的,由用户作业本身决定。
-
从用户角度看,分页的地址空间是一维的,而段的地址空间是二维的。
第六章简答题
什么叫虚拟存储器?
所谓虚拟存储器,是指仅把作业的一部分装入内存便可运行作业的存储器系统。具体他说,所谓虚拟存储器是指具有请求调入功能和置换功能,能从逻辑上对内存容量进行扩充的一种存储器系统。实际上,用户所看到的大容量只是一种感觉,是虚的,故称之为虚拟存储器。其逻辑容量由内存和外存容量之和所决定,其运行速度接近于内存速度,成本又接近于外存。可见,虚拟存储技术是一种性能非常忧越的存储器管理技术,被广泛地应用于大、中、小型机器和微型机中。
但虚拟存储器并非可以无限大,其容量受外存大小和指令中地址长度两方面的限制。
第七章简答题
操作系统提供了哪些便于用户使用计算机的接口?
在现代计算机系统中,操作系统为用户提供的使用计算机的接口通常分为命令接口和程序接口两个主要类型。一类应用于程序一级,称为程序接口(或编程接口);另一类应用于用户作业控制一级,称为命令接口。
-
命令接口
命令接口通过在用户和操作系统之间提供高级通信来控制程序运行,用户通过输入设备(终端、键盘、鼠标、触摸屏等操作)发出一系列命令告诉操作系统执行所需功能,称为作业一级的用户接口。根据作业控制方式的不同,又分为联机命令接口和脱机命令接口。
-
脱机命令接口
脱机命令接口是为批处理作业的用户提供的,故也称为批处理用户接口,它由作业控制语言组成。批处理作业的用户不能直接与自己的作业交互,用户利用作业控制语言将其对作业执行的控制意图提供给操作系统,由系统自动地对用户作业-个个地进行处理。这里的作业控制语言是操作系统提供给批处理作业用户的,为实现所需功能委托系统代为控制的一种语言。用户用作业控制语言把对作业进行的控制和于预事先写在作业控制说明书上,然后将作业连同作业控制说明书一起提供给系统,当系统调度到该作业运行时,又调用命令解释程序,对作业控制说明书上的命令逐条地解释执行。如果作业在执行过程中出现错误,系统也将根据作业控制说明书上的指示进行干须。这样,作业一直在作业控制说明书的控制下运行,直至遇到作业结束语句时,系统才停止该作业的运行。
-
交互式命令接口
主要用于交互式作业控制,这种方式下,用户利用操作系统提供的控制命令或会话语句直接控制作业的执行。系统每接到一条命令,就按照命令的要求控制作业的执行,在执行完该命令后向用户报告执行结果,用户再决定下一步操作,如此反复地通过人机对话方式控制作业执行完成。
-
-
程序接口
程序接口在程序与系统资源及系统服务之间实现交互作用。程序接口通常由若干系统调用组成,用户可以在程序中直接或者间接地使用这些系统调用,采用低级语音(如汇编语言)编程可以直接使用这些系统调用,采用高级语言编程则采用程序调用方式,通过解释或者编译程序将其翻译成有关的系统调用,完成各种功能和服务。用户在程序中可通过调用系统调用向操作系统提出启动外围设备进行数据交换,申请和归还资源〔如主存资源、外围设备等)以及各种控制要求。操作系统则按用户的要求启动外围设备、分配或回收资源,进行调度、显示信息、暂停执行,解除干预等控制工作。
什么是系统调用?系统调用与一般过程调用的区别是什么?
-
当用户使用程序设计语言编程时,有时会使用到读写文件等需要使用特权指令的功能操作,而用户程序不能使用特权指令。为了解决这个矛盾,操作系统编制了许多不同功能的子程序,这些子程序通常包含特权指令,用户程序可以调用这些子程序从而得到特权指令提供的功能,而不需直接使用特权指令。由操作系统提供的这些子程序称为“系统功能调用”程序,或简称“系统调用”。
-
由于操作系统的特殊性,应用程序不能采用一般的过程调用方式来调用这些功能过程,而是利用一种系统调用命令去调用所需的操作系统过程,通过非特权指令——访管指令调用系统调用程序。系统调用在本质上是应用程序请求操作系统核心完成某一特定功能的一种过程调用,是一种特殊的过程调用,它与-般的过程调用有以下几方面的区别:
-
通道软中断进入
一般的过程调用可直接由调用过程转向被调用过程;而执行系统调用时,由于调用和被调用过程是处于不同的系统状态,因而不允许由调用过程直接转向被调用过程,而通常都是通过软中断机制转向相应的命令处理程序。
-
运行在不同的处理器状态
一般的过程调用,其调用程序和被调用程序都运行在相同的处理器状态,而系统调用与一般调用的最大区别就在于:调用程序运行在目态,而被调用程序则运行在管态。
-
处理器状态的转换
一般的过程调用不涉及系统状态的转换,可直接由调用过程转向被调用过程。但在运行系统调用时,由于调用和被调用过程上作在不同的系统状态,因而不允许由调用过程直接转向被调用过程,通常都是通过软中断机制先由目态转换为管态,在操作系统核心分析之后,转向相应的系统调用处理子程序。
-
返回问题
一般的过程调用在被调用过超执行完后,将返回到调用过程继续执行。但是,在采用抢占式调度方式的系统中,系统调用中被调用过程执行完后,系统将对所有要求运行的进程进行优先级分析,如果调用进程仍然具有最高优先级,则返回到调用进程继续执行,否则,将引起重新调度,以便让优先级最高的进程优先执行。此时,系统将把调用进程放入就绪队列。
-
嵌套调用
像一般过程一样,系统调用也允许嵌套调用,即在一个被调用过程的执行期间,还可以再利用系统调用命令去调用另一个系统调用。一般情况下,每个系统对嵌套调用的深度都有一定的限制,例如最大深度为6。
-
第八章简答题
什么是文件的逻辑结构?常用的逻辑结构有哪几种?有何特点?
-
用户按自己对信息的使用要求组织文件,由于这种文件是独立于物理环境而构造的,所以,把用户概念中的文件称为文件的逻辑结构,或称逻辑文件。这是从用户观点出发,所观察到的文件组织形式,是用户可以直接处理的数据及其结构。
-
目前,文件的逻辑结构般可分为2大类:
一是有结构文件,它是由一个以上的记录构成的文件,故又称为记录式文件;二是无结构文件,它是指由字符流构成的文件,故又称为流式文件。
-
流式文件
无结构的流式文件是相关的有序字符的集合。流式文件指文件内的数据不再组成记录,只是依次的一串信息集合,字符是构成文件的基本单位。这种文件常常按长度来读取所需信息,由可以用插入的特殊字符作为分界。事实上,有许多类型的文件并不需要分记录,像源程序就是一个顺序字符流,硬要分割源程序文件成若干记录只会带来操作复杂,开销增大的缺点。
显然,对于字符流的无结构文件来说,查找文件中的基本信息单位例如某个单词,是比较困难的,但反过来,字符流的无结构文件管理简单,用户可以方便地对其进行操作。所以有些文件较适于采用字符流的无结构方式,例如,源程序文件、目标代码文件等,UNIX文件的逻辑结构就是采用这种方式。
对于各种慢速字符设备来说,由于它们只能顺序存放,并且是按连续字符流形式传输信息的,所以系统只要把字符流的字符依次映像为逻辑文件中的元素,就可以非常简单地建立逻辑文件和物理文件之间的联系,从而可以把这些设备看作用户观点下的文件。
流式文件对操作系统而言管理比较方便;对于用户而言,适于进行字符流的正文处理,也可以不受约束地。灵活组织其文件内部的逻辑结构。
-
记录式文件
记录式文件是一种有结构的文件。这种文件在逻辑上总是被看成一组连续有序的记录的集合。每个记录由彼此相关的域构成。记录可以按顺序编号为记录1、记录2、……、记录n。
在记录式文件中,所有的记录通常都是描述一个实体集的,有着相同或不同数目的数据项。根据记录的长度可分为定长记录文件和变长记录文件2类。
-
定长记录文件
它是指文件中所有记录的长度都是相同的。所有记录中的各数据项,都处在记录中相同的位置,具有相同的顺序及相同的长度,文件的长度用记录数目表示。在检索时,可以根据记录号i及记录长度L来确定记录的逻辑地址。
定长记录文件处理方便,开销小,是目的较常用一种记录格式,被广泛用于数据处理中。对于定长记录,除了可以方便地实现顺序存取外,还可根据记录长度较方便地实现直接存取。
-
变长记录文件
它是指文件中各记录的长度不相同。原因可能是一个记录中所包含的数据顶数目不同,如书的著作者、论文中的关键词,或者数据项本身的长度不定,例如,病历记录中的病因、病史,科技情报记录中的摘要等。
由于变长记录文件中各个记录长度不等,在查找时,必须从第一个记录开始一个记录一个记录地查找,直到找到所需的记录。所以不定长记录文件处理相对复杂,开销大。
不论是定长记录还是变长记录,在处理前每个记录的长度必须是可知的。
记录式的有结构文件可把文件中的记录按各种不同的方式排列,构成不同的逻辑结构,以方便用户对文件中的记录进行修改、追加、查找和管理等操作。这样记录式文件可以分为3类:
-
顺序文件
它是指由按某种顺序排列的记录所组成的文件。通常是定长记录文件,因而能用较快的速度查找文件中的记录。
-
索引文件
通常为之建立一张索引表,并为每个记录设置一表顶,以加速对记录的检索速度。索引表通常是按记录键排序的,索引表本身是一个定长记录的顺序文件,从而也就可以方便地实现直接存取。
为了对变长记录文件实现直接存取,可采用索引文件方式,为变长记录文件建立一张索引表,文件中的每个记录在素引表中有一相应表项,用于记录该记录的长度及指向该记录的指针(改记录在逻辑地址空间的首址)。
-
索引顺序文件
索引顺序文件是上述2种文件方式的结合,它将顺序文件中的所有记录分为若干个组(例如,50个记录为一个组),并且为顺序文件建立一张索引表,在索引表中为每组中的第一个记录建立一个索引项,其中含有记录的键值和指向该记录的指针。
索引顺序文件可能是最常见的一种逻辑文件形式。它有效地克服了变长记录文件不便于直接存取的缺点,而且所付出的代价也不算大。
-
-
-
文件操作有哪几个?它们的功能是什么?
-
一般地讲,文件系统提供的基本的文件系统调用有:建立、打开、关闭、删除、读、写和控制等操作。
-
文件操作的功能:
-
建立文件
当用户需要将一批信息(或程序)作为文件保存在文件存储介质上时,需要使用建立文件命令来达到自己的目的——建立一个新文件。
需要清楚的是建立文件所做的主要工作仅仅是建立了一个文件目录,而真正的文件内容还必须由随后的写命令写入外存中。文件一经建立,就一直存入系统之中,直到用户使用撤消命令,撤消该文件为止。
-
打开文件
用户为了使用某一个文件,必须先用打开文件系统调用命令将它打开,建立用户与该文件的直接联系方能使用。打开文件的系统调用命令的参数一般有文件名、打开方式。打开文件的实质是将外存中该文件的目录项读到活动文件表中,以便对文件的控制操作在主存中进行。
文件打开以后,直至关闭之前,可被反复使用,不必多次打开,这祥做能减少查找目录的时间,加快文件存取速度,从而提高文件系统的运行效率。
由于活动文件表的大小限制,通常系统允许一个用户同时打开文件的数量有一定限制。
-
读 / 写文件
文件打开以后,用户需要把文件信息(文件体)从外存读入内存或从内存写回外存是通过调用读写文件系统调用来实现的,这2个命令一般应给出以下参数:文件名、主存缓冲地址、读/写的记录或字节个数,对有些文件类型还要给出读/写起始逻辑记录号。
-
关闭文件
当用户不用(或暂时不用)某个文件时,可以使用关闭文件的系统调用命令。关闭文件的要求可以通过显式方式,即直接向系统提出;也可用隐式,例如要求使用同一设备上的另外一个文件时,就可以认为隐含了关闭上次使用过的文件的要求。关闭文件系统调用指令的参数一般包括文件名。
当某文件关闭后,用户又要重新使用它,则必须重新打开该文件。
-
删除文件
当用户确定不必保存某一个文件时,可以用删除文件的命令将它删除。删除文件的系统调用的参数一般是文件名。
删除文件必须小心,因为一旦删除就无法恢复。尤其要注意的是,在多级目录结构文件的删除时,若删除的是普通文件必须注意是否有连接,有则必须先处理连接才能删除,若删除的是目录文件,则删除操作还包括该目录下的所有文件,必须小心。
-
文件的保护和保密措施有哪些?
-
保护措施
- 坏块管理
- 备份
- 建立副本
- 转储
- 全量转储
- 增量转储
-
保密措施
-
隐蔽文件和目录
-
口令
-
使用密码
-
制定访问权限
-
存取控制矩阵
-
存取控制表和用户权限表
-
-
第九章简答题
I/O控制方式有哪几种?
I/O控制方式的发展经历了4个阶段:程序查询方式,l/O中断方式,DMA方式和I/O通道方式。
-
程序查询方式
在早期计算机或现代一些简单的微型计算机系统中,采用程序查询I/O方式。程序查询是一种用程序直接控制I/O操作的方式。CPU与外设的活动本质上是异步的,为了实现CPU与外设间的信息传送,CPU必须重复测试外设的状态,仅当外设是处在准备好的状态时,CPU才能与外设交换信息。所以,在程序查询I/O方式的接口电路中必须设置一状态端口,以便CPU通过执行输入指令了解外设的状态。
当采用程序查询传送方式时,每当程序要使用某一外设进行I/O操作时,CPU要执行一段循环测试程序,以实现在外设准备好时执行一条输入/输出指令,进行一个字节或字的数据传送操作,在这种方式下,CPU的大量时间消耗在等待输入输出的循环检测上,使CPU与外设串行工作,严重影响了CPU和外设的使用效率,致便整个系统效率很低。
-
I/O中断方式
引入中断技术后,每当设备完成l/O操作时,便向CPU发出中断请求信号,通知CPU外设已准备好,可以进行数据传送操作,这祥,CPU一旦启动I/O设备后便可执行其他程序,仅在收到I/O中断请求时才执行其中断服务程序,进行I/O处理和I/O操作。例如,行式打印机每打印一行约需60ms,在程序查询方式中,大约有59**.99ms CPU都处于循环测试,而在程序中断I/O方式中,CPU仅用0.1ms时间处理打印机的中断服务程序。其余的59.**9ms可以处理其他任务。
在多道程序系统中,当一进程使用系统调用进行I/O操作时,系统使该进程进入阻塞状态,执行指定设备的处理程序,启动设备进行I/O操作,并从就绪状态进程队列中调度另一进程运行。在该设备的中断处理程序中,完成指定的I/O操作后,唤醒等待该I/O操作的进程,由进程调度程序在适当时机调度该进程运行。
程序中断传送方式改善了CPU的利用率,并使CPU与外设并行操作。但I/O数据的处理和CPU操作的控制都是由CPU承担的,仍然消耗了CPU不少时间。例如,为传输1000个字符,系统需处理1000次中断,其中999次中断处理用以传送每一个字符,第1000次中断用作传送结束处理。如果每次中断处理需100μs,对于传送速率1000字符/秒的字符输入设备来说,则CPU有10%的时间忙于I/O设备的处理上,倘若有多台I/O设备并行工作, CPU有可能完全陷入I/O处理事务中。
-
直接存储器访问(DMA)方式
虽然I/O中断方式比程序查询方式更有效,但需注意,它仍是以字节或字为单位进行输入输出的,每当完成一个字节或字时,控制器便要向CPU请求一次中断。换言之,采用I/O中断方式时的CPU,是以字节或字为单位进行干预的,如果将这种方式用于块设备的I/O,显然是低效的。例如,为了从磁盘中读出1KB的数据块,需要中断CPU 1K次。为了进一步减少CPU对I/O的干预而引入了直接存储器访问(DMA)方式。
-
I/O通道方式
虽然DMA方式比起中断方式来,已经显著的减少了对CPU的干预,即由以字节或字为单位的干预减少到以数据块为单位的干预,但CPU每发出一条I/O指令,也只能去读(或写)一个连续的数据块。而当我们需要一次去读多个数据块且将它们分别传送到不同的内存区域,或者相反时,则需由CPU分别发出多条I/O指令,即进行多次中断处理后,才能完成。
I/O通道方式是DMA方式的发展,它会进一步减少对CPU的干预,即把对一个数据块的读(或写)为单位的干预,减少为对一组数据块的读(或写)即有关的控制和管理为单位的干预。I/O通道有自己的指令系统,即通道程序,可以与CPU并行操作,独立管理外设和实现主存和外设之间的信息传输,使CPU摆脱了繁忙的I/O操作。在配置通道的计算机系统中,不仅能实现CPU与通道的并行操作,而是通道与通道、各通道的外设之间均能实现并行操作,因而有效地提高了整个系统的使用效率。
现代计算机I/O系统的结构由通道、设备控制器和设备三级组成。I/O操作要经过三级控制,第一级由CPU执行I/O指令,启动或停止通道运行,查询通道状态;第二级是在通道接受CPU的通道命令后,由通道执行为其准备的通道程序,向设备控制器发命令;第三级由设备控制器根据通道发出的命令控制外设完成I/O操作。
通道、设备控制器都是独立的功能部件,它们可以并行工作。在一个计算机系统中可以它配置多个通道。一个通道也可以连接多个设备控制器,-个设备控制器可以连接多台同类型的设备。另一方面,系统也可以将一台设备连接到几个控制器,一个控制器也可以连接到几个通道上,以提高设备的利用率和灵活性。
引入缓冲的主要原因是什么?
-
缓和CPU与I/O设备间速度不匹配的矛盾。
-
减少对CPU的中断频率,放宽对中断响应时间的限制。
-
提高CPU和I/O设备的并行性。
什么是设备独立性?为什么要实现设备独立性?
-
设备独立性的基本含义是指应用程序独立于物理设备,以使用户编制的程序与实际使用的物理设备无关。这种独立性不仅能提高用户程序的可适应性,使程序不局限于某具体的物理设备,而且易于实现输入、输出的重定向。即在I/O操作中所使用的设备可方便地重新指定,而无须改变原有程序。
-
引入设备独立性的主要目的是为了增加计算机系统的灵活性和可移植性。在计算机系统中,不同硬件设备的性能和特性可能存在差异,如果软件与硬件紧密耦合,那么在切换硬件设备或升级硬件时,软件很可能需要大量的修改和适配工作,增加了系统维护和升级的难度和成本。而引入设备独立性后,软件只需通过抽象的方式来访问硬件,而不需要关心硬件的具体细节,这样就可以保持软件在不同设备上的兼容性,提高了系统的灵活性和可移植性。
设备分配算法有哪些?
在设备管理中设备的分配算法比较简单,主要有2种算法:
-
先来先服务算法
当有多个进程申请-个设备时,该算法根据进程申请设备的先后次序,将这些进程排列成一个设备请求队列,设备分配程序总是把设备首先分配给队首进程。
-
优先权高者优先算法
这种算法中,系统首先把设备分配给优先权高的进程,使高优先权的进程能够尽快完成,对于同优先权的进程,系统按照先来先服务的方法分配设备。
什么是Spooling技术?说明Spooling系统的组成。
-
Spooling技术是一种虚拟设备技术,它可以把一台独占设备改造为虚拟设备,在进程所需的物理设备不存在或被占用的情况下,使用该设备。
-
Spooling系统主要有以下3部分组成:
-
输入井和输出井
这是在磁盘上开辟的2个大存储空间。输入井是模拟脱机输入时的磁盘设备,用于暂存I/O设备输入的数据;输出井是模拟脱机输出时的磁盘,用于暂存用户程序的输出数据。
-
输入缓冲区和输出缓冲区
为了缓和CPU和磁盘之间的速度不匹配的矛盾,在内存中要开辟2个缓冲区:输入缓冲区和输出缓冲区。输入缓冲区用于暂存由输入设备送来的数据,以后再传送到输入井。输出缓冲区用于暂存从输出井送来的数据,以后再传送给输出设备。
-
输入进程
SPi
和输出进程SPo
这是利用2个进程来模拟脱机I/O时的外围控制机。其中,进程SPi模拟脱机输入时的外围控制机,将用户要求的数据从输入设备通过输入缓冲区再送到输入井,当CPU需要该数据时,再从输入井中读出来直接送内存;进程SPo模拟脱机输出时的外围控制机,将CPU要输出的数据由内存先迭到输出井中,待输出设备空闲时,冉由输出井中把数据送到输出缓冲区,由输出设备输出。
-
第十章简答题
什么是分布式计算机系统?分布式能力包括哪几个方面?
-
分布式计算机系统是由多个分散的计算机经互联网连接而成的计算机系统。其中名个资源单元(物理的或逻辑的)既相互协同又高度自治,能在全系统范围内实现资源管理,动态地进行任务分配或功能分配,并能并行地运行分布式程序。分布式计算机系统是多机系统的一种新形式,涉及资源、任务、功能和控制的全面分布。在许多部门,将个人计算机与一个大的中心设施相连以实现数据处理。个人计算机用来支持各种用户友好的应用,例如字处理、电子数字图表处理、图像显示等,而主计算机则装有数据库管理和信息系统所需的公共数据库和一些复杂的软件。为此,各台计算机之间、个人计算机与主计算机之间需要进行连接,彼此通信构成统一的计算机系统。
-
这些应用趋向是通过在操作系统和支持的实用程序中开发分布式能力实现的。分布式能力包括以下几个方面:
-
通信结构
通信结构是支持各个独立计算机联网的软件。它提供支持分布式应用,例如电子邮件、文件传输和远程终端的存取。要求计算机记住用户和各个应用的身份,以便通过显式地访问实现与其他计算机通信。每个计算机有它自己独立的操作系统只要这些计算机能支持同样的通信结构,它们可以是多机种和各种操作系统的混合。
-
网络操作系统
它是为计算机网络配置的操作系统、网络中的各台计算机置各自的操作系统,而网络操作系统把它们有机地联系起来。通常这些联网的计算机是单用户工作站和一个或几个服务器。服务器提供网络范围的服务或应用,如文件存储和打印机管理。网络操作系统只不过在应用计算机与服务器之间交互时对局部操作系统起辅助作用。在这样的系统中,用户知道存在多个独立的计算机,并明确地与它们进行交互通信。
-
分布式操作系统
它是为分布式计算机系统配置的操作系统,是网络中计算机共享使用的一个公共的操作系统。在用户看来,它像一个普通的集中式操作系统但它向用户提供透明存取许多计算机上资源的能力。分布式操作系统可依赖一个通信结构实现基本的通信功能。通常,把一组相互独立的通信功能组装成操作系统以提供更有效的服务。
-
OSI模型中网络协议分为哪几个层次,每个网络协议层的功能是什么?
-
主要分七个层次:应用层、表示层、会话层、传输层、网络层、数据链路层、物理层
-
各协议层功能如下:
-
应用层
应用层是参考模型的最高层。这一层包含了支持分布式应用的各种管理功能和公用的机制,如虚拟终端、文件传输、电子邮件传输的服务和协议等。
-
表示层
表示层向上为应用层提供服务,向下接收来自会话层的服务。表示层的目的是对应用层送来的命令和数据内容加以解释说明,并对各种语法赋予应有的含义,以便使从应用层送入的各种信息具有明确的表示意义。每种计算机都有自身的描述数据的方法,所以不同类型的计算机之间必须进行数据转换才能相互了解。表示层的任务就是对发送方内部格式的数据结构进行编码,使形成的比特串适合传输。然后在目的地接收方进行解码,转换成所要求的格式。
表示层有4个主要功能:-
提供执行会话层原语的方法
-
提供说明复杂数据结构的方法
-
管理所需要的数据结构的集合
-
数据转换工作
由此可见,表示层是为用户进程提供服务的。这些服务项目包括密码技术(加密和解密),以及文本压缩(减少通信传输的信息量)等。
-
-
会话层
会话层接收从传输层来的任务,同时又为表示层服务。会话层的主要任务是提供种有效方法,以便组织并协调两个表示实体进程之间的对话,并管理它们之间的数据交换,建立各种应用程序所需的通用传输控制。会话层的功能包括:
- 在两个表示实体之间建立会话连接,以进行正常的数据传输。
- 控制两个表示实体之间的数据交换,限制和同步数据操作的会话服务。
- 恢复功能。会话层可以提供一个同步检查点机制,以便两个检查点之间产生某
类错误时,会话实体可以重新发送自上一检查点以来的全部数据。
-
传输层
传输层提供的服务主要有:传输连接管理和数据传输。所谓传输连接管理就是在两个传输用户之间建立和维护一条畅通的传输通道。而数据传输服务则要求在一对传输用户之间提供相互交换数据的方法。
为了保证用户进程之间的可靠的点到点传输通信,传输层必须具备以下主要功能:- 将传输层所给的传输地址映射到网络层的网络地址。
- 将多路的点到点的传输连接变成一路网络连接。
- 传输连接的建立或释放。
- 差错检测和恢复。
-
网络层
网络层提供了计算机之间通过某类通信网进行信息传输,它的任务是选择合适的网间路由和交换结点,确保数据及时传送。它接收来自数据链路层的服务,并向传输层提供服务,使得较高层摆脱了了解基本数据传输和用于连接系统需要的交换技术是网络服务负责建立、维护和终止网络连接手段。
网络中任意两台主机的通信都是由通信子网完成的。网络层则是通信子网的最高层。它最能体现网络的概念,所以称之为网络层。网络层直接为主机服务,这种服务分为两大类:虚拟电路和分组数据报文交换。
虚拟电路服务是指两个主机通信之前,网络层负责建立一条通路,称为虚拟电路。它由若干个逻辑信道串联而成,能保证分组报文按顺序正确地到达目的地。虚拟电路经建立,就为某一对主计算机服务。数据传输结束时,拆除该电路。
分组报文服务是指网络层直接从传输层接收报文并负责传送。它的典型例子是x25标准。数据报文走哪条路径,何时发送是不确定的。在这类服务中,每个报文分组都要附有目的地址、源地址、顺序号等足够信息,才能使目的主机接收。网络层应负责为传送的报文选择路由,以便使各分组报文能正确到达目的地。如果子网使用数据报文服务,则对每一个到达的报文分组都需做一次路由选择。但对子网采用虚拟电路服务时,只有当一条新的虚拟电路建立时才做一次路由选择。路由选择要求做到正确、简单、牢靠、稳定、公正和最优化。
网络层还应负责对死锁和拥挤的控制。
网络层另外还应提供网际互联的服务。当源端主机与目的端主机不在同一网络中时,在一个路由选择问题,应该找出一条通过一个或多个中间网络的路径。
-
数据链路层
数据链路层协议的主要功能是:在相邻的两个计算机之间建立、维持和释放一条或多条数据链路。其主要工作是将数据按规定的格式(帧)组织起来,进行传输,保证数据传输无差错,按顺序到达目的地。在链路上实现帧的同步,以及进行差错控制、流量控制和顺序控制等。
-
物理层
国际标准化组织为开放式系统互连的七层参考模型中的物理层的定义如下:“物理层为启动、维护和释放数据链路实体之间二进制位而进行的物理连接提供机械的、电气的、功能的和规程的特性,这种物理连接允许进行全双工或半双工的二进制位流传输。”
-
什么是客户机/服务器模型?客户机/服务器模型有哪些特点?
-
客户机服务器模型是一种分布式应用程序结构,用于在资源或服务的提供者(称为服务器)和服务请求者(称为客户机)之间划分任务或工作负载。前端程序(客户端)是负责与网络客户的交流,并向服务器提出要求的一方;后端程序(服务端)则是处理相关的交互请求,为前端提供服务的一方;而连接件则是服务器与客户机的连接和支撑平台。
-
C/S模式有以下特点:
-
C/S模式将应用与服务分离,系统具有稳定性和灵活性。
-
C/S模式配备的是点对点的结构模式,适用于局域网,有可靠的安全性。
-
由于客户机实现与服务器端的直接连接,没有中间环节,响应速度快。
-
在C/S模式中,作为客户机的计算机都要安装客户机程序,一旦软件系统升级,每台客户机都要安装客户机程序,系统升级和维护较为复杂。
个中间网络的路径。 -
数据链路层
数据链路层协议的主要功能是:在相邻的两个计算机之间建立、维持和释放一条或多条数据链路。其主要工作是将数据按规定的格式(帧)组织起来,进行传输,保证数据传输无差错,按顺序到达目的地。在链路上实现帧的同步,以及进行差错控制、流量控制和顺序控制等。
-
物理层
国际标准化组织为开放式系统互连的七层参考模型中的物理层的定义如下:“物理层为启动、维护和释放数据链路实体之间二进制位而进行的物理连接提供机械的、电气的、功能的和规程的特性,这种物理连接允许进行全双工或半双工的二进制位流传输。”
-
什么是客户机/服务器模型?客户机/服务器模型有哪些特点?
-
客户机服务器模型是一种分布式应用程序结构,用于在资源或服务的提供者(称为服务器)和服务请求者(称为客户机)之间划分任务或工作负载。前端程序(客户端)是负责与网络客户的交流,并向服务器提出要求的一方;后端程序(服务端)则是处理相关的交互请求,为前端提供服务的一方;而连接件则是服务器与客户机的连接和支撑平台。
-
C/S模式有以下特点:
-
C/S模式将应用与服务分离,系统具有稳定性和灵活性。
-
C/S模式配备的是点对点的结构模式,适用于局域网,有可靠的安全性。
-
由于客户机实现与服务器端的直接连接,没有中间环节,响应速度快。
-
在C/S模式中,作为客户机的计算机都要安装客户机程序,一旦软件系统升级,每台客户机都要安装客户机程序,系统升级和维护较为复杂。
-