




已阅读5页,还剩63页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 第6章文件系统 文件系统的基本概念FAT文件系统NTFS文件系统Windows文件系统驱动程序 FSD 2 文件系统概述文件概念与实现目录概念与实现文件与目录的访问权限 文件系统的基本概念 3 信息是计算机系统中的重要资源 文件系统是操作系统中的一个重要组成部分 负责信息的组织 存储和访问 文件系统的功能就是提供高效 快速和方便的信息存储和访问功能 文件系统概述 4 文件系统的目的 方便的文件访问和控制 以符号名称作为文件标识 便于用户使用 并发文件访问和控制 在多道程系统中支持对文件的并发访问和控制 统一的用户接口 在不同设备上提供同样的接口 方便用户操作和编程 多种文件访问权限 在多用户系统中的不同用户对同一文件会有不同的访问权限 优化性能 存储效率 检索性能 读写性能 差错恢复 能够验证文件的正确性 并具有一定的差错恢复能力 文件系统概述 5 文件管理的服务功能 文件访问 文件的创建 打开和关闭 文件的读写 目录管理 用于文件访问和控制的信息 不包括文件内容文件结构管理 划分记录 顺序 索引访问控制 并发访问和用户权限限额 quota 限制每个用户能够建立的文件数目 占用外存空间大小等审计 auditing 记录对指定文件的使用信息 如访问时间和用户等 保存在日志中 文件系统向上层用户提供的服务 文件系统概述 6 文件系统的实现功能 文件的分块存储 与外存的存储块相配合I O缓冲和调度 性能优化文件定位 在外存上查找文件的各个存储块外存存储空间管理 如分配和释放 主要针对可改写的外存如磁盘 外存设备访问和控制 包括由设备驱动程序支持的各种基本文件系统如硬盘 软盘 CDROM等 文件系统要实现的功能模块 文件系统概述 7 文件体 文件本身的信息 文件属性 文件存储和管理信息 如 文件名 文件内部标识 文件存储地址 访问权限 访问时间等 文件是具有符号名的数据项的集合 文件名是文件的标识符号 文件包括两部分 1 文件的概念 文件概念与实现 8 2 文件的操作 打开 为文件读写所进行的准备 给出文件路径 获得文件句柄 filehandle 或文件描述符 filedescriptor 需将该文件的目录项读入到内存中 关闭 释放文件描述符 把该文件在内存缓冲区的内容更新到外存上 读 写和文件读写定位 系统为每个打开文件维护一个读写指针 它是相对于文件开头的偏移地址 读写指针指向每次文件读写的开始位置 在每次读写完成后 读写指针按照读写的数据量自动后移相应数值 指围绕文件内容读写进行的文件操作 9 3 文件的逻辑结构 文件结构是指文件的组织形式 文件结构分为文件的逻辑结构 Filelogicalstructure 和文件的物理结构 Filephysicalstructure 逻辑结构是从用户的观点出发 所看到的是独立于文件物理特性的文件组织形式 是用户可以直接处理的数据及其结构 物理结构是文件在外存上具体的存储结构 10 文件逻辑结构的设计要求 访问性能 便于检索 便于修改存储性能 向物理存储转换方便 节省空间文件的逻辑结构较一般可分为记录式文件和流式文件两种 前者是指用户把每个文件分为若干记录单位 存取文件以记录为单位来进行的 而后者则是指文件由字符流组成 文件内部的信息不再划分单位 文件的逻辑结构是指从用户观点出发讨论文件内部的逻辑结构或用户访问模式 它可以独立于在外存上的物理存储 3 文件的逻辑结构 11 4 文件的物理结构 文件实现 研究如何在外部存储介质上为创建文件而分配空间 为删除文件而回收空间 以及对空闲空间进行管理 空间分配策略 1 连续空间分配2 链接空间分配3 索引空间分配 12 空间分配策略 连续空间分配 4 文件的物理结构 文件实现 13 空间分配策略 链接空间分配 4 文件的物理结构 文件实现 14 空间分配策略 索引空间分配 4 文件的物理结构 文件实现 15 空闲空间管理 空闲块位示图 空闲块链表 4 文件的物理结构 文件实现 16 簇的大小两个极端 大到能容纳整个文件 小到一个外存存储块 簇较大 提高I O访问性能 减小管理开销 但簇内碎片浪费问题较严重 簇较小 簇内的碎片浪费较小 特别是大量小文件时有利 但存在簇编号空间不够的问题 如FAT12 16 32 文件的存储空间通常由多个分立的簇组成 而每个簇包含若干个连续的扇区 sector 5 文件存储单位 簇 cluster 17 簇的分配方法 两种簇大小可变 I O访问性能较好 文件存储空间的管理困难 类似于动态分区存储管理 簇大小固定 文件存储空间使用灵活 但I O访问性能下降 文件管理所需空间开销较大 5 文件存储单位 簇 cluster 18 文件卷容量与簇大小的关系文件卷容量越大 若簇的总数保持不变即簇编号所需位数保持不变 则簇越大 缺点 簇内碎片浪费越多文件卷容量越大 若簇大小不变 则簇总数越多 相应簇编号所需位数越多 如簇编号长度为12 16 32二进制位 即构成FAT12 FAT16 FAT32 5 文件存储单位 簇 cluster 19 目录概念与实现 目录内容目录结构目录管理 目录是由文件说明索引组成的用于文件检索的特殊文件 文件目录的内容主要是文件访问的控制信息 不包括文件内容 20 1 目录内容 文件名 字符串 通常在不同系统中允许不同的最大长度 可以修改 有些系统允许同一个文件有多个别名 alias 文件类型 可有多种不同的划分方法 如 有无结构 记录文件 流式文件 内容 二进制 文本 用途 源代码 目标代码 可执行文件 数据 属性attribute 如系统 隐含等 文件组织 如顺序 索引等 目录的内容是文件属性信息 properties 其中的一部分是用户可获取的 1 基本信息 21 2 地址信息 存放位置 包括哪个设备或文件卷volume 以及各个存储块位置 文件长度 当前和上限 以字节 字或存储块为单位 可以通过写入或创建 打开 关闭等操作而变化 1 目录内容 22 4 使用信息 创建时间最后一次读访问的时间和用户最后一次写访问的时间和用户 3 访问控制信息 文件所有者 属主 通常是创建文件的用户 或者改变已有文件的属主 访问权限 控制各用户可使用的访问方式 如读 写 执行 删除等 1 目录内容 23 单级目录 整个目录组织是一个线性结构 系统中的所有文件都建立在一张目录表中 它主要用于单用户操作系统 它具有如下的特点 结构简单 文件多时 目录检索时间长 有命名冲突 如重名 多个文件有相同的文件名 或别名 一个文件有多个不同的文件名 目录结构讨论目录的组织结构 设计目标是检索效率 2 目录结构 24 二级目录 在根目录下 每个用户对应一个目录 第二级目录 在用户目录下是该用户的文件 而不再有下级目录 适用于多用户系统 各用户可有自己的专用目录 2 目录结构 25 多级层次目录 或称为树状目录 在文件数目较多时 便于系统和用户将文件分散管理 适用于较大的文件系统管理 目录级别太多时 会增加路径检索时间 目录名 可以修改 目录树 中间结点是目录 叶子结点是目录或文件 目录的上下级关系 当前目录 currentdirectory workingdirectory 父目录 parentdirectory 子目录 subdirectory 根目录 rootdirectory 等 路径 path 每个目录或文件 可以由根目录开始依次经由的各级目录名 加上最终的目录名或文件名来表示 2 目录结构 26 多级目录组织 2 目录结构 27 进行文件访问和控制时 由操作系统自动更新目录内容目录创建mkdir 删除rmdir 修改目录名rename 改变当前目录chdir 目录管理是指目录访问和目录属性控制 3 目录管理 28 文件与目录访问权限 文件访问类型 读read 可读出文件内容 写write 修改update或添加append 可把数据写入文件 执行execute 可由系统读出文件内容 作为代码执行 删除delete 可删除文件 修改访问权限changeprotection 修改文件属主或访问权限 设置文件访问权限的目的是为了在多个用户间提供有效的文件共享机制 29 用户范围类型 指定用户用户组任意用户访问类型和用户范围的组合 访问矩阵 矩阵的一维是每个目录和文件 另一维是用户范围 每个元素是允许的访问方式访问策略 policy 每种文件访问方式 所允许或禁止的用户范围 可以将文件访问方式推广到其他操作如用户管理 备份 网络访问等 文件与目录的访问权限 30 FAT FileAllocationTable 文件分配表 文件系统是为DOS设计的文件系统 为了向后兼容 也为了方便用户升级 Windows仍然提供对FAT的支持每一种FAT文件系统都用一个数字来标识磁盘上簇号的位数 例如 FAT12的簇标识为12位 二进制数 这限制了它的单个分区最多只能存储212 4096 个簇 而FAT12在Windows2000 XP中的簇大小在512B与8KB之间 这意味着FAT12卷的大小至多只有32M FSD Winnt System32 Drivers Fastfat sys FAT文件系统 31 多级目录 无用户访问权限控制 磁盘文件卷结构 FAT文件系统 FAT12与FAT16 32 文件卷 volume 信息 记录在引导记录的扇区中 包括 簇大小 根目录项数目 FAT表大小 磁盘参数 每道扇区数 磁头数 文件卷中的扇区总数 簇编号长度等逻辑扇区号 三元组 柱面号 磁头号 扇区号 一个文件卷中从0开始对每个扇区编号 优点 屏蔽了物理磁盘参数的不同允许同时访问的文件卷数目上限可以由config sys文件中的LASTDRIVE 语句指定簇 cluster 由若干个扇区组成 在一个文件卷中从0开始对每个簇编号 FAT12与FAT16 33 FAT12与FAT16 FAT12 FAT16BootSector BootRecordLayout 34 每个FAT表项所占位数是簇编号的位数 其值是 以FAT12为例 0 表示该簇空闲FF7h 物理坏扇区FF8h FFFh 表示该簇是文件的最后一个簇其他值 表示该簇被文件占用 而且表项中的值是文件下一个簇的编号 FAT表 两个镜像 互为备份 文件卷中的每个簇均对应一个FAT表项 文件分配采用链式分配方法 FAT12与FAT16 35 目录 是目录项的顺序文件 即大小相同的记录序列 不对目录项排序 若目录中包含的文件数目较多 则搜索效率低 每个目录项大小为32字节 其内容包括 文件名 8 3个字符 属性 包括文件 子目录和文件卷标识 最后一次修改时间和日期 文件长度 第一个簇的编号 在目录项中 若第一个字节为E5h 则表示空目录项 若为05h 则表示文件名的第一个字符为E5h 文件名不区分大小写 36 DirectoryEntryLayout FAT12与FAT16 37 FAT32 主要应用于Windows9x系统FAT32的根目录区 ROOT区 不再是固定区域 固定大小 而是可以看作数据区的一部分 采用与子目录文件相同的管理方式 根目录下的文件数目不再受最多256的限制 目录项仍占32字节 可以是文件目录项 子目录项 卷标项 仅根目录有 已删除目录项 长文件名目录项等 也支持长文件名格式无法支持高级容错特性 不具有内部安全特性 因而仍然无法达到高性能文件系统的要求 38 NTFS文件系统 NTFS为改进的多级目录结构 支持文件别名 NTFS文件由多个文件属性构成 每个属性由属性名和属性流 stream 简单字节队列 组成 用户可自定义属性 NTFS支持用户权限管理 有5种权限划分 读 写 运行 删除和修改权限 支持按用户 用户组分配权限 NTFS文件支持数据压缩功能 NTFS卷结构支持容错功能 NTFS的技术特点 39 NTFS磁盘结构 NTFS具有众多优点 这主要是因为它在磁盘上独特的实现方法 如何划分磁盘 如何组织文件与目录 如何存储文件属性与数据 如何压缩文件数据等 40 NTFS磁盘结构 卷 卷是建立在磁盘分区上 一个磁盘可以有多个卷 一个卷也可以有多个磁盘组成 已格式化过的 卷上的数据可分为 元数据和用户数据 41 NTFS磁盘结构 簇 簇作为磁盘空间分配和回收的基本单位簇的大小是用户在使用Format命令或其他的格式化程序格式化卷时确定的 簇因子随卷的大小而不同 但都是物理扇区的整数倍 通常是2的幂 NTFS使用LCN LogicalClusterNumber 逻辑簇号 和VCN VirtualClusterNumber 虚拟簇号 来进行簇的定位 LCN是对整个卷中所有的簇从头到尾所进行的简单编号 VCN是对属于特定文件的簇从头到尾进行编号 以便于引用文件中的数据 42 NTFS磁盘结构 主控文件表 MFT MasterFileTable 主控文件表 是NTFS卷结构的核心 是NTFS中最重要的系统文件 包含了卷中所有文件的信息 MFT是以文件记录数组来实现的 每个文件记录的大小都固定为1KB 卷上的每个文件 包括MFT本身 都有一行MFT记录 MFT开始的16个元数据文件是保留的 在NTFS中只有这16个元数据文件占有固定的位置 每个这样的元数据文件都有一个以 开头的文件名称 不过该符号是隐藏的 16个元数据文件之后则是普通的用户文件和目录 43 NTFS磁盘结构 主控文件表 0 Mft MFT本身1 MftMirr MFT镜像2 LogFile 日志文件3 Volume 卷文件4 AttrDef 属性定义表5 根目录6 Bitmap 位图文件7 Boot 引导文件8 BadClus 坏簇文件9 Secure 安全文件10 UpCase 大写文件11 Extendedmetadatadirectory 扩展元数据目录12 13 14 15 预留 15 其他用户文件和目录 44 NTFS磁盘结构 主控文件表 45 NTFS磁盘结构 文件引用号 每个文件都有一个64位 bit 的 称为文件引用号 FileReferenceNumber 的唯一标识 文件引用号由两部分组成 一是文件号 文件号为48位 bit 对应于该文件在MFT中的位置 二是文件顺序号 文件顺序号随着每次文件记录的重用而增加 这是为了让NTFS进行内部一致性检查 46 NTFS磁盘结构 文件记录 NTFS文件是属性 属性值的集合 文件数据就是未命名属性的值 其他文件属性包括文件名 文件拥有者 文件时间标记等 每个属性由单个的流 stream 组成 即简单的字符序列 NTFS提供对属性流的各种操作 创建 删除 读取 字节范围 以及写入 字节范围 读写操作一般是针对文件的未命名属性的 对于已命名的属性则可以通过已命名的数据流句法来进行操作 47 NTFS文件是属性的集合 通常所说的文件内容是指未命名数据属性流 例 我们定义两个数据属性 ntfile 数据 和ntfile data 自定义数据 在向FAT复制时 自定义属性会丢失 echotest data ntfileechotest userdefineddata ntfile datamore ntfilemore ntfile datacopyntfilee ntfile E 为NTFS文件系统 copyntfilec ntfile C 为FAT文件系统 more e ntfilemore e ntfile datamore c ntfilemore c ntfile data NTFS磁盘结构 文件记录 48 NTFS磁盘结构 文件记录 NTFS卷上文件的常用属性 并不是所有文件都有所有这些属性 VOLUME INFORMATION VOLUME NAME STANDARD INFORMATION FILE NAME SECURITY DESCRIPTOR DATA INDEX ROOT INDEX ALLOCATION BITMAP ATTRIBUTE LIST OBJECT ID REPARSE POINT EA EA INFORMATION LOGGED UTILITY STREAM 49 NTFS磁盘结构 文件名称 NTFS路径名中的每个文件名 目录名的长度可达255个字节 可以包含Unicode字符 多个空格及句点 50 NTFS磁盘结构 常驻属性与非常驻属性 当属性值能直接存放在MFT中时 该属性就称为常驻属性 residentattribute 有些属性总是常驻的 这样NTFS才可以确定其他非常驻属性 例如 标准信息属性和索引根就总是常驻属性 如果属性值能直接存放在MFT中 那么NTFS对它的访问时间就将大大缩短 小文件或小目录的所有属性 均可以在MFT中常驻 小文件的未命名属性可以包括所有文件数据 小目录的索引根属性可以包括其中所有文件和子目录的索引 大文件或大目录的所有属性 就不可能都常驻在MFT中 51 NTFS磁盘结构 常驻属性与非常驻属性 如果一个属性 如文件数据属性 太大而不能存放在只有1KB的MFT文件记录中 那么NTFS将从MFT之外分配区域 这些区域通常称为一个延展 run 或一个延伸 extent 它们可用来存储属性值 如文件数据 如果以后属性值又增加 那么NTFS将会再分配一个延展 以便用来存储额外的数据 值存储在延展中而不是在MFT文件记录中的属性称为非常驻属性 nonresidentattributes 在标准属性中 只有可以增长的属性才是非常驻的 对文件来说 可增长的属性有数据 属性列表等 标准信息和文件名属性总是常驻的 52 NTFS磁盘结构 常驻属性与非常驻属性 53 NTFS磁盘结构 索引 索引根属性将相应目录中的文件名和子目录名进行排序 对于一个大目录 文件名实际存储在组织文件名的固定4KB大小的索引缓冲区中 索引缓冲区是通过B 树数据结构实现的 索引分配属性包含了索引缓冲区的VCN到LCN映射位图属性跟踪在索引缓冲区中哪些VCN是在使用而哪些是空闲的 54 NTFS磁盘结构 数据压缩 压缩稀疏文件 稀疏文件是指相对于文件大小而言只有少量非零数据的文件 NTFS只给那些包含非零数据的延展分配磁盘空间当程序从压缩文件中读取数据时 NTFS通过检测该位置是否有VCN到LCN的映射来决定该数据是不是零数据 若有映射 则为非零数据 需要从磁盘上读取 若没有映射即存在尚未分配的 空洞 unallocatedhole 则为零数据 就直接返回零数据 55 NTFS磁盘结构 数据压缩 压缩非稀疏文件NTFS是以16个簇为压缩单元来进行一般文件的压缩的 当NTFS向压缩文件写数据时 它确保每个延展都以一个虚拟16簇边界开始 因此每个延展中VCN都是以16的倍数开始的 并且延展的长度不大于16 56 Windows文件系统驱动程序 FSD Windows文件系统模型WindowsFSD体系结构文件系统操作与FSDNTFSFSD 57 Windows文件系统模型 58 WindowsFSD体系结构 本地 59 WindowsFSD体系结构 远程 60 文件系统操作与FSD 显式文件I O高速缓存迟后写高速缓存超前读内存脏页写内存缺页处理 61 文件系统操作与FSD 显式文件I O CreateFile ReadFile WriteFile Win32API NtCreateFile通过ObOpenObjectByName解析名称字符串通过IopParseDevice创建IRP I Orequestpacket I O请求包 通过IoCallDriver将IRP交给合适的FSD以创建文件 62 文件系统操作与FSD 显式文件I O ReadFile NtReadFile 将已打开文件的句柄转换成文件对象指针 检查访问权限 创建IRP读请求 通过IoCallDriver将IRP交给合适的FSD 如可在高速缓存 则应检查PrivateCacheMap 如有效则表示该文件已有私有高速缓存映射结构 如无效则表示尚没有私有高速缓存映射结构
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 药品注册审评员考核试题及答案
- 电梯安全管理人员月考试题库加答案
- 2025年度委托担保合同适用范围与条件
- 2025年度智能新能源汽车出租车运营合作协议书
- 2025年出租车夜班运营权承租及紧急救援服务合作协议
- 2025年度家庭装修半包装修服务协议范本
- 2025年度企业内部培训师认证授权培训合同范本
- 2025版教育培训课程体系订购协议
- 2025年度信息技术咨询与售后服务合同
- 2025版挖掘机销售与地下管网施工承包合同
- 2025年六安市裕安区石婆店镇公开招考村级后备干部8名笔试备考试题及答案解析
- 公司领导财务知识培训课件
- 2025年全国中小学校党组织书记网络培训示范班在线考试题库及答案
- 子痫患者护理查房
- 2024仁爱科普版八年级英语上册 Unit 1 Healthy Mind and Body(知识梳理与考点训练)解析版
- 医疗护理员职业技能竞赛试题及答案
- 出货标签管理办法
- 中石化计划管理办法
- 2025全国农业(水产)行业职业技能大赛(水生物病害防治员)选拔赛试题库(含答案)
- 药物化学(全套课件)
- 污水站沉淀池清淤及清洗工作施工方案
评论
0/150
提交评论