《计算机操作系统第5章》由会员分享,可在线阅读,更多相关《计算机操作系统第5章(82页珍藏版)》请在金锄头文库上搜索。
1、第五章 文件系统 第五章 文件系统 5.1 文件系统概述5.2 文件的结构和存取法 5.3 文件目录 5.4 文件存储空间的管理5.5 文件的共享5.6 文件的存取控制 5.7 文件系统和用户间的接口 第五章 文件系统 5.1 文件系统概述 5.1.1 文件和文件系统 1. 文件 文件(File)是一个具有符号名的一组相关联元素的有序序列。文件可以包含范围非常广泛的内容。系统和用户都可以将具有一定独立功能的程序模块、一组数据或一组文字命名为一个文件。例如用户的一个Pascal源程序、 一个目标代码程序、系统中的库程序和各种系统程序、一批待加工处理的数据、一篇文章等等,都可构成一个文件。 第五章
2、 文件系统 2. 文件系统操作系统中负责管理和存取文件信息的软件机构称为文件管理系统, 简称文件系统。文件系统由三部分组成:与文件管理有关的软件、被管理的文件以及实施文件管理所需的数据结构。 从系统角度来看,文件系统是对文件存储器的存储空间进行组织和分配,负责文件的存储并对存入的文件进行保护和检索的系统。具体地说,它负责为用户建立文件,存入、读出、修改、 转储文件, 控制文件的存取, 当用户不再使用时撤消文件等。第五章 文件系统 在操作系统中增设了文件管理部分后, 为用户带来了如下好处: (1) 使用的方便性:(2) 数据的安全性: (3) 接口的统一性: 第五章 文件系统 5.1.2 文件的
3、类型为便于文件的控制和管理,通常把文件分成若干类型。文件按其性质和用途可以分为:(1) 系统文件:有关操作系统及其它系统程序的信息所组成的文件。这类文件对用户不直接开放,只能通过系统调用为用 户服务。(2) 库文件:由标准子程序及常用的应用程序组成的文件。 这类文件允许用户调用,但不允许用户修改。(3) 用户文件:由用户委托操作系统保存的文件,如源程序文件,目标程序文件,以及由原始数据、计算结果等组成的文件。 第五章 文件系统 这类文件根据使用情况又可以分为三种类型: 临时文件:用户在一次算题过程中建立的“中间文件”。 当用户撤离系统时,其文件也随之被撤消。 档案文件:只保存在作为档案的磁带上
4、, 以便考证和恢复用的文件, 如日志文件。 永久文件:用户要经常使用的文件。 它不仅在磁盘上有文件副本, 而且在“档案”上也有一个可靠的副本。 第五章 文件系统 根据文件的保护方式,文件可分为三类:(1) 只读文件:允许文件主及核准的用户读, 但不允许写的文件。(2) 读写文件:允许文件主及核准的用户读、 写, 但禁止未核准的用户读、写的文件。(3) 不保护文件: 所有用户都可以存取的文件。 第五章 文件系统 按文件信息的流向,它又可分为三类:(1) 输入文件: 例如键盘输入文件, 只能输入。(2) 输出文件: 例如打印机文件, 只能输出。(3) 输入输出文件: 在磁盘、 磁带上的文件, 既可
5、读, 又可写。 第五章 文件系统 在UNIX操作系统中,文件按组织和处理方式分为三类:(1) 普通文件:由内部无结构的一串平滑的字符构成的文件。 这种文件既可以是系统文件,也可以是库文件或用户文件。(2) 目录文件: 由文件目录构成的一类文件。 对它的处理(读、 写、 执行)在形式上与普通文件相同。(3) 特别文件:由一切输入输出慢速字符设备构成的文件。 这类文件对于查找目录、存取权限验证等的处理与普通文件相似,而其它部分的处理要针对设备特性要求做相应的特殊处理。 第五章 文件系统 5.1.3 文件系统的基本功能 操作系统中的文件管理部分应具有如下功能:(1) 文件的结构及有关存取方法;(2)
6、 文件的目录机构和有关处理;(3) 文件存储空间的管理;(4) 文件的共享和存取控制;(5) 文件操作和使用。 第五章 文件系统 5.2 文件的结构和存取法 5.2.1 文件的逻辑结构 图 5.1 记录式文件 (a) 定长记录文件; (b) 变长记录文件 第五章 文件系统 5.2.2 文件的物理结构 1. 连续结构 图 5.2 连续结构文件 第五章 文件系统 2. 串联结构 图 5.3 串联结构文件 第五章 文件系统 3. 索引文件 图 5.4 索引结构文件 第五章 文件系统 图 5.5 按串联文件方式组织索引表块第五章 文件系统 图 5.6 按多重索引方式组织索引表块 第五章 文件系统 图
7、5.7 UNIX系统的多重索引结构 第五章 文件系统 4. Hash文件文件的物理结构的另一种组织方式是采用计算寻址结构。 在这种方式中,把记录中的键值通过某种计算,转换为相应记 录的相应地址。一般说来,由于地址的总数比可能的键值总数( 范围)要少得多,也就是不会出现一一对应的关系。因此,不同 键值在计算之后,可能会得到相同的地址,这种现象称为“地址 冲突”。所谓计算寻址,就是通常所说的Hash方法,或称散列法 , 杂凑法。利用这种方法所建立的文件称为Hash文件。这种物 理结构用在不宜采用连续结构、记录次序较乱、又需在极短时 间内存取的场合,如用在实时处理文件、操作系统目录文件、 编译程序变
8、量名表等方面特别有效。此外,又不需索引,从而 节省了索引表所占的空间和索引表的查找时间。解决地址冲突的办法叫溢出处理技术,这是设计Hash文件 需要考虑的主要内容, 用的溢出处理技术有:顺序探索法、二 次散列法、 拉链法、独立溢出区法等。 第五章 文件系统 5.2.3 文件的存取方法 所谓文件的存取方法,是指读写文件存储器上的一个物理块的方法,通常有两类存取方法:顺序存取法和直接存取法。1. 顺序存取法在提供记录式文件结构的系统中,顺序存取法就是严格按物理记录排列的顺序依次存取。如果当前存取的记录为Ri,则下次要存取的记录自动地确定为Ri+1。在只提供无结构的流式文件系统中,顺序存取法按读写位
9、移(offset)从当前位置开始读写,即每读写完一段信息后,读写位移自动加上这段的长度,然后再根据该位移读写下面的信息。第五章 文件系统 如图 5.1 所示,对于顺序文件, 如果知道了当前记录的地址,则很容易确定下一个要存取的记录的地址。例如,设置一 个读指针rptr,令它总是指向“下一次”要读出的记录首址。当该记录读出后,对rptr进行相应的修改。对于定长记录,rptr修改为rptr=rptr+L其中L为文件的物理记录长。此时rptr指向下一次要读出的记录首址。对于变长记录文件,首先根据rptr读出存放记录长Li的单元,然后根据记录长度读出当前记录。此时对rptr作如下修改: rptr=rp
10、tr+Li+l 其中l是存放记录长度Li的字节数。例如用 2 个字节存放Li, 则l=2。 第五章 文件系统 类似地,设置写指针,则对定长记录文件的修改为 wptr=wptr+L对于变长记录文件的修改为 wptr=wptr+Li+l 第五章 文件系统 2. 直接存取法直接存取法允许用户随意存取文件中的任何一个物理记录,而不管上次存取了哪一个记录。在无结构的流式文件中,直接存取法必须事先用必要的命令把读写位移移到欲读写的信息开始处,然后再进行读写。 对于定长记录文件,这是很方便的。欲读写第 i个记录(i=0, 1, 2, )的首址为 rptr=offset+i*Lwptr=offset+i*L其
11、中,offset是该文件的首址,即R0的首址,在逻辑上可认为offset=0;L为记录长度。 第五章 文件系统 3. 按键存取法按键存取法,实质上也是直接存取法, 它不是根据记录编号或地址来存取的,而是根据文件中各记录内容进行存取的。 适用于这种存取方法的文件组织形式也与顺序文件不同,它是按逻辑记录中的某个数据项的内容来存放的, 这种数据项通常称为“键”。这种根据键而不是根据记录号进行存取的方法, 称为按键存取法。 第五章 文件系统 5.2.4 文件结构、文件存储设备和存取法的关系表 5 - 1 文件结构、 存储设备和存取方法之间的关系 存储设备 磁 盘 磁 带 文件结构 连续 串接索引 连续
12、 存取方法 顺序、 直 接 顺序顺序、 直 接 顺序 第五章 文件系统 5.3 文件目录 5.3.1 简单的文件目录 表 5 - 2 简单的文件目录 文件名记录长记录 数起始块 号其它ALPHA500525 BETA4001030 TEST400740 ASS300847第五章 文件系统 1. 文件说明及其所含信息 1) 有关文件结构的信息(1) 文件的逻辑结构:记录是否为定长, 记录长度,记录个数;(2) 文件的物理结构: 如果是连续文件或串联文件,要指出该文件的第一个物理块号; 如果文件是索引文件,则应给出索引表所在的块号, 或者把索引表包括在目录项中。 第五章 文件系统 2) 有关存取控
13、制信息(1) 文件主本人所具有的存取权限(读写和执行);(2) 文件主同组用户的存取权限;(3) 其它用户的存取权限。3) 有关管理方面的信息(1) 文件建立的日期和时间;(2) 上次存取的日期和时间;(3) 文件要求保留时间。 第五章 文件系统 2. 简单目录结构的缺陷(1) 存在“重名”问题。在简单的文件目录结构中, 文件名和文件实体之间存在着一一对应关系,即它不允许两个文件具有相同的名字。在多道程序系统中,尤其是多用户的分时系统中, 重名是很难避免的,这就很难准确地找到用户所需要的文件。 显然,如果由人工来管理文件名注册, 以避免命名冲突, 则是很麻烦的。(2) 当系统文件数量过多时,目
14、录项数就会很大,查找起来就要花费较长的时间。解决上述问题的方法是建立二级或多级目录。 第五章 文件系统 5.3.2 二级目录 图 5.8 二级目录结构 第五章 文件系统 5.3.3 多级目录 1. 多级树型目录 图 5.9 多级树型目录结构 第五章 文件系统 在根目录之下, 包含如下子目录:lib 库文件子目录etc 附加的程序和数据文件子目录dev 设备子目录tmp 临时文件子目录usr 用户子目录bin 实用程序子目录UNIX UNIX子目录(包括操作系统核心程序)include 基本数据子目录根目录和子目录都是文件, 称为目录文件。 第五章 文件系统 2. 绝对路径和相对路径在树型目录结
15、构中,文件名有两种表示方法: 绝对路径名和相对路径名。从根开始到达文件的路径, 称为绝对路径。 例如, 文件prog.c的绝对路径名为/usr/user/u/c/prog.c它表示根目录中有子目录usr, usr中有子目录user,在user子目录下有一子目录lu,lu下的一个文件是prog.c。绝对路径名总是从根目录开始, 并且是唯一的。 在UNIX中,路径各部分之间用“/”分隔。在MS-DOS中,其分隔符是“”,不管使用什么分隔符,如果路径名的第一个字符是分隔符,那么这个路径就是绝对路径。 第五章 文件系统 另一种文件名表示法称为相对路径名。 它常和工作目录(也 称当前目录)的概念一起使用
16、。用户可以指定一个目录作为当前的工作目录。这时,所有的路径名,如果不是从根目录开始, 则都是相对于工作目录的。例如,如果当前的工作目录是 /usr/user/lu,则绝对路径名为/usr/user/lu/prog.c的文件可以简单地 用prog.c来引用。大多数支持树型结构的操作系统, 在每个目录中有两个特 殊的目录项“”和“”,通常读作“点”和“点点”。 “点”指当前目录 , “点点”指其父目录。 在图 5.9 中,若某进程的工作目录为 /usr/user/lu, 它可以使用“”沿树向上到达其父目录/user。该进 程使用路径名 /xu/mailbox访问子目录xu下的文件mailbox。 第五章 文件系统 5.3.4 文件目录项的组织 1. CP/M中的目录项 图 5.10 CP/M目录项的内容 第五章 文件系统 2. MS