操作系统第6章 文件管理(new)

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第六章文件管理主要内容6.1文件和文件系统6.2文件的逻辑结构6.3文件的物理结构6.4目录管理6.5文件存储空间的管理6.6文件共享和保护6.7数据一致性控制目的和要求通过本章的学习,掌握文件和文件系统的相关概念,理解按照逻辑结构和物理结构对文件分类的意义及操作,理解文件目录管理的主要功能,掌握文件共享和保护的实现方法。重点和难点1、文件和文件系统的概念;2、文件的分类方式;3、目录管理的基本思想;4、文件的存取控制机制。6.1文件和文件系统6.1.1文件、记录和数据项1.数据项1)基本数据项:可以命名的最小数据单位,包括数据名和数据类型两个属性2)组合数据项:若干基本数据项的组合2.记录记录是一组相关数据项的集合,用于描述一个对象某方面的属性关键字是能够唯一标识一个记录的数据项各信息项之间具有顺序关系信息项信息项……...信息项……...01……i……n-1读写指针信息项3.文件文件是具有文件名的一组相关信息的集合,是文件系统中最大的数据单位。①有结构文件:文件由若干相关记录组成②无结构文件:看作字符流的集合文件具有如下属性:①文件类型②文件长度③文件的物理位置④文件的存取控制⑤文件的建立时间1.文件类型6.1.2文件类型和文件系统模型1)按数据形式•源文件•目标文件•可执行文件2)按组织形式•普通文件•目录文件•特殊文件3)按逻辑结构分类有结构文件无结构文件4)按文件的物理结构分类•顺序文件:指把逻辑文件中的记录顺序存储到连续的物理盘块中•链接文件:指文件中的各记录可以存储在不连续的物理盘块中,通过链接指针连接成一个链表•索引文件:指文件中的各记录通过包含了记录号和物理块号的索引表实现记录和物理块之间的映射2.文件系统模型文件系统接口对对象操纵和管理的软件集合对象及其属性用户(程序)1)对象及其属性•文件•目录•磁盘存储空间2)对对象操纵和管理的软件集合3)文件系统的接口•命令接口•程序接口6.1.3文件操作1.基本的文件操作1)创建文件2)删除文件3)读文件4)写文件5)截断文件6)设置文件的读/写位置2.文件的“打开”和“关闭”操作1)打开文件:将文件在磁盘上的目录项拷贝到内存,形成索引节点,以便从内存读取文件信息;2)关闭文件:将文件的内存索引节点删除。3.其他文件操作1)对文件属性操作2)对目录操作6.2文件逻辑结构6.2.1文件逻辑结构的类型1.有结构文件记录有定长和不定长两种1)顺序文件:按某种顺序排列的定长文件2)索引文件:按索引表查询的不定长文件3)索引顺序文件:以上两者的结合2.无结构文件即流式文件,利用读写指针指出下一个要访问的字符6.2.2顺序文件1.逻辑记录的排序1)串结构:记录的顺序与关键字无关,由存储的先后顺序决定2)顺序结构:所有记录按照关键字排列2.顺序存取方法1)定长记录读指针Rptr•指向下一个记录的首地址•读完指针做相应修改:Rptr=Rptr+L写指针Wptr•指向下一个要写的记录地址•写完指针做相应修改:Wptr=Wptr+L其中,L为定长记录的长度2)变长记录设置读写指针每个记录长度存于记录前的单元中读写完毕后,将读写指针加上刚读或写完的记录长度Li3.顺序文件的优缺点对记录进行批量存取时,顺序文件的存取效率是所有逻辑文件中最高的只有顺序文件才能存储在磁带上并能有效地工作如果用户要求查找或修改单个记录时,顺序文件的性能可能很差增加或删除一个记录较困难1.引入对于定长记录文件,可随机获得第i个记录相对于第一个记录首址的地址:Ai=i×L对于变长度记录文件,须顺序查找每个记录,从中获得相应记录的长度Li,按下式计算第i个记录的首址:8.2.3索引文件2.索引文件的组织为变长记录文件建立一张索引表每个记录占一个表项,包括:索引号、记录的长度、指向该记录的指针3.索引文件的检索根据用户提供的关键字,利用折半查找法查索引表,找到相关表项根据该表项中的指针值,访问该记录增加新记录时,需要修改对应的索引表索引文件的检索速度较快,但需要存储索引表6.2.4索引顺序文件1.索引顺序文件的组织将顺序文件的所有记录分成若干组;为顺序文件建立一张索引表为每组的第一个记录建立一个索引项;其中包含该记录的关键字值和记录指针索引顺序文件2.索引顺序文件的检索利用用户提供的关键字以及某种查找方法检索索引表,查找该组对应的表项根据表项得该组第一个记录在主文件中的位置再利用顺序查找法查找主文件,在对应分组中找到要求的记录主文件记录数为N,则分组记录数为时查找效率最高N6.3文件物理结构6.3.1连续分配1.基本思想1)由一组相邻的物理块组成,是对记录式文件取连续区分配而构成的文件2)每个文件的目录项只需指出文件所占据的起始块号和总块数即可顺序文件示意6.3.2链接结构1)将逻辑上连续的文件分散存放在若干不连续的物理块中2)每块有一个指针,指向其后续的物理块3)隐式链接:文件目录项需记录文件的第一个盘块号和最后一个块号4)显式链接:文件目录项记录文件的第一个盘块号,文件结束标志EOF保存在FAT中文件名始址末址jeep925文件目录01234567891011121314151617181920212223242526272829303111016-125隐式链接示意显式链接示意整个系统一张:文件分配表FAT!abc2……FCB2、5、8、0FAT012345678n580-16.3.3FAT和NTFS技术1.FAT121)以盘块为基本分配单位MS-DOS使用FAT12文件系统,将磁盘划分为四个“卷”,即磁盘分区;每个分区独立保存各自的目录文件、FAT表和逻辑驱动器字母;以盘块为分配单位。磁盘实际容量FAT实际大小FAT最大大小磁盘最大容量FAT大小=表项数*表项大小(12bit)最大表项数=212实际表项数=磁盘盘块数最大实际FAT表容量的计算假设1.2MB的软盘,每个盘块大小为512B,则对应的FAT多大?解:每个FAT表含1.2MB/512B=2.4K个表项,由于每个FAT表项占12位,故FAT表大小为2.4K*1.5B=3.6KB综合举例-1最大磁盘容量的计算假设文件系统采用FAT12文件格式,每个盘块大小为512B,则FAT最大可以管理多大的磁盘空间?解:FAT表项为12位,故FAT表最多允许有212=4096个表项;每个盘块为512B,则每个磁盘分区的最大容量为4096*512B=2MB。磁盘分为4个分区,则磁盘最大容量为8MB。综合举例-2(1)假设盘块大小为1KB,对于1.2MB的软盘,FAT多大?解:软盘共有1.2MB/1KB=1.2K个盘块,1.2K2K=211,取4bit的整数倍即12bit则FAT大小为:1.2K*1.5B=18KB(2)对于100MB的硬盘,FAT多大?解:硬盘共有100MB/1KB=100K个盘块,100K128K=217,取4bit的整数倍即20bit则FAT大小为:100K*2.5B=250KB综合举例-3(1)假设盘块大小为1KB,硬盘分区的大小为250MB,对应的FAT需要占用几个盘块?解:(1)硬盘分区的盘块数为250MB/1KB=250K个,250K256K,一个FAT表项需要18bit,一般取4bit的整数倍即20bit=2.5B,则FAT需占用:250K*2.5B/1KB=625个盘块综合举例-4(2)如果文件ABC占用硬盘的第5、2、7、10四个盘块,试画出文件ABC在FCB中的物理地址以及FAT中的情况。ABC5FCB3567891024FAT2710EOF2)簇的基本概念一个簇的大小为盘块的2n倍,FAT以簇为单位进行登记;对于同样大小的FAT表,当一个簇包含一个扇区时,磁盘最大容量为8MB;当一个簇包含两个扇区时,磁盘最大容量为16MB;当一个簇包含八个扇区时,磁盘最大容量为64MB3)FAT12存在的问题对磁盘容量存在限制;仅支持8+3格式的文件名。2.FAT161)将FAT表项增至16位,则FAT表可登记65536(=216)个簇;2)每个簇的扇区数为4、8、16、32、64。如果是64,则分区的最大空间为216*64*512=2048MB;3)对分区容量的改善有限,如果增加簇的大小,则使内部碎片增大;4)不支持长文件名。3.FAT321)用更多的FAT表项,换取较小的簇;2)FAT32可管理232个簇,每个簇固定为4KB,则FAT32分区最大容量为16TB(=4KB*232);3)由于FAT的扩大,导致运行速度减慢;4)FAT32不支持容量小于512MB的分区;5)单个文件的大小不能超过4GB;6)不能向下兼容。4.NTFS1)NTFS新特征使用64位磁盘地址,支持264的磁盘分区;支持长文件名,文件名小于255个字符,路径名小于32767个字符;具有系统容错功能;提供了数据一致性功能;提供了文件加密、压缩等功能。2)磁盘的组织以簇作为磁盘分配和回收的基本单位;卷上簇的大小称为“卷因子”,由格式化命令确定其大小;对于簇的定位,采用逻辑簇号LCN和虚拟簇号VCN:•LCN:以卷为单位,将整个卷中的簇按序编号;地址映射时,用卷因子乘以LCN即可算出物理字节偏移量;•VCN:以文件为单位,将属于某个文件的簇按序编号。3)文件的组织以卷为单位,将卷中的所有文件信息、目录信息以及可用空间信息,以文件记录的形式记录在一张主控文件表MFT中;卷中的每个文件、目录等在MFT中占一行,每行固定大小1KB,作为文件的元数据;每个元数据所对应的文件信息(包括文件内容),组织在一组文件属性中;超过1KB的部分,存放在其他簇中,通过指针链接;只被windowsNT识别,不能向下兼容。6.3.4索引分配1.引入链接分配方式解决了连续分配所存在的问题,但又出现了另外两个问题:(1)不能支持高效的直接存取(2)FAT需占用较大的内存空间2.单级索引分配1)将逻辑上连续的文件存放在物理上不连续盘块中,系统为每个文件建立一张索引表,将所有的盘块号存放在索引表中2)第i个表项指向该文件的第i个盘块3)文件目录项中记录该文件索引表所在的盘块号2.多级索引分配将大文件的所有索引块(二级索引)的地址放在另一个索引块(一级索引)中……单级索引示意012345678910111213141516171819202122232425262728293031文件名索引表地址文件目录Jeep1991711025-1-1-119——对于小文件,浪费索引块空间多级索引示意3.混合索引分配(以UNIX为例)1)直接地址:iaddr(0)-iaddr(9)可存放10个直接地址项。若盘块大小4KB,则不大于40KB的文件可直接读出所有盘块号。2)一次间接地址:iaddr(10)提供一次间接地址。若一个索引块可存放1K个盘块号,则允许文件达4MB大小。3)多次间接地址:iaddr(11)提供二次间接地址,文件大小可达4GB;iaddr(12)提供三次间接地址文件大小可达4TB。混合索引方式设文件系统采用两级索引分配方式,如果每个磁盘块的大小为1KB,每个盘块号占4B,则单个文件的最大长度是多少?解:每个盘块可有1KB/4B=256个索引项,则两级索引下单个文件最大长度:256*256*1KB=64MB综合举例-1存放在磁盘上的文件系统采用混合索引分配方式,其FCB中共有13个地址项,第0—9个地址项为直接地址,第10个地址项为一次间接地址,第11个地址项为二次间接地址,第12个地址项为三次间接地址。如果每个盘块的大小为512字节,盘块号需用3个字节来描述,而每个盘块最多存放170个盘块地址,则:(1)该文件系统允许文件的最大长度是多少?(2)假设某个文件的FCB已在内存,但其他信息均在外存,为了访问该文件中某个位置的内容,最少需要几次访问磁盘?最多需要几次访问磁盘?综合举例-26.4目录管理对目录管理的要求:1)实现“按名存取”2)提高对目录的检索速度3)方便文件共享4)允许文件重名6.4.1文

1 / 127
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功