全国计算机四级考试复习纲要-第三第四章(2)

卫文 1172分享

  四、存储管理

  1.引言

  现代计算机系统中的存储系统常是多级存储体系,至少有主存(内存)和辅存(外存)两级。有的系统有更多级。主存是由系统实际提供的存储单元(常指字节)组成的一个连续地址空间,处理器可直接存取。辅存是指软盘、硬盘、光盘和磁带等一些外部存储部件,常用来存放暂不执行的程序和数据,处理器不能直接访问,需通过启动I/O设备,才能进行内存、外存交换。其访问速度慢,但价格便宜,常用作主存的后援设备。主存大小由系统硬件决定,是实实在在的存储,它的存储容量受到实际存储单元的限制。虚拟存储(简称虚存)不考虑实际主存的大小和数据存取的实际地址,只考虑相互有关的数据之间的相对位置,其容量由计算机的地址的位数决定。系统中主存的使用一般分成两部分,一部分为系统空间,存放操作系统本身及相关的系统数据,另一部分为用户空间,存放用户的程序和数据。

  (1)地址重定位用户程序需调入主存运行,即从辅存把用户已经编译链接的目标程序(有时称为可执行程序)装入主存。由于用户作业的存储空间是运行时确定的,所以程序中的操作地址都采用相对地址(逻辑地址)的形式。把相对地址空间的程序转换成在绝对地址(物理地址)空间上能够执行的过程称为地址重定位,也称为地址映射或地址映像。地址重定位有两种:静态重定位和动态重定位。静态重定位是指在程序装入时完成,一般由软件实现;动态重定位是指在程序执行时实现地址转换,它通常由一个基本地址寄存器和一个加法器组成的动态重定位机制实现。

  (2)存储管理的功能早期的单用户操作系统,一次只允许一个用户程序驻留,它拥有用户地址空间的全部访问权限,存储管理的任务是存储空间的分配与回收。在多道程序系统,多个程序同时驻留内存,如何有效地利用主存,如何让需要较大运行空间的作业运行,如何保护与共享主存等,都是存储管理应解决的问题。存储管理应提高存储资源的利用效率,又方便用户使用,存储管理的任务应具有如下功能:①分配与回收:主存分配方法有两种:静态分配与和动态分配。静态分配是指在目标模块装入主存时即取得所需空间,直至完成不再变动;动态分配则允许进程在运行过程中继续申请主存空间。采用动态分配方法的系统中,常配合使用合并自由区的方法,使一个连续的空区尽可能地大。②存储扩充:提供虚拟存储器,使计算机系统似乎有一个比实际主存储器容量大的主存空间。需考虑放置策略。③共享与保护:共享指共享在主存中的程序或数据,如多个用户共享编辑程序成编译程序等。由于多道程序共享主存,每个程序都应有它单独的主存区域,各自运行,互不干扰。

  2.实存管理

  (1)单一连续分配在单道程序系统中,主存区域的用户空间全部为一个作业或进程占用,单一连续分配方法主要用于早期单道批处理系统以及80年代个人计算机系统,单一连续分配方法主要采用静态分配方法,为降低成本和减少复杂度,常不对主存进行保护,会引起冲突而使系统瘫痪。

  (2)固定分区分配固定分区分配法是把主存空间固定地划分为若干个大小不等的区域,划分的原则由系统决定。系统使用分区表描述分区情况。

  (3)可变分区分配可变分区分配方法是将主存空间按用户要求动态地划分若干个分区。这样就消除了固定分区分配方法中的小作业占据大分区造成的浪费(这种浪费称为内碎片)。可变分区分配系统中初始时只有一个分区。随后,分配程序将这个区依次分给作业或进程。继续考察连续分配方案:一个作业必须占据相邻接的存储单元。在可变分区分配系统中,并不作出作业有多长的的假定(除了它们不能大于计算机内可利用主存的尺寸之外。当作业到达时,如果调度机构决定它们开始运行,它们就能获得必要的存储区,一点浪费也没有———存储区的分区与作业的长度相符。)但是,每种存储组织方案都包含一定程度的浪费。在可变分区分配系统中,主存中的作业在开始装入和归还自由区之前,主存浪费并不明显,这些自由区可以被其分作业使用。即使如此,剩余的自由区域可能变得很小。因此在可变分区分配系统中,确实会出现存储器浪费,这种现象称为外部碎片。①合并自由区在可变分区分配系统中,当一个作业完成时,能够检测到被释放的存储区是否与其他自由存储区域(自由区)相邻接。如果与其他自由存储区邻接,可以在自由存储区表记录上新增加一个自由区,或新的自由区与相邻接的现存自由区合并的单一自由区。合并相邻接的自由区以形成单个更大的自由区的过程叫做合并。用合并自由区的方法,我们重新获得最大可能连续的存储块。②存储拼接即使合并了自由区,经常发现分布在主存各处的破碎的自由区在主存中占据了相当数量的空间。有时,当一个作业申请一定数量的主存,而此时却没有单个的自由区大到足够装下这个作业,虽然自由区的总和大于新作业所要的存储区。存储拼接或存储紧凑也称碎片收集,移动存储器中所有被占用的区域到主存的某一端。这样留下单独的大的存储自由区,取代在可变分区多道程序设计中常见的许多小自由区。当所有可利用的自由存储区连续时,一个正等待着的作业能够调入运行,因为它的存储需求能被拼接形成的单个自由满足。③存储分配算法存储分配算法用来决定输入的程序和数据放到主存中的什么地方。

  常用3种算法是:

  最佳适应算法:选择最小的足够装入的可利用的自由区。对许多人来说,最佳适应看起来是最直观的,吸引人的算法。

  首次适应算法:从主存低地址开始选择第一个足够装入的可利用的自由区。首次适应也具有直观吸引力,此算法可以快速做出分配决定。

  最差适应算法:最差适应说的是,总是将一个程序放入主存中最大的自由区。这种方法吸引人的原因很简单:在大自由区中放入程序后,剩下的自由区经常也很大,于是也能装下一个较大的新程序。

  (4)交换上述3种方法都把用户作业完全地连续存放在一个存储区区域中,为了能在较小的主存空间中运行较大的作业,常采用交换技术。交换技术是指将作业不需要或暂时不需要的部分(进程)移到辅存,让出主存空间以调入需要的部分,交换到辅存的部分也可以再次被调入。实际上这是有辅存作缓冲,让用户程序在较小的存储空间中,通过不断地换出作业或进程而运行较大的作业。

  3.虚存组织

  虚拟存储通常涉及存储空间大于计算机系统主存中可利用存储空间时的寻址能力问题。虚拟存储系统的特点是运行程序访问的地址不是主存中可以获得的,即运行进程访问的地址与主存可用的地址相脱离。运行进程访问的地址称为虚地址,主存中使用的地址称为实地址。一个运行进程可以访问的虚地址范围称为进程的虚地址空间,相应的,可使用的实地址范围称为实地址空间。

  (1)分段存储组织可变分区分配方案中,主存中放置的程序常采用首次适应、最佳适应或最差适应算法实现,但运行的程序需连续存放在一个分区中。一个作业是由若干个具有逻辑意义的段(如主程序、子程序、数据段等)组成。分段系统中,允许程序(作业)占据主存中若干分离的分区。每个分区存储一个程序分段。这样,每个作业需要几对界限地址,判定访问地址是否越界也困难了。在分段存储系统中常常利用存储保护健实现存储保护。分段系统中虚拟地址是一个有序对(段号,段内位移)。系统为每一个作业建立一个段表,其内容包括段号与主存起始地址的对应关系、段长和状态等。状态指出这个段是否已调入主存,即主存起始地址指出这个段,状态也指出这个段的访问权限。分段系统的动态地址转换是这样进行的:进程运行时,其段表的首地址已在基本地址寄存器中,执行的指令访问虚存(s,d)(取指令或取操作数)时,首先根据段号s查段表,若段已经调入主存,则得到该段的主存起始地址,然后与段内相对地址(段内偏移量)相加,得到实地址。如果该段尚未调入主存,则产生缺段中断,以装入所需要的段。

  (2)页式存储组织页式存储组织与存储组织相似。但是,主存被分划成若干定长的页,页式系统中虚地址是一个有序对(页号,页内位移)。系统为每一个进程建立一个页表,其内容包括进程的逻辑页号与物理页号的对应关系、状态等。页式系统的动态地址转换是这样进行的,进程运行时,其页表的首地址已在系统的动态地址转换机构中的基本地址寄存器中,执行的指令访问虚存地址(p,d)时,首先根据页号p查页表,由状态可知,这个页是否已经调入主存。若已调入主存,则得到该页的主存位置,然后,与页内相对位移组合,得到实地址;如果该页尚未调入主存,则产生缺页中断,以装入所需的页。

  (3)段页式存储组织段页式存储组织综合了段式组织与页式组织的特点,主存被分划成定长的页,段页式系统中虚地址形式是(段号、段内页号、页内位移)。系统为每个进程建立一个段表,为每个段建立一个页表。

  4.虚存管理

  实存管理中曾讨论过调入、放置(放入分区)和交换(swapping)等问题,虚拟存储系统同样存在这些问题。

  (1)调入策略这涉及在什么时候一页或一段要从辅存调入主存,有两种算法:直到进程访问到某页或某段时,才把这个页或段调入主存,这称为请求调入方案;先行调入方案试图预测进程将要访问的是哪些页或段,则在访问以前先行调入这些页或段到主存。

  (2)放置策略这涉及将调入的页或段放在主存的什么地方,页式系统可以放置在任一可利用的实页中,分段系统则类似于可变分区分配系统。

  (3)置换策略这涉及到进程已用完了该进程的可用主存空间时,选择淘汰哪些页或段,腾出空间放置调入的页或段。在请求页式存储系统中,有若干淘汰算法(置换策略):①最优(OPT)算法:选择不再使用或最远的将来才被使用的页,这是理想的算法,但难以实现,常用于淘汰算法的比较。②随机(RAND)算法:随机地选择被淘汰的页,开销小,但可能选中立即就要访问的页。③先进先出(FIFO)算法:选择在主存驻留时间最长的页,似乎合理,但可能淘汰立即要使用的页。另外,使用FIFO算法时,在未给予进程分配足够的页面数时,有时会出现给予进程的页面数增多,缺页次数反而增加的异常现象。④最近最少使用(LRU)算法:选择离当前时间最近的一段时间内使用得最少的页,这个算法的主要出发点是,如果某个页被访问了,则它可能马上就要被访问;反之,如果某个页长时间未被访问,则它在最近一段时间也不会被访问。存储管理策略的基础是局部性原理———进程往往会不均匀地高度局部化地访问主存。局部性表现为时间局部性和空间局部性两类:时间局部性是指最近被访问的存储位置,很可能不久的将来还要访问,如循环、栈等;空间局部性是指存储访问有成组的倾向:当访问某个位置后,很可能也要访问其附近的位置,如访问数组,代码顺序执行等。存储访问局部性最有意义的结果是,只要进程所需要的页面子集驻留在主存中,进程就可以有效地运行,根据局部性访问特性,Denning阐述了程序性能的工作集理论。简言之,工作集是进程活跃地访问的页面的集合。工作集理论指出,为使进程有效地运行。它的页面工作集应驻留在主存中。否则,由于进程频繁地从辅存请求页面,而出现称为“颠簸”(又称抖动)的过度的页面调度活动。此时,处理页面调度上的时间超过了程序的执行时间。显然,此时CPU的有效利用率会急速下降。当一个进程陷入颠簸状态时,有的系统将采用全局页面调度方法以试图消除颠簸现象,即将其他进程拥有的主存页面调出主存供这个进程使用

  五、设备管理

  1.引言

  在计算机系统中,除了处理器和主存之外,其他的大部分硬设备种类繁多,特性各异,操作方式的差异很大,从而使操作系统的设备管理变得十分繁杂。

  (1)设备的类型20世纪80年代以来,由于个人计算机、网络的发展,外部设备更趋多样化、复杂化和智能化。例如网卡、仿真终端、虚拟终端、Windows终端和X-Windows终端。为简化设备管理程序,常对设备进行分类:①按数据组织方式:字符设备(常对应于慢速设备)和块设备(常对应于快速设备)。②按资源性能性质:独占设备(如终端、打印机),共享设备(如磁盘),虚拟设备(采用某种技术,将高速设备如磁盘虚拟化为多个“高速”读卡机和打印机,以提高系统效率,这也称为spoolˉing(假脱机)技术。

  (2)设备管理的功能设备管理是对计算机输入/输出系统的管理,其主要任务是:实现对外部设备的分配和回收;启动外部设备;控制输入/输出设备与处理器或主存之间交换数据;实现对磁盘的调度;处理设备的中断,实现虚拟设备等。

  (3)数据传输控制方式外部设备和主存之间常用的传输控制方式有4种:

  ①程序控制方式。处理器启动数据传输,然后等设备完成。程序控制方式不能实现并发。

  ②中断方式。中断方式的数据传输过程是这样的,进程启动数据传输(如读)后,该进程放弃处理器,当数据传输完成,设备控制器产生中断请求,中断处理程序对数据传输工作处理以后,让相应进程成为就绪状态。以后,该进程就可以得到所需要的数据。

  ③直接存储访问(DMA)方式。其基本思想是外部设备和主存之间开辟直接的数据交换通路。除了控制状态寄存器和数据缓冲寄存器之外,DMA控制器中还包括传输字节计数器、主存地址寄存器等。DMA方式采用窃取(或挪用)处理器的工作周期和控制总线而实现辅助存储器和主存之间的数据交换。有的DMA方式也采用总线浮起方式传输大批量数据。

  ④设备连接现代计算机系统,系统对外部设备的控制常分为3个层次,即通道、控制器和设备。控制设备的软件分为与设备有关的和与设备无关的两大类。前者与具体的设备类型有关,设备驱动程序就是与设备有关的;与设备无关的软件主要用于在用户一级提供统一的接口,包括处理控制器的公共部分。需要处理的内容包括:为设备驱动程序提供统一的接口、设备命名、设备分配与回收、错误报告、块设备空间管理、缓冲管理等等。

  (4)组块与缓冲通常高速外设的输入输出操作是以块为单位的,如磁盘块的大小是固定的。所谓块,又称为物理记录,是实际从设备读取或写到设备上的信息单位。相应的逻辑记录是从用户观点考察的一个信息单位。为了提高辅助存储器尤其是磁带的利用率,一般由若干逻辑记录组成一个物理记录,这称为组块技术。缓冲是一种暂存技术。它利用某个存储设备,在数据的传输过程中进行暂时的存储。缓冲技术的引入,有效地改善了处理器与输入输出设备之间速度不匹配的情况,也减少了设备的中断请求次数。缓冲技术可以采用硬件缓冲和软件缓冲两种。硬件缓冲是利用专门的硬件寄存器作为缓冲区;软件缓冲是利用操作系统的管理,用主存中的一个或多个区域作为缓冲区,进而可以形成缓冲池。

  (5)虚设备采用假脱机技术,可以将低速的独占设备改造成一种可共享的设备,而且一台物理设备可以对应若干台虚拟的同类设备。假脱机简称spooling,是利用多道程序技术,采用一组程序或进程模拟一台输入输出处理机,脱机输出是使用虚设备技术的典型例子。在现代计算机系统中,每个窗口可以用一台设备来模拟自身,如常见的多窗口技术,即在一个终端上开多个窗口,每个窗口可以独立地进行显示,以监视用户不同任务的执行情况,这是通过缩小显示区域、平铺或重叠显示来模拟多个显示器的。

  2.设备的分配

  设备分配的原则是按照设备特性和用户要求来决定的。设备分配的目的是既要充分发挥设备的使用效率,尽可能地让设备忙;又要避免形成死锁;另外,还要做到设备的独立性,即用户程序面对的是逻辑设备,分配程序将在系统中把逻辑设备转换成物理设备之后,再根据要求的物理设备状态进行分配。设备分配有两种方法,即静态分配方法和动态分配方法。静态分配方法是在用户作业开始执行之前,系统一次分配该作业所需求的全部设备、控制器和通道,一旦分配之后,这些设备、控制器和通道就一直为该作业所占有,直到该作业终止而撤消。显然,设备的使用效率低。动态分配在进程运行过程中根据运行的需要而进行。当进程需要设备时,通过系统调用命令申请设备,由系统按照设定的策略分配相应的设备、控制器和通道给进程,一旦用完以后,便立即释放。动态分配方法有利于提高设备的利用率,但如果分配算法选用不当,有可能产生死锁。

  3.磁盘调度算法

  设备的动态分配算法与进程调度相似,也是基于一定的分配策略的。常用的分配策略有先请求先分配、优先级高者先分配等策略。在多道程序系统中,低效率通常是由于磁盘类旋转设备使用不当造成的。操作系统中,对磁盘的访问要求来自多方面,常常需要排队。这时,对众多的访问要求按一定的次序响应,会直接影响磁盘的工作效率,进而影响系统的性能。访问磁盘的时间因子由3部分构成,它们是查找(查找磁道)时间、等待(旋转等待扇区)时间和数据传输时间,其中查找时间是决定因素。因此,磁盘调度算法先考虑优化查找策略,需要时再优化旋转等待策略。①先来先服务(FCFS)调度:按先来后到次序服务,未作优化。②最短查找时间优先(SSTF)调度:FCFS会引起读写头在盘面上的大范围移动,SSTF查找距离磁头最短(也就是查找时间最短)的请求作为下一次服务的对象。SSTF查找模式有高度局部化的倾向,会推迟一些请求的服务,甚至引起无限拖延(又称饥饿)。③SCAN调度:又称电梯算法,SCAN算法是磁头前进方向上的最短查找时间优先算法,它排除了磁头在盘面局部位置上的往复移动,SCAN算法在很大程度上消除了SSTF算法的不公平性,但仍有利于对中间磁道的请求。

  六、文件管理

  1.引言

  计算机系统中还有另一类资源是软资源。软资源包括各种系统程序、各种实用程序、各种应用程序、各种应用领域的程序,也包括大量的文档材料。每一种资源本身都是具有一定逻辑意义的、相关信息的集合。在操作系统中它们以文件形式存储。大多数应用中,文件是最重要的元素,每个应用总要使用和产生数据。一般从文件中输入数据,其产生的数据也存入文件而长期储存,供以后使用。系统的重要作用之一是能快速处理大量信息,因此数据的组织、存取和保护是操作系统必须提供的一个重要的功能。文件系统是操作系统中组织、存取和保护数据的一个重要部分。

  (1)文件的概念文件是信息的一种组织形式,是存储在辅助存储器上的具有标识名的一组信息集合。它可以是有格式的,也可以是无格式的。与文件相关的概念有:数据项、记录、文件和数据库。数据项是数据的基本单位,一个数据项有一个值,数据项可能是定长的也可能是可变长度的。记录是相关数据项的集合,与数据项类似,记录的长度可能是定长的,也可能是可变长度的。文件是记录的集合,文件是一个实体,被用户或应用程序按名字访问,为了安全,每一文件都有访问控制约束。数据库是相关数据的集合,数据元素之间有直接的联系,这些联系是在设计时为若干个不同的应用而设计的。数据库本身可由若干文件组成。

  (2)文件系统操作系统的文件系统包括两个方面:一方面包括负责管理文件的一组系统软件,另一方面包括被管理的对象———文件。文件系统的主要目标是提高存储器的利用率,接受用户的委托实施对文件的操作。为此要解决的主要问题是:管理辅助存储器,实现文件从名字空间到辅存地址空间的转换,决定文件信息的存放位置、存放形式和存取权限,实现文件和目录的操作,提供文件共享能力和安全设施,提供友好的用户接口。

  (3)文件类型文件有多种分类方法,这是根据文件的性质和用途区分的。①按文件的用途可以分为系统文件、库文件和用户文件等。②按文件的信息流向可以分为输入文件、输出文件和输入输出文件等。③按文件的组织形式可以分为普通文件、目录文件和特殊文件等。特殊文件是UNIX系统采用的技术,是把所有的输入输出设备都视作文件(特殊文件)。特殊文件的使用形式是与普通文件相似的。④按文件的安全属性可分为只读文件、读写文件、可执行文件和不保护文件等。

  2.文件的结构和组织

  文件的结构是指文件的组织形式,从用户观点所看到的文件组织形式,称为文件的逻辑结构;从实现观点考察文件在辅助存储器上的存放方式,常称为文件的物理结构。

  (1)文件的逻辑结构文件的逻辑组织是为了方便用户的使用,一般文件的逻辑结构可以分为两种:无结构的字符流文件和有结构的记录文件,后者也称为有格式文件。记录文件由记录组成,即文件内的信息划分成多个记录,以记录为单位组织和使用信息。记录文件有顺序文件、索引顺序文件、索引文件和直接文件。

  ①顺序文件:许多文件是顺序文件。顺序文件的记录定长,记录中的数据项的类型长度与次序固定,一般还有一个可以惟一标识记录的数据项,称为键(key),记录是按键值的约定次序组织。顺序文件常用于批处理应用,对于查询或更新某个记录的请求的处理性能不佳。

  ②索引顺序文件:索引顺序文件是基于键的约定次序组织的,而且维护键的索引和溢出区域。键的索引也可以是多级索引。索引顺序文件既适用于交互方式应用,也适用于批处理的方式应用。

  ③索引文件:索引顺序文件是基于记录的一个键数据项组织的,而许多应用需按照别的数据项访问文件,为此,常采用索引文件方法,即对主文件中的记录按需要的数据项(一个或几个)建索引,索引文件本身是顺序文件组织。

  ④直接文件:直接文件又称哈希(Hash)文件,记录以它们在直接访问存储设备(DASD)上的物理地址直接(随机)访问。直接文件常用于需要高速访问文件而且每次访问一条记录的应用中。

  (2)文件的物理结构文件的物理结构侧重于提高存储器的利用效率和降低存取时间。文件的存储设备通常划分为大小相同的物理块,物理块是分配和传输信息的基本单位。文件的物理结构是指文件在存储设备上的存储方法。文件的物理结构涉及文件存储设备的组块策略和文件分配策略,决定文件信息在存储设备上的存储位置,常用的文件分配策略有:

  ①顺序分配(连续分配)。这是最简单的分配方法,在文件建立时预先分配一个连续的物理块集,然后,按照逻辑文件中的信息(或记录)顺序,依次把信息(或记录)顺序存储到物理块中。这样,只需知道文件在文件存储设备上的起始位置和文件长度,就能进行存取,这种分配方法适合于顺序存取,在连续存取相邻信息时,存取速度快。其缺点是在文件建立时必须指定文件的信息长度,以后不能动态增长,一般不宜用于需要经常修改的文件。

  ②链接分配(串联分配)。这是按单个物理块逐个进行的。每个物理块中(一般是最后一个单元)设有一个指针,指向下一个物理块的地址,这样,所有的物理块都被链接起来,形成一个链接队列。在建立链接文件时,不须指定文件的长度,在文件的说明信息中,只需指出该文件的第一个物理块块号,链接文件的文件长度可以动态的增长,只需调整物理块间的指针就可以插入或删除一个信息块。链接分配的优点是可以解决存储器的碎片问题,提高存储空间利用率。由于链接文件只能按照队列中的链接指针顺序查找,因此,搜索效率低,一般只适用于顺序访问,不适用于随机存取。

  ③索引分配。这是另一种对文件存储不连续分配的方法。采用索引分配方法的系统,系统为每个文件建立一张索引表,索引表中每一表项指出文件信息所在的逻辑块号和与之对应的物理块号。索引分配既可以满足文件动态增长的要求,又可以方便而迅速地实现随机存取。这是因为索引表中含有全部逻辑块号和物理块号之间的对应关系。对一些大的文件,索引表的大小会超过一个物理块,就会发生索引表的分配问题。一般采用多级(间接索引)技术,这时在由索引表指出的物理块中存放的不是文件信息,而是存放文件信息的物理块地址。这样,如果一个物理块能存储n个物理块地址,则一次间接索引,可寻址的文件长度将变成n×n块,对于更大的文件可以采用二级间接索引,甚至三级间接索引技术(如UNIX系统)。索引分配既适用于顺序存取,也适用于随机存取。索引分配的缺点是索引表增加了存储空间的开销。另外,在存取文件时需要访问存储设备两次,一次是访问索引表,另一次是根据索引表提供的物理块号访问文件信息,为了提高效率,一种改进的方法是,在对某个文件进行操作之前,预先把索引表调入主存(如Open命令),这样,文件的存取就能直接从在主存的索引表中确定相应的物理块号,从而只需要访问一次磁盘

  3.文件访问方法

  用户通过对文件的访问(读写)来完成对文件的查找、修改、删除和添加等操作。常用的访问方法有两种,顺序访问和随机访问。

  (1)顺序访问顺序访问是按照文件的逻辑地址顺序访问。对无结构的字符流文件,顺序访问反映当前读写指针的变化,在访问完一段信息之后,读写指针自动加上这段信息的长度。

  (2)随机访问随机访问方法又分成两种:①一是根据记录的编号访问文件中的记录,或者根据读写命令把读写指针移到所需要的信息段开始处。②另一种是按键访问文件中的记录。文件的访问依赖于存放文件的存储设备的特性,也依赖于文件的分配策略。例如,磁带是典型的顺序访问设备,磁盘则是典型的随机访问设备。

  4.文件存储设备管理

  文件存储设备管理也就是操作系统的辅存管理,是要有效的进行存储空间的管理。由于文件存储设备是分成许多大小相同的物理块,并以块为单位交换信息,因此,文件存储设备的管理实质上是对空闲块的组织和管理问题。有3种不同的空闲块管理方法,它们是位图法、链接法和索引法。

  (1)位图法位图法使用一个向量描述整个磁盘,向量的每一位表示一个物理块的状态,如0表示空闲块,而1表示该块已使用。位图法易于找到一个或连续几个空闲块,此法适合每一种文件分配方法,另外,位图法本身很小,易于全部放入主存。

  (2)链接法链接法使用链表把空闲块组织在一起,当申请者需要空闲块时,分配程序从链首开始摘取所需的空闲块。反之,管理程序把回收的空闲块逐个的挂入队尾,这个方法适用于每一种文件分配方法。空闲块的链接方法可以是如上述的按释放的先后顺序链接,也可以是按空闲块区(连续n个空闲块)的大小顺序链接。后者有利于获得连续的空闲块的请求,但在分配请求和回收空闲块时系统开销多一点。

  (3)索引法类似于文件分配方法,索引法把空闲块作为一个文件并采用索引技术。为了提高效率,索引可以基于空闲块区而不是仅仅基于单个物理块。这样,磁盘上每一个空闲块区都对应于索引表中一个条目,这个方法能有效地支持每一种文件分配方法。

  5.文件控制块和文件目录

  (1)文件控制块文件控制块是系统在管理文件时所必需的控制信息的数据结构,是文件存在的惟一标志,也称文件描述词,简记为FCB。FCB的内容包括相应文件的基本属性,大致可以分成4个部分:①基本信息:如文件名、文件类型、文件组织等;②保护信息:如口令、所有者名、保存期限、访问权限等;③位置信息:如存储位置、文件长度等;④使用信息:如时间信息、最迟使用者等。

  (2)文件目录文件控制块的集合称为文件目录,文件目录也被组织成文件,常称为目录文件。文件目录结构形式有一级目录结构、二级目录结构和多级目录结构。

  ①一级目录结构:文件系统中只有一个目录文件的目录结构称为一级目录结构。其中,每一表项是一个文件控制块,对应于一个文件。一级目录结构易于实现,管理简单。但当系统中文件数增多时,查找时间较长,也会发生文件名重复(重名)的问题。

  ②二级目录结构:文件系统将目录分为两级,就形成了二级目录结构。这时,第一级目录称为主目录,主目录表项记录用户名及相应用户目录的存储位置。第二级是用户目录,以顺序表形式存放该用户文件的文件控制块。二级目录虽然都组织成顺序表,由于都不会很长,查找时间快,而且各个用户只要保证自己的文件名称不重复就不会发生重名问题。对文件的共享和文件的保护也比一级目录结构好。

  ③多级目录结构:如果将二级目录的级数增加,就形成了多级目录。也称为树型目录结构。在多级目录结构中,常常将第一级目录作为系统目录,称为根目录(树的根节点)。目录树中的非叶节点指出目录文件,非目录文件一定由叶节点指出。叶节点也可能指出目录文件,即空目录。在多级目录结构中,从根出发到任何一个叶节点有且只有一条路径,该路径的全部节点名构成一个全部路径名,又称绝对路径名。为查找一个非目录文件就使用它的全路径名,多级目录结构更加完善了文件结构的查找范围,更好地解决了文件的重名问题,增强了文件的共享和保护措施。

  6.文件的使用

  (1)工作目录也称当前目录。在多级目录结构的文件系统中,文件的全路径名可能较长,也会涉及多次磁盘访问,为了提高效率,操作系统提供设置工作目录的机制,每个用户都有自己的工作目录,任一目录节点都可以被设置为工作目录。一旦某个目录节点被设置成工作目录,相应的目录文件有关内容就会被调入主存,这样,对以工作目录为根的子树内任一文件的查找时间会缩短,从工作目录出发的文件路径名称为文件的相对路径名。文件系统允许用户随时改变自己的工作目录(如命令CD)。

  (2)文件的使用一般文件系统提供一组专门用于文件、目录的管理。如目录管理、文件控制和文件存取等命令。①目录管理命令:如建立目录、显示工作目录、改变目录、删除目录(一般只可删除空目录);②文件控制命令:如建立文件、删险文件、打开文件、关闭文件、改文件名、改变文件属性;③文件存取命令:如读写文件、显示文件内容、复制文件等。

  (3)文件共享和安全文件的共享是指不同的用户使用同一文件。文件的安全是指文件的保密和保护,即限制未授权用户使用或破坏文件。文件的共享可以采用文件的绝对路径名(或相对路径名)共享同一文件。一般的文件系统,要求用户先打开文件,再对文件进行读写,不再使用时关闭文件。若两个用户可以同时打开文件,对文件进行存取,这称为动态文件共享。文件的安全管理措施常常在系统级、用户级、目录级和文件级上实施。①系统级:用户需注册登记、并配有口令,每次使用系统时,都需要进行登录(login),然后输入用户口令(password),方能进入系统;②用户级:系统对用户分类并限定各类用户对目录和文件的访问权限;③目录级:系统对目录的操作权限作限定,如读(R)、写(W)、查找(X)等;④文件级:系统设置文件属性来控制用户对文件的访问,如只读(RO)、执行(X)、读写(RW)、共享(Sha)、隐式(H)等。对目录和文件的访问权限可以由建立者设置。除了限定访问权限,还可以通过加密等方式进行保护。

  

相关文章

热门标签

495848