FileManagement教材.ppt

  1. 1、本文档共79页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
§6.4 文件系统的实现 多重索引: 索引文件实例分析——UNIX文件索引方式 0 1 9 10 11 12 直接寻址块 直接寻址块 一级间接块 直接寻址块 一级间接块 二级间接块 直接寻址 一级间接 二级间接 三级间接 §6.4 文件系统的实现 【课堂讨论】在UNIX系统中,文件被视为流式文件,如果将逻辑文件的字节偏移量转换成文件的物理块号? 1)将字节偏移量转换成文件的逻辑块号。 转换方法为:将字节偏移量除以盘块大小的字节数,其商即为文件的逻辑块号,余数为块内偏移量。 2)将文件的逻辑块号转换为物理块号。 转换方式与寻址方式有关。 §6.4 文件系统的实现 【例题】在UNIX系统中,假定磁盘块的大小为1KB,每个盘块号占用4个字节,文件索引节点中的磁盘地址明细表如下所示,试回答以下问题: (1)将文件的字节偏移量9000、14000和35000转换为物理地址。 (2)该文件系统支持的文件的最大长度是多少? 4096 228 4542 0 3 11111 50 101 824 9156 428 0 367 1011 109 954 952 … … 3300 333 308 … 331 452 … 0 1 2 3 0 1 74 75 76 §6.4 文件系统的实现 4、文件物理结构的比较 连续文件的优点是不需要额外的空间开销,只要在文件目录中指出文件的大小和首块的块号即可,对顺序的访问效率很高。适应于顺序存取。缺点是动态地增长和缩小系统开销很大;文件创建时要求用户提供文件的大小;存储空间浪费较大。 串联文件克服了连续文件的不足之处,但文件的随机访问系统开销较大。适应于顺序访问的文件。 索引文件既适应于顺序存访问,也适应于随机访问,是一种比较 好的文件物理结构,但要有用于索引表的空间开销和文件索引的时间开销。 §6.4 文件系统的实现 6.4.4 空闲空间的管理 1、空闲文件目录: 简单的空闲块管理方法就是把文件存储设备中的空闲块的块号统一放在一个称为空闲文件目录的物理块中。其中空闲文件目录的每个表项对应一个由多个空闲块构成的空闲区,它包括空闲块个数,空闲块号和第一个空闲块号等。 §6.4 文件系统的实现 2、空闲块链: 空闲块链是一种较常用的空闲块管理方法。空闲块链把文件存储设备上的所有空闲块链接在一起,当申请者需要空闲块时,分配程序从链头开始摘取所需要的空闲块,然后调整链首指针。反之,当回收空闲块时,把释放的空闲块逐个插入链尾上。 3.位示图: 系统首先从内存中画出若干个字节,为每个文件存储设备建立一张位示图。这张位示图反映每个文件存储设备的使用情况。在位示图中,每个文件存储设备的物理块都对应一个比特位。如果该位为“0”,则表示所对应的块是空闲块;反之,如果该位为“1”,则表示所对应的块已被分配出去。 §6.4 文件系统的实现 例如,若文件存储空间总共有32个物理块,则可用一个4×8二维数组描述: 数组元素b[I,j]所代表的块号为x=m×i+j,其中,m为矩阵的列数,n为矩阵的行数,0≤in, 0≤jm 0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 §6.4 文件系统的实现 【例题】在页式存储管理中,可以用位示图表示内存空闲块状况。假设字长为32位,每一位(编号为0-31)与一个内存块对应,取值可为0或1。当取值为1时表示对应块已被占用,当取值为0时表示对应块为空闲。 (1) 如果内存可分配区被划分为1024块,则位示图共需要多少个字来表示? A) 15 B) 16 C) 31 D) 32 (2) 已知某一位的字号是5,位号为14,假设字号也从0开始编号。则对应的内存块号是多少?(假设内存块从0开始编号) A) 70 B) 105 C) 174 D) 224 §6.4 文件系统的实现 4.成组链接法 空闲盘块的组织: (1)空闲盘块号栈:用来存放当前可用的一组空闲盘块号,以及栈中尚有的空闲盘块号数N。 (2)文件区的所有空闲盘块,被分成若干个组。如图每100个盘块一组。 (3)将每一组含有的盘块数N和该组所有的盘块号,记入其前一组的第一个盘块的S.free(0)~S.free(99)中。各组的第一个盘块可链接成一条链。N作为栈顶指

文档评论(0)

kehan123 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档