第八章 文件系统 教学目的与要求: 1.掌握文件、目录等基本概念 2.理解并掌握文件结构、管理、保护与共享 重点与难点: 1.文件系统的主要功能 2.树形目录、文件的共享与保护
主要内容: 8.1 文件和文件系统 8.2 文件逻辑结构 8.3 目录管理 8.4 文件共享 8.5 文件保护 8.6 作业
8.1 文件和文件系统 8.1.1 文件、记录和数据项 1.数据项 基本数据项:用于描述一个对象的某种属性的字符集,是数据组织中可以命名的最小逻辑数据单位,即原子数据,也叫数据元素或者字段。基本数据项的名字和类型共同定义了一个数据项的“型” 组合数据项:由若干个基本数据项构成,简称组项 2.记录 是一组相关数据项的集合,用于描述一个对象某方面的属性。
3.文件 是具有文件名的一组相关信息的集合,可分为有结构文件和无结构文件两种。 在有结构文件中,文件是由记录构成的,无结构文件则被看成是一个字符流;文件是文件系统中最大的一个数据单位,它描述了一个对象集。 4.文件属性 主要包括:类型、长度、物理位置、存取控制、建立时间等等 (注意,不包括文件名)
8.1.2 文件类型 在文件系统中,为了有效、方便地管理文件,常常把文件按其性质和用途等进行分类。 1.按用途分类 可以分为:系统文件、用户文件、库文件 2.按文件中的数据形式分类 可以分为:源文件、目标文件、可执行文件 3.按存取控制属性分类 可以分为:只执行文件、只读文件、读写文件 4.按文件的逻辑结构分类 可以分为:有结构文件、无结构文件
5.按文件的物理结构分类 可以分为:顺序文件、链接文件、索引文件 6.按组织形式分类 可以分为:普通文件、目录文件和特殊文件 8.1.3 文件系统的模型(层次模型) 1.文件系统的概念: 文件系统是指含有大量的文件及其属性的说明,对文件进行操纵和管理的软件,以及向用户提供的使用文件的接口等的集合。
(1)对象及其属性说明,主要有文件、目录、磁盘(磁带)存储空间 2.文件系统的模型,分为三个层次 文件系统接口 对象操纵和管理的软件集合 逻辑文件系统 基本I/O管理程序(文件组织模块) 基本文件系统(物理I/O层) I/O控制层(设备驱动程序) 对象及其属性说明 (1)对象及其属性说明,主要有文件、目录、磁盘(磁带)存储空间 (2)对象操纵和管理的软件集合,主要是指I/O控制层、基本文件系统、基本I/O管理程序、逻辑文件系统 (3)文件系统的接口,包括命令接口、程序接口
8.1.4 文件操作 文件操作可以分为两类:整体与局部 1.对记录的操作 主要有,检索所有记录、检索单个记录、插入一个记录、修改一个记录、删除一个记录等等 2.对文件的操作 主要有,创建文件、删除文件、读文件、写文件、截断文件、设置文件的读/写位置的等等
8.2 文件的逻辑结构 文件的逻辑结构:是用户可见结构,即用户可以直接处理的数据及其结构,又称文件组织 文件的物理结构:是指文件在外存上的存储组织形式,又称文件的存储结构。与存储介质的存储性能无关。 对文件的逻辑结构的要求: 提高检索效率、便于修改、降低文件存储费用
8.2.1 文件逻辑结构的类型 1.有结构文件(记录式文件) 记录的长度是可知的,按各记录的长度是否相同,可以分为定长记录、变长记录两种。根据用户和管理上的需要,可以按下述方式分类: ①顺序文件 文件中的记录按某种顺序排列,通常是定长记录,易于查询。 ②索引文件 需要为文件创建一个索引表,常用于变长记录文件的管理,以加快检索速度。
③索引顺序文件 是对上述两种文件方式的结合。 数据结构和数据库多采用有结构的文件形式。 2.无结构文件(流式文件) 无结构文件可以看成是记录式文件的一个特例。原程序、可执行程序、库函数等多采用这种形式。 8.2.2 顺序文件 1.逻辑记录的排序 记录的排序可以是任意的。有以下两种情况: (1)串结构,记录之间的顺序与关键字无关常用的办法是按存入时间来决定。
(2)顺序结构,文件中的记录按关键字排序。对顺序结构的文件可以有多种检索方法,速度较快。 2.对顺序文件的读或写操作 设置读写指针,将指针指向需要读写的记录,比较简单 3.顺序文件的优缺点 优点:非常适用于对记录的批量存储; 可存放在磁带上 缺点:对但各记录的存取效率不高;对记录的增加和修改非常困难
8.2.3 索引文件 为了克服变长记录顺序文件难于实现直接存取的缺点,可以建立索引表,索引表中的每个表项都含有一个指向相应记录的指针,因此,索引表本身就是一个定长记录的顺序文件,可以实现直接存取。 8.2.4 索引顺序文件 索引顺序文件是最常见的逻辑文件形式之一,它结合了顺序文件和索引文件的优点,克服了对变长记录不便于直接存取的缺点。索引表本身就是一个定长记录的顺序文件,可以实现直接存取.
8.3 目录管理 1.把文件名和对该文件实施控制管理的控制管理信息称为该文件的文件说明,并把一个文件说明按一定的逻辑结构存放到物理存储块的一个表目中。利用文件说明信息,可以完成对文件的创建、检索以及维护作用。因此,把一个文件的文件说明信息称为该文件的目录。对文件目录的管理就是对文件说明信息的管理。
2.对目录管理的要求: (1)实现按名存取; (2)提高对目录的检索速度; (3)文件的共享; (4)允许文件重名。 8.3.1 文件控制块和索引结点 我们把对文件进行描述和控制的数据结构称为文件控制块FCB。 目录是一种特殊的文件,是相关文件控制块的集合. 一.文件控制块(FCB):是用于描述和控制文件的数据结构.通常包括以下三类信息
基本信息类: 文件名、文件的存放位置、文件的逻辑结构和物理结构等。 存取控制信息类: 文件主的存取权限、核准用户的存取权限、一般用户的存取权限等等 使用信息类:文件的建立日期和时间、最近一次修改日期时间、蛋前使用信息等。 二.索引结点 是用于描述文件属性的一种数据结构 1.索引结点的引入: 文件目录通常是存放在磁盘上的,当文件数目很多时,文件目录要
占用大量的空间,而且查找时要多次访问磁盘,效率不高。而文件的定位只与文件名有关,于是提出了索引结点,也称i结点。 2.磁盘索引结点 与文件一一对应,主要内容有:文件主标志、文件类型、文件存取权限、文件物理地址、文件长度、文件连接计数、文件存取时间等等 3.内存索引结点 是放在内存中的索引节点。文件被打开时,需将磁盘i结点拷贝至内存。包括以下内容:索引节点编号、状态、访问计数、文件所在设备的逻辑设备号、链接指针等
8.3.2 单级目录结构 单级目录是一种最简单、最原始的目录结构。如果文件系统为存储设备的所有文件建立一张目录表,每个文件在其中占有一项用来存放文件说明信息。该目录表存放在存储设备的某固定区域,在系统初启时或需要时,系统将其调入内存,(或部分调入内存)。文件系统通过对该表提供的信息对文件进行创建、搜索、删除等操作。 由于在单级目录表中,各文件说明项都处于平等地位,只能按连续结构或顺序结构存放。 缺点:查找速度慢;不允许重名;不便于实现共享。
8.3.3 两级目录结构 二级目录结构中,各个文件的说明信息被组织成目录文件,且以用户为单位把各自的文件说明画分为不同的组。然后,这些不同的组名有关存取控制信息存放在主目录(MFD)的目录项中。与主目录 MFD相对应,用户文件的文件说明所组成的目录文件被称为用户文件目录(UFD)。这样,由MFD和UFD就形成二级目录。 优点: 提高了检索目录的速度; 在不同的用户目录中,可以使用相同的文件名; 不同用户可以通过不同文件名去访问系统中的同一个共享文件。
8.3.4 树型目录结构 1.把二级目录的层次关系加以推广,就形成了多级目录。在多级目录结构中,除了最低一级的物理块中装有文件信息外,其他每一级目录中存放的都是下一级目录或文件的说明信息。由此形成层次关系,最高层为根目录,最低层为文件。多级目录构成树形结构, 多级目录的树形结构图
2. 树形结构多级目录结构具有下列特点: (1) 层次清楚。由于分支结构,不同性质、不同用户的文件可以构成不同的子树,便于管理。不同层次、不同用户的文件可以被赋予不同的存取权限,有利于文件的保护。 (2) 解决了文件重名问题。文件在系统中的搜索路径是从根开始到文件名为止的各文件名组成,因此,只要在同一子目录下的文件名不发生重复,就不会由文件重名而引起混乱。
(3) 查找搜索速度快。在7.2节讨论的对文件中键名的各种搜索方法,例如线性搜索法,散列法以及二分搜索法都可用来对各级目录进行查找。由于对多级目录的查找每次只查找目录的一个子集,因此,其搜索速度较单级、二级目录时更快。 3. 关于路径 (1)路径名:是从根目录到文件之间的唯一通路. 路径又有绝对路径和相对路径。绝对路径从根目录出发,而相对路径从当前目录出发。 (2)当前目录:也称工作目录
8.4 文件共享 8.4.1 早期实现文件共享的办法 从系统管理的观点看,有三种方法可以实现文件共享。即: (1) 绕道法 (2) 链接法 (3) 基本文件目录表 BFD 1.绕道法 绕道法要求每个用户处在当前目录下工作,用户对所有文件的访问都是相对于当前目录进行的。用户文件的固有名(为了访问某个文件而必须访问的各个目录和
文件的目录名与文件名的顺序连接称为固有名) 是由当前目录到信息文件通路上所有各级目录的目录名加上该信息文件的符号名组成。使用绕道法进行文件共享时,用户从当前目录出发向上返回到与所要共享文件所在路径的交叉点,再顺序下访到共享文件。绕道法需用户指定所要共享文件的逻辑位置或到达被共享文件的路径。 缺点:绕道法要绕弯路访问多级目录,搜索效率不高。 2.链接法: 为了提高共享其它目录中文件的速度,可以在相应目表之间进行链接。即将一个目录中的链指针直接指向被共享文件所在的目录。
链接法仍然需要用户指定被共享的文件和被链接的目录。因此效率不高 3.基本文件目录表 BFD 该方法把所有文件目录的内容分成两部分:(1)文件目录表(SFD),包括文件的结构信息、物理块号、存取控制和管理信息等,并由系统赋予唯一的内部标识符来标识;(2)基本文件目录表(BFD),由用户给出的符号名和系统赋给文件说明信息的内部标识符组成。 与前两种方法相比较,此法具有较高的效率。
8.5 文件保护 一.文件保护则指文件本身需要防止文件的拥有者本人或其他用户破坏文件内容。影响文件安全性的主要因素有: 人为因素;系统因素;自然因素。 二.保护方法有 1.通过存取控制机制来防止人为因素所造成的文件不安全性; 2.通过系统容错技术来防止系统部分故障所造成的文件不安全性; 3.通过“后备系统”来防止由自然因素造成的不安全性。
三.文件存取控制 1.文件系统的存取控制部分应做到: (1) 对于拥有读、写或执行权限的用户,应让其对文件进行相应的操作。 (2) 对于没有读、写或执行权限的用户,应禁止他们对文件进行相应的操作。 (3) 应防止一个用户冒充其他用户对文件进行存取。 (4) 应防止拥有存取权限的用户误用文件。 2.这些功能是由一组称为存取控制验证模块的程序提供的。它们分三步验证用户的存取操作。
(1) 审定用户的存取权限。 (2) 比较用户权限的本次存取要求是否一致。 (3) 将存取要求和被访问文件的保密性比较,看是否有冲突。 3.验证用户的存取操作的几种方式: (1) 存取控制矩阵 存取控制矩阵方式以一个二维矩阵来进行存取控制。二维矩阵的一维是所有的用户,另一维是所有的文件。对应的矩阵元素则是用户对文件的存取控制权,包括读R,写W,和执行E。当用户向文件系统提出存取要求时,由存取控制验证模块根据该矩阵内容对本次存取要求进行比较,如果不匹配的话,系统拒绝执行。
当文件和用户较多时,存取控制矩阵将变得非常庞大,这无论是在占用内存空间的大小上,还是在为使用文件而对矩阵进行扫描的时间开销上都是不合适的。因此,在实现时往往采取某些辅助措施以减少时间和空间的开销。 (2) 存取控制表 存取控制表以文件为单位,把用户按某种关系画分为若干组,同时规定每组的存取权限。这样,所有用户组对文件权限的集合就形成了该文件的存取控制表,
每个文件都有一张存取控制表。在实现时,该表存放在文件说明中,也就是BFD 的有关表目中。文件被打开时,由于存取控制表也相应地被复制到了内存活动文件中,因此,存取控制验证能高效进行。
8.6 作业 教材P256习题:1,2,3,4,10,12,22