当前位置:文档之家› 操作系统文件管理

操作系统文件管理

操作系统文件管理博文很长,我把一章的内容都总结在这里了。

在现代计算机系统中,要用到大量的程序和数据,因内存容量有限,且不能长期保存,故而平时总是把它们以文件的形式存放在外存中,需要时再随时将它们调入内存。

如果由用户直接管理外存上的文件,不仅要求用户熟悉外存特性,了解各种文件的属性,以及它们在外存上的位置,而且在多用户环境下,还必须能保持数据的安全性和一致性。

显然,这是用户所不能胜任、也不愿意承担的工作。

于是,取而代之的便是在操作系统中又增加了文件管理功能,即构成一个文件系统,负责管理在外存上的文件,并把对文件的存取、共享和保护等手段提供给用户。

这不仅方便了用户,保证了文件的安全性,还可有效地提高系统资源的利用率。

1. 有关文件的概念文件:具有符号名(文件名)的一组相关元素的有序序列,是一段程序或数据的集合。

文件系统:是操作系统中统一管理信息资源的一种软件,管理文件的存储、检索、更新,提供安全可靠的共享和保护手段,并且方便用户使用。

文件系统包含文件管理程序(文件与目录的集合)和所管理的全部文件,是用户与外存的接口,系统软件为用户提供统一方法(以数据记录的逻辑单位),访问存储在物理介质上的信息。

有关直接(随机)存取设备的磁盘知识:硬盘的读写原理和磁盘碎片的产生2. 文件的分类按性质和用途分类:系统文件、库文件、用户文件。

系统文件:由系统软件构成的文件,只允许用户通过系统调用或系统提供的专用命今来执行它们,不允许对其进行读写和修改。

主要有操作系统核心和各种系统应用程序或实用工具程序和数据组成库文件:文件允许用户对其进行读取和执行,但不允许对其进行修改。

主要由各种标准子程序库组成用户文件:是用户通过操作系统保存的用户文件,由文件的所有者或所有者授权的用户才能使用。

主要由用户的源程序源代码、可执行目标程序的文件和用户数据库数据等组成。

按操作保护分类:只读文件、可读可写文件、可执行文件。

只读文件:只允许文件主及被核准的用户去读文件,而不允许写文件。

标记为:-r-----可读可写文件:允许文件主及被核准的用户去读和写文件。

标记为:-rw----可执行文件:允许文件主及被核准的用户去调用执行该文件而不允许读和写文件,标记为:---x---按用户观点分类(UNIX系统文件分类)普通文件(常规文件) :是指系统中最一般组织格式的文件,一般是字符流组成的无结构文件目录文件:是由文件的目录信息构成的特殊文件,操作系统将目录也做成文件,便于统一管理特殊文件(设备驱动程序)按文件的逻辑结构分为:流式文件(,无结构操作系统文件)、记录式文件(有结构的数据库文件)。

流式文件:这是直接由字符序列(字符流)所构成的文件,故又祢为流式文件大量的源程序、可执行文件、库函数等,所采用的就是无结构的文件形式,即流式文件。

其长度以字节为单位。

对流式文件的访问,则是采用读/写指针来指出下一个要访问的字符。

可以把流式文件看做是记录式文件的一个特例。

在UNIX 系统中,所有的文件都被看做是流式文件,即使是有结构文件,也被视为流式文件,系统不对文件进行格式处理。

记录式文件:由若干个记录所构成的文件,故又称为记录式文件。

也叫数据库文件。

可采用多种方式组织记录,形成不同的文件:①顺序文件:是由一系列记录按某种顺序排列所形成的文件。

②索引文件:当记录为可变长度时,通常为之建立一张索引表。

③索引顺序文件:它为文件建立一张索引表,为每一组记录中的第一个记录设置一个表项。

按文件的物理结构分类:顺序文件(也叫串联文件,连续文件)、链接文件、索引文件、HASH文件、索引顺序文件。

按文件的存取方式:顺序存取文件、随机存取文件。

在管理信息系统中,按文件的组织方式分类:顺序文件、索引文件、直接存取文件。

按文件中的数据形式分类源文件:由源程序和数据构成的文件目标文件:由源程序经过相应的计算机语言编译程序编译,但尚未经过链接程序链接的目标代码所形成的文件3. 文件的存取方式文件的存取方式是由文件的性质和用户使用文件的情况决定。

1 顺序存取。

2 随机存取(也叫直接存取)。

3 索引存取磁带是顺序存取。

磁盘是随机存取。

3. 1. 顺序存取顺序存取是按照文件的逻辑地址顺序存取。

固定长记录的顺序存取是十分简单的。

读操作总是读出上一次读出的文件的下一个记录,同时,自动让文件记录读指针推进,以指向下一次要读出的记录位置。

如果文件是可读可写的。

再设置一个文件记录指针,它总指向下一次要写入记录的存放位置,执行写操作时,将一个记录写到文件末端。

允许对这种文件进行前跳或后退N(整数)个记录的操作。

顺序存取主要用于磁带文件,但也适用于磁盘上的顺序文件。

∙∙可变长记录的顺序文件,每个记录的长度信息存放于记录前面一个单元中,它的存取操作分两步进行。

读出时,根据读指针值先读出存放记录长度的单元。

然后,得到当前记录长后再把当前记录一起写到指针指向的记录位置,同时,调整写指针值。

由于顺序文件是顺序存取的,可采用成组和分解操作来加速文件的输入输出。

3. 2. 直接存取(随机存取法)很多应用场合要求以任意次序直接读写某个记录。

例如,航空订票系统,把特定航班的所有信息用航班号作标识,存放在某物理块中,用户预订某航班时,需要直接将该航班的信息取出。

直接存取方法便适合于这类应用,它通常用于磁盘文件。

为了实现直接存取,一个文件可以看作由顺序编号的物理块组成的,这些块常常划成等长,作为定位和存取的一个最小单位,如一块为1024字节、4096字节,视系统和应用而定。

于是用户可以请求读块22、然后,写块48,再读块9等等。

直接存取文件对读或写块的次序没有限制。

用户提供给操作系统的是相对块号,它是相对于文件开始位置的一个位移量,而绝对块号则由系统换算得到。

3.3. 索引存取第三种类型的存取是基于索引文件的索引存取方法。

由于文件中的记录不按它在文件中的位置,而按它的记录键来编址,所以,用户提供给操作系统记录键后就可查找到所需记录。

通常记录按记录键的某种顺序存放,例如,按代表健的字母先后次序来排序。

对于这种文件,除可采用按键存取外,也可以采用顺序存取或直接存取的方法。

信息块的地址都可以通过查找记录键而换算出。

实际的系统中,大都采用多级索引,以加速记录查找过程。

4. 几种常见的文件物理结构几种常见的文件物理结构:顺序文件(也叫串联文件,连续文件)、链接文件、索引文件、HASH文件、索引顺序文件。

5. 顺序文件是指文件中的物理记录按其在文件中的逻辑记录顺序依次存入存储介质而建立的。

即顺序文件中物理记录的顺序和逻辑记录的顺序是一致的。

顺序文件在存储介质中可以有两种不同的实现结构:连续结构和链结构。

连续结构:是一种最简单的物理文件结构,它把逻辑上连续的文件信息依次存放在连续编号的物理块中。

即次序相继的两个物理记录在存储介质上的位置是相邻的。

也称为连续文件;图5.19给出了连续结构文件的图形说明。

在图中,一个逻辑块号为0、1、2、3的文件依次存放在物理块15、16、17、18中。

5.19连续结构文件的示意图件连续文件结构的优点是一旦知道了文件在文件存储设备上的起始地址(首块号)和文图5.19连续结构文件的示意图件长度(总块数),就能很快地进行存取。

但是连续结构文件在建立文件时必须在文件说明信息中确定文件信息长度,且以后不能动态增长;而且在文件进行某些部分的删除后,又会留下无法使用的零头空间。

因此,连续结构不宜用来存放用户文件、数据库文件等经常被修改的文件。

连续结构的优点是:(1)结构简单;(2)顺序访问速度快,对于等长记录的连续文件可以进行顺序存取,也可以进行类似折半查找的随机存取,但是对于不等长记录的连续文件只能进行顺序存取;(3)因为数据集中存放在连续的盘块中,访问时所需的寻道次数和寻道时间少。

连续结构存储的缺点:(1)由于插入和删除记录会引起其它记录的移动,在外存中执行此操作会引起磁头的频繁来回移动,因此连续结构只能在文件的末尾插入记录,删除记录时,只作标记进行逻辑删除,只有用户指定物理删除时才真正删除相应记录,进行记录的移动;(2)顺序文件需要连续的盘块存放数据,因此,在插入记录时如果原来分配的盘块已没有空闲空间,而与其邻接的盘块也不空闲时,需要重新在外存中查找新的较大的空闲空间,并将原有数据移动到新空间中,然后才能插入新的数据,因此,连续结构不易动态增长,而且外存容易存在碎片。

链结构将逻辑上连续的文件信息分散存放在若干不连续的物理块中,其中每个物理块设有一个指针,指向其后续连接的另一个物理块。

即物理记录的次序由指针相链表示。

也称串联文件图5.20给出了链结构文件的物理结构。

使用链结构时,不必在文件说明信息中指明文件的长度,只要指明该文件的第一个块号就可以按链指针检索整个文件。

链结构的另一个特点是文件长度可以动态地增长,只要调整链指针就可在任何一个信息块之间插入或删除一个信息块。

图5.20链结构文件的示意图文件采用链结构时,逻辑块到物理块的转换由系统沿链查找与逻辑块号对应的物理块号的办法完成。

例如,在图5.20的文件结构中,如果用户所要进行操作的逻辑块号为2,则系统从第一个物理块20开始,一直沿链搜索到逻辑块号为2的第三块时,得到其所对应的物理块号为22。

因此,链结构不适宜随机存取访问。

链结构主要优点是:(1)提高了磁盘空间利用率,解决了磁盘碎片问题;(2)便于文件的插入和删除操作;(3)便于文件的动态增长。

从本质上讲,顺序文件就是线性表,因而对顺序文件的各种操作与线性表类似,但是,外存的访问速度比主存要慢的多,在考虑算法时要立足于尽量减少外存的访问次数,寻道次数和寻道时间。

磁带是典型的顺序存取设备,因此存储在磁带上的文件只能顺序文件。

6. 索引文件1.索引文件建立一张逻辑记录和物理记录之间对应关系的索引表。

这类包括数据去和索引表两大部分的文件称做索引文件。

2.索引表组成索引表由若干索引项组成。

一般索引项由主关键字和该关键字所在记录的物理地址组成。

如图6.1(b)。

注意:索引表必须按主关键字有序,而主文件本身则可以按主关键字有序或无序。

3.索引顺序文件和索引非顺序文件(1)索引顺序文件(Indexed Sequential File):主文件按主关键字有序的文件称索引顺序文件。

在索引顺序文件中,可对一组记录建立一个索引项。

这种索引表称为稀疏索引。

(2)索引非顺序文件(Indexed NonSequentail File):主文件按主关键字无序得文件称索引非顺序文件。

在索引非顺序文件中,必须为每个记录建立一个索引项,这样建立的索引表称为稠密索引。

注意:①通常将索引非顺序文件简称为索引文件。

②索引非顺序文件主文件无序,顺序存取将会频繁地引起磁头移动,适合于随机存取,不适合于顺序存取。

相关主题