一、文件和文件系统
1、文件系统的功能
-
实现文件的“按名存取”功能。
-
实现能够快速定位文件的目录结构,如树型目录 ;考虑如何组织目录文件,即目录项的设计和文件控制块的存储组织方法,这也直接影响到检索文件的速度。
-
向用户提供一套使用方便、简单的操作命令。
-
管理磁盘、磁带等组成的文件存储器。
-
实现逻辑文件到物理文件的转换。
-
保证文件信息的安全可靠。
-
便于文件的共享。
2、文件管理功能
专门管理在外层上的文件,并把对文件的存取、共享和保护的手段提供给用户,这不仅方便了用户,保证了文件的安全性,还可有效地提高系统资源的利用率。
把数据组织成文件形式加以管理和控制是计算机数据管理的重大发展。
3、文件系统的管理功能
将其管理的程序和数据通过组织为一系列文件的方式而实现的 ,而文件则是指具有文件名的若干相关元素的集合。元素通常是记录而记录,又是一组有意义的数据项的集合。可以把数据组成分为数据项、记录和文件三级。
-
-
数据项可以分为基本数据项,组合数据项
-
记录是一组相关数据项的集合,用于描述一个对象在某方面的属性。在诸多记录中,为了能唯一的标识一个记录,必须在一个记录的各个数据项中确定出一个或几个数据项,把他们的集合成为关键字,关键字是唯一能标识一个记录的数据项,通常只需用一个数据项作为关键字。
-
文件是指由创建者所定义的,具有文件名的一组相关元素的结合。文件在文件系统中是最大的一个数据单位,他描述了一个对象集。可分为有结构文件和无结构文件两种。有结构文件中,文件由若干个相关记录组成,无结构文件被看成一个字符流。
-
文件属性可以包括:
-
文件类型
-
文件长度
-
文件的物理位置
-
文件的建立时间
-
-
4、文件类型
文件的分类主要便于对不同文件进行有针对性的管理,从而提高操作系统的性能
(1)、按用途分类
-
-
系统文件,只允许用户调用,不允许用户去读、修改
-
用户文件
-
库文件,允许用户调用,不允许修改
-
(2)、按文件中数据的形式分类
-
源文件:由源程序和数据构成的文件,通常由终端或输入设备输入的源程序和数据所形成的文件都属于源文件。通常由ASCII码或汉字所组成
-
目标文件:把原程序经过编译程序编译过,但尚未经过链接程序链接的目标代码所构成的文件。目标文件使用后缀是“.obj”。
-
可执行文件:把编译后所产生的目标代码,经过链接程序链接后所形成的文件。后缀名是“.exe”
(3)、按存取控制属性分类
-
只执行文件:该类文件只允许被核准的用户调用执行,不允许读和写
-
只读文件:该类文件只允许文件组及被核准的用户去读,不能写
-
读写文件:允许文件组合被核准的用户去读和写的文件
(4)、按组织形式和处理方式分类
-
普通文件 一般用户建立的原程序文件,数据文件以及操作系统自身代码文件,实用程序等都是普通文件
-
目录文件 与普通文件一样
-
特殊文件 特指系统中的各类I/O设备
5、文件系统的层次结构
6、文件管理系统管理的对象
-
文件
-
目录
-
磁盘(磁带)存储空间
7、对对象操纵和管理的软件集合
-
对文件存储空间的管理
-
对文件目录的管理
-
用于将软件逻辑地址转化为物理地址的机制
-
对文件读和写的管理
-
对文件的共享与保护等功能
8、与文件系统有关的软件分为4个层次
-
I/O控制层(设备驱动程序层) 是文件系统的最底层
-
基本文件系统层
-
基本I/O管理程序
-
逻辑文件系统
9、文件系统的接口
-
命令接口
-
程序接口
10、最基本的文件操作
-
创建文件
-
删除文件
-
读文件
-
写文件
-
设置文件的读/写位置
二、文件的组织
1、文件分类
(1)、流式文件( 无结构文件)
(2)、记录式文件
按照组织方式的不同,记录式文件可进一步分为
-
顺序文件 顺序文件是一种最基本也是最常见的文件形式;在顺序文件中的记录可以按照不同的顺序进行排列。文件中所有机构的长度都是相同的,所以记录中的各数据项都处在记录中相同的位置,具有相同的顺序和长度。优点: 特别适合对诸记录进行批量存取(即每次要读或写一大批记录)的场合, 缺点:不适合交互系统中用户要求查找或修改单个记录的情况
-
索引文件 优点:通过建立索引极大地提高了对文件的查找速度,同时,对增加和删除记录也非常方便, 成为当今应用最为广泛的一种文件形式。 缺点:除了主文件外,还必须配置一张索引表,而且每个记录都要有一个索引项,存储开销变大,增删记录时还需要修改索引表
-
索引顺序文件 索引顺序文件是顺序文件和索引文件相结合的产物,它结合了索引文件和顺序文件的优点,同时又能有效克服变长记录文件的缺点,而且所付出的代价也小。优点:索引表占用空间小,同时查找效率比顺序文件又高,因此在文件记录比较多时采用索引顺序文件比较适合。
2、文件的物理结构
逻辑文件在物理存储空间中存放方法和组织关系,又称文件的存储结构。
(1)、文件的物理结构分类
-
连续文件 优点:在顺序存取时速度较快,非常便于顺序访问。缺点:
-
要求建立文件时就确定它的长度,依此来分配相应的存储空间,这往往很难实现。
-
不便于文件的动态扩充。在实际计算时,作为输出结果的文件往往随执行过程不断增加新内容。当该文件需要扩大空间而其后的存储单元已被别的文件占用时,就必须另外寻找一个足够大的空间,把原空间中的内容和新加入的内容复制进去。这种文件的“大搬家”是很费时的。
-
可能出现外部碎片,就是在存储介质上存在很多空闲块,但它们都不连续,无法被连续文件使用,造成浪费。
-
不能灵活地删除和插入记录。为保持文件的有序性,在删除和插入记录时,都需要对相邻的记录作物理上的移动,不便于动态改变文件的大小。
-
-
索引文件 优点:除了具备链接文件的优点之外,还克服了它的缺点,它可以方便地进行直接存取。缺点:索引表增加了空间开销,因为需要为每个文件分配一个或若干个块来存放索引表,将分配给该文件的所有盘块号记录其中。不适合中小型文件,对于中小型文件会有空间的浪费。因为往往一个盘块能存放数百个盘块号,但对于中小型文件,本身通常只占用数个到数十个盘块,甚至更少,但仍须为之分配以索引块。
-
无键索引表
-
有键索引表
-
-
链接文件 优点:能适应文件的动态增长,消除了磁盘的外部碎片,添加、删除和修改记录也更方便。实现链接组织时有两种方式:
-
隐式链接
-
缺点:
-
只适合于顺序访问,对随机访问是极其低效的。
-
每个物理块上增加了一个链接信息,为信息管理添加了一些麻烦。
-
通过链接指针将一大批离散的物理块链接起来,可靠性差,只要其中任何一个指针出现问题,都会导致整个文件信息丢失或出错。
-
-
-
显示链接
-
缺点:
-
也不支持高效的直接存取,对一个较大的文件进行存取时,须在FAT中顺序地查找许多盘块号;
-
FAT表本身需要占用较大的内存空间。
-
-
-
-
直接文件
-
优点
-
记录在介质上不需要按序存放,因为它能根据关键字直接计算出物理地址,所以最适合直接存取
-
相对于索引文件,它不需索引,节省了索引存储空间和索引查找时间。
-
-
缺点
需要解决冲突问题。因为地址的总数和关键字之间不存在一一对应关系。
-
(2)、文件的存取方法
-
-
顺序存取
-
直接存取
-
按键存取
-
(3)、文件存储空间管理
-
-
一是磁盘空间的分配
-
二是磁盘空闲空间的有效管理
-
(4)、磁盘空间的分配办法
-
-
连续分配
-
非连续分配
-
(5)、磁盘空闲空间的管理
-
-
空闲区表法
-
空闲块链表法
-
位示图法
-
三、目录管理以及文件目录
1、主要任务
-
对大量文件实施有效的管理。即需要采用合理的数据结构记录好所有文件的属性信息,不同的组织方式将影响到目录的检索速度。
-
实现“按名存取”。这是目录管理中最基本的功能,也是文件系统向用户提供的最基本的服务。
-
提高对目录的检索速度。通过设计合理的目录文件组织形式和目录结构,都会提高目录的检索速度,从而提高文件的存取速度。
-
支持文件共享和文件重名。
2、对目录管理的要求
-
实现“按名称取”
-
提高对目录的检索速度
-
文件共享
-
允许文件重名
3、文件控制块
为了能对一个文件进行正确的存取,必须为文件设置用于描述和控制文件的数据结构。文件管理程序可借助于文件控制块中的信息对文件施以各种操作,文件与文件控制块一一相应。文件控制块的有序集合称为文件目录,即一个文件控制块就是一个文件目录项,通常一个文件目录也被看作是一个文件,称为目录文件。文件控制块通常含有以下几种信息:
-
有关文件存取控制的信息。
-
有关文件结构的信息。文件的逻辑结构,如记录类型、记录个数、记录长度、成组因子数等。文件的物理结构,如文件所在设备名,文件物理结构类型,记录存放在外存的相对位置或文件第一块的物理块号,也可指出文件索引的存放位置等。
-
有关文件使用的信息。已打开该文件的进程数,文件被修改的情况,文件最大和当前大小等。
-
有关文件管理的信息。如文件建立日期、文件最近修改日期、文件访问日期、文件保留期限、记帐信息等。
4、文件目录的组织
指目录项的设计和FCB的存储组织方法。常用的组织方法主要有三种:
-
FCB线性表 缺点:这样组织FCB,当文件很多时,目录文件本身可能要占用大量的盘块数,使得目录检索的速度很慢。
-
索引节点
-
哈希表组织
5、文件目录
(1)、单级目录
优点:实现简单
缺点:
-
不允许文件重名
-
文件查找速度慢
-
不便于实现文件共享。单级目录结构只适合于单用户操作系统
(2)、二级目录
优点:
-
提高了文件检索速度。这是因为指明了用户名大大缩小了需要检索的文件数量。
-
部分地允许文件名重名。在不同的目录中,可以使用同一个文件名。
缺点:
是对同一用户,也不能有两个同名的文件存在,限制了文件的共享,另外把多个用户完全隔离开来不便于实现多个用户协同完成任务。
(3)、多级层次目录结构
优点:
-
可方便用户查找文件,又可以把不同类型和不同用途的文件分类。
-
允许文件重名。不但不同用户可以使用相同名称的文件,同一用户也可使用相同名称的文件。
-
利用多级层次结构关系,可以更方便地制定保护文件的存取权限,有利于文件的保护。
缺点:不能直接支持文件或目录的共享,因为这种纯树型目录中每个文件只能有一个父目录
(4)、图状目录结构
6、文件目录操作
-
创建目录
-
删除目录
-
改变目录
-
检索目录
-
移动目录
-
链接操作
-
打开目录
-
关闭目录
四、 文件系统
1、文件系统的层次结构模型
-
文件系统接口层
-
文件目录管理层
-
基本文件系统层
-
物理文件系统层
-
设备分配控制层
-
输入/输出接口层
2、文件操作的执行过程
-
当用户写一个文件时,应用程序首先调用文件系统提供的接口,将写文件的请求转换为统一格式的文件系统内部调用。
-
文件系统管理根据写文件的文件名和文件路径读内存中相应的目录,修改并更新文件目录。
-
基本文件系统根据文件内部标志将文件说明信息放入内存,写入内存中的打开文件表,打开文件,为访问文件做准备。
-
物理文件系统根据写文件的结构和存取方法等逻辑结构信息,把指定的逻辑记录地址变换成相应的物理块地址。对于流式文件,只要把用户指定的逻辑地址按块长计算出相对块号;对记录式文件,先把记录号变换成逻辑地址,再把逻辑地址按块长计算出相对块号。
-
物理文件系统将相对块号和块内地址变换为文件存储器的物理块号和块内地址。
-
设备分配控制为文件的写操作申请物理块,实现文件缓冲区的管理。系统根据申请的物理块号生成I/O控制系统的地址格式。
-
输入/输出接口执行I/O操作,为文件分配磁盘等物理介质空间,并将对磁盘的请求信息传递给磁盘管理。
3、FAT( 文件分配表)文件系统
-
早期的FAT12文件系统——以盘块为单位
-
以簇为单位的FAT12文件系统
4、FAT32的不足之处
-
由于文件分配表的扩大,运行速度比FAT16格式要慢。
-
FAT32有最小管理空间的限制,FAT32卷必须至少有65537个簇,所以FAT32不支持容量小于512MB的分区;对于小分区,则仍然需要使用FAT16或FAT12。
-
FAT32的单个文件的长度也不能大于4GB
-
FAT32最大的局限性在于兼容性方面,FAT32不能保持向下兼容。
5、NTFS特征
-
它使用了64位磁盘地址
-
在NTFS中可以很好地支持长文件名,单个文件名限制在255个字符以内,全路径名为32767个字符;
-
具有系统容错功能,即在系统出现故障或差错时,仍能保证系统正常运行;
-
能保证系统中的数据一致性,这是一个非常有用的功能。此外,它还提供了文件加密、文件压缩等功能
6、树形结构目录
-
创建目录
-
删除目录
-
改变目录
-
移动目录
-
链接操作
-
查找
7、目录查询技术
-
线性检索法
-
Hash方法
8、文件共享
-
基于有向无循环图实现文件共享
-
有向无循环图
-
利用索引节点
-
-
利用符号链接实现文件共享
9、文件保护
-
影响文件安全性的主要因素
-
人为因素。通过存取控制机制,防止由人为因素所造成的文件不安全性。
-
系统因素。采取系统容错技术,防止系统部分的故障所造成的文件的不安全性。
-
-
自然因素。建立后备系统,防止由自然因素所造成的不确定性。
-
保护域