您好,欢迎访问三七文档
第6章文件系统内容提要:6.1概述6.2文件系统的功能和结构6.3目录结构和目录查询6.4文件和目录操作6.5文件系统的实现6.6管道文件6.7文件系统的可靠性6.1概述文件是操作系统定义的逻辑存储实体,它可以长期保存在物理介质上,如磁带、磁盘、光盘等。由谁负责将文件映射到物理设备上呢?是操作系统中的文件系统。6.1概述6.1.1文件及其分类6.1.2文件的逻辑结构6.1.3文件的物理结构6.1.1文件及其分类文件通常存放在外存上,可以作为一个独立单位存放程序和数据,并对其实施相应的操作。每个文件都有一个文件名,用户通过文件名来访问文件(如打开、关闭、读、写等)。1.文件2.文件类型几种文件分类方法(1)按用途分类①系统文件②库文件③用户文件(2)按文件中的数据形式分类①源文件②目标文件③可执行文件(3)按存取权限分类①只读文件②读写文件③可执行文件(4)按保存时间分类①临时文件②永久文件(5)按文件的内部构造和处理方式分类普通文件——由ASCII码或二进制码组成的字符文件。包括:源程序文件、数据文件、目标代码文件、系统文件、库文件,一般存放在外存上。目录文件——由下属文件的目录项构成的,用来管理和实现文件系统功能的系统文件,通过目录文件可以对其他文件的信息进行检索。类似于人事管理方面的花名册,本身不记录个人的档案信息,仅仅列出姓名和档案分类编号。特别文件——特指各种外部设备。特别文件分为字符特别文件和块特别文件。前者是输入输出设备,如终端、打印机等。后者是存储信息的设备,如硬盘、软盘等。6.1.2文件的存取方法文件的作用是存储信息,当使用文件时,必须存取这些信息,将其读入内存。按照存取顺序分:顺序存取:读操作按照文件指针指示的位置读取文件内容,文件指针自动向前推进。写操作把信息附加到文件的末尾。针对的存取介质是磁带。随机存取:基于磁盘的存取模式。允许以任意顺序读取文件,主要用于对大批数据的立即访问。索引存取:建立在随机存取之上,每个文件有一个索引表。索引表按照记录号顺序排列,每项包含记录长度和指向该记录在文件空间中首地址的指针。6.1.3文件的逻辑结构从用户观点来看,文件的组织形式称为文件的逻辑结构,逻辑结构与存储设备特性无关。从逻辑结构上看,文件可分为有结构的记录式文件和无结构的流式文件两种形式。6.1.2文件的逻辑结构1.无结构文件指文件内部不再划分记录,是由一组相关信息组成的有序字符流。又称流式文件。长度按字节计算。大量源程序、可执行程序、库函数都是流式文件。在UNIX和WINDOWS系统中所有文件都被视为流式文件,系统不对文件进行格式处理。图文件逻辑结构6.1.2文件的逻辑结构2.有结构文件文件是由若干相关记录组成,且对每个记录编上号码。又称记录式文件。数据库文件就是有结构文件。①定长记录文件②变长记录文件3.树形文件是一种有结构的文件,由一颗记录树构成。图文件逻辑结构记录式文件的逻辑结构通常有顺序、索引和索引顺序。1.顺序文件顺序结构又称为连续结构,是一种最简单的文件结构,其将一个逻辑文件的信息连续存放。以顺序结构存放的文件称为顺序文件或连续文件。2.索引文件索引结构为一个逻辑文件的信息建立一个索引表。索引表中的表目存放逻辑记录编号、文件记录的长度、所在逻辑文件的起始位置,因此逻辑文件中不再保存记录的长度信息。6.1.2文件的逻辑结构记录式文件的逻辑结构通常有顺序、索引和索引顺序。3.索引顺序文件索引顺序文件是顺序和索引两种形式的结合。索引顺序文件将顺序文件中的所有记录分为若干个组,为顺序文件建立一张索引表,并为每组中的第一个记录在索引表建立一个索引项,其中含有该记录的关键字和指向该记录的指针。6.1.2文件的逻辑结构6.1.3文件的物理结构又称文件的存储结构。从实现观点出发,是逻辑文件在外存上的组织结构。文件的逻辑结构与存储介质特性无关,但物理结构与存储介质特性有很大关系。物理结构主要依赖于文件存储器的物理特性及用户对文件的访问方式(文件的存取方法)。6.1.3文件的物理结构1.文件存储器的物理特性磁带早期存储介质,顺序存取设备,文件连续地存放,只能顺序访问。磁盘可以快速定位物理扇区,可直接访问。文件的物理结构可采用顺序结构、链接结构、索引结构。光盘可直接访问。6.1.3文件的物理结构2.文件的物理组织方法顺序结构逻辑文件在辅存上连续存储,其物理结构即为顺序结构。顺序结构适合对文件的顺序访问。对文件执行增补或删除只能在文件末端进行。6.1.3文件的物理结构2.文件的物理组织方法链接结构文件在辅存中是散布在非连续的若干物理块中的,用向前指针把每个记录依次链接起来。空间利用率高,文件操作(增加、删除)灵活。6.1.3文件的物理结构2.文件的物理组织方法索引结构文件的全部逻辑记录散存于辅存的各物理块中,为文件建立一张索引表,存放逻辑记录编号、长度、在辅存的位置。6.2文件系统的功能和结构6.2.1文件系统的功能6.2.2文件系统的结构6.2.1文件系统的功能文件管理系统,简称文件系统。就是操作系统中负责操纵和管理文件的一整套设施。通常,文件系统具备5种功能:①文件管理。②目录管理。根据用户要求创建或删除目录文件,对用户指定的文件进行检索和权限验证,更改工作目录等。③文件存储空间管理。④文件的共享和保护。⑤提供方便的接口。为用户提供统一的文件操作方式,用户可以“按名存取”存储介质上的文件信息。6.2.1文件系统的功能看待文件系统有不同的观点用户观点(外部使用观点)存取文件方便信息存储安全可靠实现共享和保密系统观点(内部设计观点)对存放文件的存储空间实现组织、分配、信息的传输对已存信息进行检索和保护6.2.2文件系统的结构图文件系统的层次结构文件系统本身由若干层次构成,其中每一层都利用低层的特性。逻辑文件系统管理元数据信息,包括除实际数据(文件内容)以外的所有文件系统结构。管理目录结构,提供文件组织模块需要的信息,实现按名存取。为每个文件提供一个文件控制块。负责文件的保护和安全。6.2.2文件系统的结构图文件系统的层次结构文件系统本身由若干层次构成,其中每一层都利用低层的特性。文件组织模块知道各个文件以及它们的逻辑块、物理块。根据文件类型和文件的位置,把文件的逻辑块地址转换成物理块地址,传送给基本文件系统。管理空闲盘空间,在需要时分配或回收相应的盘块。6.2.2文件系统的结构图文件系统的层次结构文件系统本身由若干层次构成,其中每一层都利用低层的特性。基本文件系统向相应的设备驱动程序发出通用命令,令其读/写盘上的物理块。每个物理块由盘地址编号来标识,如驱动器1,柱面73,磁道2,扇区10。6.2.2文件系统的结构图文件系统的层次结构文件系统本身由若干层次构成,其中每一层都利用低层的特性。I/O控制包括设备驱动程序和中断处理程序,实现内存和磁盘系统之间的信息传送。是一个翻译,接收高级命令,如读取“123块”,输出低层的硬件专用指令,传送给控制器使用。6.3目录结构和目录查询6.3.1文件控制块和文件目录6.3.2单级目录结构6.3.3二级目录结构6.3.4树形目录结构6.3.5非循环图目录结构6.3.6目录查询方法6.3.1文件控制块和文件目录1.文件控制块为了便于对文件进行控制和管理,在文件系统内部,给每个文件唯一地设置一个文件控制块。2.文件目录为了加快对文件的检索,往往将文件控制块集中在一起进行管理。这种文件控制块的有序集合称为文件目录。文件控制块就是其中的目录项。完全由目录项构成的文件称为目录文件。文件目录实现了文件名与存放盘块之间的映射。图MS-DOS目录项(文件控制块)示意图•在MS-DOS系统中,一个目录项有32字节长。•利用首块号作为查找物理块链接表的索引,按索引链向下查找,可以找到该文件所有的盘块。图UNIX目录项(文件控制块)示意图•UNIX系统目录项由文件名和I节点号组成。•UNIX系统中所有目录文件都由这种目录项组成。•由文件名找到对应的I节点号,再从I节点中找到文件的控制信息和盘块号。如何组织文件目录是文件系统的主要内容之一,它直接关系到用户存取文件是否方便和文件系统所能提供的功能。目录的基本组织方式包含:单级目录二级目录树形目录非循环图目录6.3.1文件控制块和文件目录6.3.2单级目录结构在这种组织方式下,全部文件都登记在同一目录中。设备目录就是单级目录。图单级目录结构优点:简单,能够实现按名存取。缺点:①查找速度慢。平均查找一个文件需要扫描半个目录表。②不允许重名。③不便于共享。因为各个用户对同一文件可能用不同的名称,而单级目录要求所有用户用同一名字来访问同一个文件。6.3.2单级目录结构6.3.3二级目录结构图二级目录结构优点:不同用户可有相同的文件名;提高了检索目录的速度。缺点:这种结构能把一个用户与另外用户有效地隔开,当各个用户毫无联系时,这是优点,当多个用户要对某些盘区共同操作和共享文件时,它就是缺点。即这种结构仍不利于文件共享。6.3.3二级目录结构6.3.4树形目录结构1.树形目录从根目录开始,一层一层地扩展下去,形成一个树形层次结构,每个目录的直接上一级目录称做该目录的父目录,而它的直接下一级目录称做子目录。把二级目录推广成多级目录。图树形目录结构2.路径名①绝对路径名又称全路径名,是指从根目录开始到达所要查找文件的路径名。(root)/usr/ml/prog/f1.c②相对路径名相对路径名是从当前目录的下级开始书写,如当前目录是/usr/ml,则有:prog/f1.c树形目录的文件层次和隶属关系很清晰,便于实现不同级别的存取保护和文件系统的动态装卸。但是,在上述纯树形目录结构中,只能在用户级对文件进行临时共享。6.3.5非循环图目录结构它允许一个文件或目录在多个父目录中占有项目,但并不构成环路。这种结构方式叫做链接(Link)。文件共享通过两种方式实现链接:①允许目录项链接到任一表示文件目录的节点上;②只允许链接到表示普通文件的叶节点上。图非循环图目录结构Unix系统采用第二种。6.3.5非循环图目录结构方式一:可以把所有共享的文件放在一个目录中,所有共享这些文件的用户可以建立自己的子目录,并链接共享目录。便于共享,但限制太少,控制和维护困难,容易产生目录管理混乱。图非循环图目录结构6.3.5非循环图目录结构方式二:只允许对单个普通文件链接,限制了共享范围,但更可靠,易于管理。两种方式都可以通过不同的路径访问相同的文件。图非循环图目录结构6.3.6目录查询方法为了实现用户对文件的按名存取,系统要对文件目录进行查询,找出该文件的文件控制块或索引节点,进而找到该文件的物理地址,对其进行读写操作。如何查询目录涉及目录管理算法,它对文件系统的效率、性能和可靠性有很大影响。目录查询方式主要有:线性检索法散列法6.3.6目录查询方法1.线性检索法即顺序检索法。目录文件由目录项构成一个线性表,每个目录项包括文件名和指向数据块的指针。当创建一个新文件时,先检索该目录,保证不发生重名问题,把新文件的目录项添加到目录的末尾。删除一个文件时,检索目录找到该目录项,释放分给它的全部空间,并清空该项。对每一级目录都采用线性检索方式。例如,在UNIX/LINUX系统中,检索文件f1.c,其绝对路径是/usr/prog/f1.c。首先读入第一个文件分量usr,在根目录中一项一项比较,找到匹配项。再在usr目录中找prog,再在prog目录中找文件f1.c。6.3.6目录查询方法1.线性检索法优点:简单易行。缺点:但速度慢。改善:使用软件缓存存放最近用过的目录信息,避免反复从磁盘上读入目录信息。把目录项排序,使用二分检索法,缩减平均查找时间。6.3.6目录查询方法2.散列法散列法需要有目录文件和散列表,每个散列值是由文件名
本文标题:第6章 文件系统
链接地址:https://www.777doc.com/doc-3185226 .html