《第五章整理ppt.ppt》由会员分享,可在线阅读,更多相关《第五章整理ppt.ppt(42页珍藏版)》请在三一文库上搜索。
1、第5章 文件管理,文件系统概述 文件的结构和存取方式 文件的使用 文件目录 文件存储空间的管理 文件共享与保护 文件系统的性能问题,5.1.1 文件的概念,1. 文件 外存中具有符号名的一组有逻辑意义的信息项的集合。 2. 文件系统 指OS中管理文件的那一部分软件。它负责管理文件的存储、检索、更新,提供安全可靠的共享和保护手段,并为用户提供一整套方便有效的文件使用和操作方法。它在OS接口中占比例最大,是I/O系统的上层软件。文件系统面向用户的主要任务是实现文件的“按名存取”。,5.1.2 文件分类,分类角度多。比如,可按文件的用途、文件中数据的形式、存取控制属性、文件信息的保存期限、文件的逻辑
2、结构、文件的物理结构等进行分类。 UNIX系统将文件分为三类: 普通文件(包括用户的ASCII或二进制文件); 目录文件; 特殊文件(设备文件,管道,套接字,符号链等),5.1.3 5.1.5 文件结构与存取方法,文件的结构指文件中信息的配置和构造方式,有逻辑结构和物理结构之分。 1. 文件的逻辑结构 用户眼中文件信息的组织形式叫文件的逻辑结构。它包括记录式文件和流式文件两种,每种文件信息的逻辑单位分别是记录和字符。 UNIX系统视所有文件的逻辑结构为无结构的流式文件 早期有结构的记录式文件又分定长和不定长两种,流式文件可看作特殊的定长记录式文件 文件的逻辑结构与文件的存储介质无关,2. 文件
3、的物理结构 系统眼中文件信息的组织形式叫文件的物理结构。它包括顺序文件、链接文件、索引文件三种(实为连续文件与不连续文件两大类) 文件的物理结构也叫文件的存储结构,指文件在外存上的存储组织形式,它与存储介质的性能和外存的分配方式有关 顺序文件:文件的信息存放在若干连续的物理块中。特点:实现简单,顺序存取速度快,但分配慢,外存碎片多(似内存的可重定位可变分区分配),文件名 始址 块数,count 0 2 tr 14 3 mail 19 6 list 28 4 f 6 2,文件目录,count,f,tr,mail,list,磁盘空间连续分配产生顺序文件:,磁盘空间,链接文件:一个文件的信息存放在若
4、干不连续的物理块中,各块之间通过指针连接。特点:提高了磁盘空间利用率,不存在外部碎片问题,有利于文件长度动态变化,但存取速度慢(不适合随机存取,寻道时间长),可靠性差,指针占空间。 链接文件按链接指针的不同实现又分为隐式链接文件和显式链接文件,MS DOS、Windows中采用的是后者,其FAT和簇的概念是传统链接结构的变形,文件名 始址 末址,jeep 9 25,文件目录,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,1,10,16,-1,25,磁盘空间链接式分配产生
5、链接文件:,磁盘空间,索引文件:一个文件的信息存放在若干不连续物理块中,系统为每个文件建立一个索引表,并将这些物理块号存放在其中 一个索引表就是磁盘块地址数组,其中第i个条目指向文件的第i块 索引表组织:单级索引、多级索引、Hash索引。UNIX文件系统采用多级索引结构 特点:既能顺序存取,又能随机存取,支持文件长度动态变化,外存利用率高,但索引表需占额外空间。,文件名 索引表地址,文件目录,Jeep 19,9 17 1 10 25 -1 -1 -1,19,磁盘空间索引式分配产生索引文件:,文件jeep的单级索引表,UNIX System V 采用多级混合 索引方式,索引结点中的13个地址项,
6、十个直接地址项,三次间接地址块,一次间接地址块,二次间接块,一次间接块,一次间接块,二次间接块,物理块,物理块,物理块,设每个盘块4kB,每个盘块号4B,则采用3次间址可表示的文件最大长度为:4T+4G+4M+40K(B),3. 文件的存取方式 当今OS支持的文件存取方式主要有顺序存取和随机存取两种。 顺序存取 对文件中的信息按逻辑顺序进行读/写的存取方式称顺序存取 随机存取 对文件中的信息按任意顺序进行读/写的存取方式称随机存取 早期系统中记录式文件所对应的第三种存取方式按键存取现在多见于DBMS中,4. 文件的存储介质 磁带,磁盘,光盘,优盘, 以块为单位进行信息的存储、传输、分配 磁带:
7、顺序存取设备,前面的物理块被存取访问之后,才能存取后续的物理块的内容。存取速度较慢,现在主要用于后备存储。 磁盘:可编址的随机存取设备,存取磁盘上任一物理块的时间不依赖于该物理块所处的位置。 光盘、优盘:可移动磁盘的改进、变形物。,文件的存取方式不仅与文件的结构有关,还与文件所在存储介质的性能有关,如下表所示:,5. 文件结构、文件存取方式与文件存储介质的关系,问题1:上表内容完全正确吗? 问题2:磁盘上的不定长记录式顺序文件适合随机存取吗?,5.1.6 文件操作,为方便用户使用文件,文件系统提供对文件的各种操作,形式分别为:系统调用或命令 提供设置和修改用户文件的存取权限的服务 提供建立、修
8、改、改变、删除目录的服务 提供文件共享,设置访问路径的服务 提供创建、打开、读、写、关闭、撤消文件等服务 文件系统维护 文件系统的转储和恢复 其中,最基本的操作是:打开、关闭、读、写文件等,(1) 打开文件操作简介 任何一个文件使用前都要先打开,即把FCB送到内存,以建立用户和文件的联系,使今后频繁的查目录操作在内存中完成。如fd=open(文件路径名, 打开方式),打开文件操作的主要执行步骤如下: 根据文件路径名查目录,找到FCB主部; 根据打开方式、共享说明和用户身份检查访问合法性; 根据文件号查系统打开文件表,看文件是否已被打开;若是共享计数加1, 否则将外存中的FCB主部等信息填入系统
9、打开文件表空表项,共享计数置为1; 在用户打开文件表中取一空表项,填写打开方式等,并指向系统打开文件表对应表项 返回信息:fd:文件描述符,是一个非负整数,用于以后读写文件,5.2 文件目录,1.基本概念 文件控制块(FCB):是OS为管理文件而设置的数据结构,存放了为管理文件所需的所有有关信息(文件属性),也叫文件目录项 文件控制块是文件存在的标志 文件控制块的内容: 基本信息:文件的名字、地址、大小、结构、类型 存取控制信息:文件属主、存取权限或属性或口令 使用信息:共享计数,文件的建立、修改日期等,文件目录:把所有的FCB组织在一起,就构成了文件目录,即文件控制块的有序集合 目录项:构成
10、文件目录的项目,即FCB 目录文件:为了实现对文件目录的管理,通常将文件目录以文件的形式保存在外存,这个文件就叫目录文件 目录主要是为了系统快速实现“按名存取”而引入的,查目录是文件系统最频繁的操作,因此目录的合理组织很重要,2. 目录结构 (1) 单级目录结构 系统为所有文件建立一个目录文件(线性表) 优点:简单,易实现 缺点: 限制了用户对文件的命名(存在“命名冲突”问题) 顺序检索文件时平均检索时间长 限制了对文件的共享 不适于多用户系统,(2) 二级目录结构 为克服单级目录结构存在的命名冲突问题,并提高对目录文件的检索速度而引入 目录分为两级:一级称为主文件目录,给出用户名,用户子目录
11、所在的物理位置;二级称为用户文件目录(又称用户子目录),给出该用户所有文件的FCB 优点:解决了文件的重名问题和文件共享问题; 可用于多用户系统; 顺序查找时间降低。 缺点:增加了系统开销,二级目录结构示意图,(3) 多级目录结构(树型目录) 对二级目录简单扩充可得三级或三级以上的多级目录结构,即允许每一级目录中的FCB要么指向文件,要么指向下一级子目录即可。这是当今主流OS普遍采用的目录结构 优点: 解决了命名冲突问题 提高了文件检索速度 易于实现文件的共享和保护 层次结构清晰,便于对文件分类管理 缺点:查找一个文件按路径名逐层检查,由于每个文件都放在外存,多次访盘影响速度,UNIX多级树形
12、目录结构示意图,(4) 文件目录改进 为加快目录检索可采用目录项分解法,把FCB分成两部分: 符号目录项(次部) 文件名,文件号(即基本目录项编号,以实现主次部的链接) 基本目录项(主部) FCB中除文件名外的所有项目 UNIX采用此法,它把符号目录项称为目录项,而把基本目录项称为I节点(Index node,索引节点),这样,目录项中的文件号就是索引节点号,(FCB),采用基本文件目录和符号文件目录的多级目录结构示意图(1),基本文件目录,变小了的符号文件目录,根目录,采用基本文件目录和符号文件目录的多级目录结构示意图(2),例5.1 设物理块大小512字节,一个FCB有48个字节,符号目录
13、项占 8字节,文件名6字节,文件号2字节,基本目录项占 48-6=42字节。若把含有128个目录项的某单级目录文件改造成符号文件目录和基本文件目录的结构,试说明改造后查找一个文件的平均访盘次数,谈一下自己的认识。,解:分解前:1块含512/48=10个FCB 分解后:1块含512/8=64个符号目录项,或者, 1块含512/42=12个基本目录项 该目录文件含有128个目录项,分解前占13块,分解后其符号文件占2块 ,基本文件占11块。 故分解前查找一个文件的平均访盘次数:(1+13)/2=7次,分解后:(1+2)/2 +1 =2.5次 由此可见:改造后减少了访问硬盘的次数,提高了检索速度。,
14、(5) 目录的其他实现方法: Hash表算法: 目录文件按目录项键的Hash值的顺序组织。 创建或搜索时根据文件名计算Hash值,得到一个指向目录表中相应表目的指针 其他算法: 如B+树, 这是一种将大的单级索引目录文件组织成有序的树型多级索引目录文件的方法,是索引顺序文件中实际采用的基本索引结构,支持随机访问和顺序访问,多见于DBMS中。 NTFS文件系统就采用了B+树,文件的“按名存取”是通过查目录实现的,系统按照文件的路径名检索。目录查询技术主要有两种: 线性检索法 Hash方法 为加快目录检索,许多系统引入当前目录(工作目录,值班目录)、相对路径名、cd命令等。,3. 目录查询技术,1
15、. 分配方式 当今OS几乎都采用离散分配方式(似内存分页),以节省外存空间。采用链接分配法导致链接文件,如MS DOS;采用索引分配法将形成索引文件,如UNIX。UNIX仅对其对换区采用连续分配方式,以加快对换过程。 2. 分配算法 似首次适应法的扩充(即顺序查找分配法) 3. 分配算法用的主要数据结构(即描述外存空间使用情况的几类不同的数据结构),5.3 文件系统的实现 一、文件存储空间的管理(5.3.4),(1)空闲区表/链 将所有空闲区记录在一个表/链中。适合连续分配。如今少用 (2)空闲块链 把所有空闲块链成一个链。适合离散分配,今DOS、Windows等用之 扩展:不断地适度地增加块
16、尺寸。从最早的512B1KB 2KB 4KB 8KB 16KB 32KB 64KB。FAT16支持的最大簇为32KB,FAT32支持的最大簇为16KB,NTFS支持的最大簇为64KB(请思考FAT12、FAT16与FAT32之间的区别)成组链接法,链上每个节点记录1组空闲块。适合大型文件系统,分配、释放快,链本身短,占空间少(除首组外均隐藏在空闲块中)。UNIX用之,成组链接法分组原理图 逆序分组,顺序分配,成组链接法初始化链的例子: 超级块中空闲块号栈 50号空块 150号空块 250号空块,空闲块数,空闲块号,251号空闲块,采用成组链接法的外存分配、回收算法:,(3) 位示图 用一串二进
17、制位反映磁盘空间中分配使用情况, 每个物理块对应一位, 分配物理块为1,否则为0 申请物理块时,可以在位示图中查找为0的位,返回对应物理块号; 归还时;将对应位转置0 描述能力强,适合各种物理结构(对连续文件稍差),本身占空间少,可常驻内存,而字位号到块号的转换也不难。今Linux等用之(甚至对内存分页方式也用它),二、文件共享的实现(5.3.3),1. 文件共享的定义 一个文件被多个用户或程序使用 共享形式: 被多个用户不同时使用,由存取权限控制 被多个程序同时使用,但各用自己的读写指针 被多个程序同时使用,但共享读写指针 2. 文件共享的目的 节省时间和存储空间,减少了用户工作量; 进程间
18、通过文件交换信息。,3. 文件共享的实现方法(3种) 按“路径名”访问共享文件,即基于系统目录的共享法 。 实现简单,但路径名可能长,检索较慢。 用连接命令实现基于i-node的共享(硬链接方式) 通过“连接(Link)”命令,在用户自己的目录项中对要共享的文件建立起相应的表目,新建目录项中的索引节点号即被共享文件的。解除连接需执行Unlink命令。UNIX提供此法。它是方法1的发展。 使用文件别名,检索较快,也叫静态共享。 问题:删除文件时应怎样考虑?,用符号链(Symbolic linking)访问共享文件 系统建立一个新文件,类型为LINK,放在要连接的目录下。该文件只包含被链接文件的路
19、径名 问题:系统时空开销大 优势:适于异地系统间(特别是计算机网络环境下)的文件共享,也没有直接删除文件的副作用。 符号链在Windows中叫快捷方式,UNIX实例用户B用连接方式共享用户A的文件F Link(A/F,B/C) (Linux命令为ln A/F B/C) 在B目录中建立一个新表目,并在文件F所对应的目录表目中的“连接数”项加1,为支持用户的3种共享形式,UNIX在用户打开文件表和内存索引节点间还引入了系统打开文件表,以解决文件读写指针的存放位置问题,如下图所示。,UNIX系统文件共享示例,三、文件系统的一致性(5.3.5),事务、检查点、并发控制,见DBMS 磁盘块号的一致性检查 UNIX一致性检查工作过程: 设两张表,每块对应一个表中的计数器,初值为0 表一:记录了每块在文件中出现的次数 表二:记录了每块在空闲块表中出现的次数 对任一块的检查结果01、10为一致,00为块丢失,02为空块重复,检查程序要给予解决,
链接地址:https://www.31doc.com/p-2582846.html