操作系统第六章文件管理详解.ppt

  1. 1、本文档共32页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
检查盘块号一致性情况 3. 链接数一致性检查 配置一张计数器表,每个文件占一个表项。 在进行检查时,从根目录开始查找,每当在目录中遇到该索引结点号时, 便在该计数器表中相应文件的表项上加1。 当把所有目录都检查完后,便可将该计数器表中每个表项中的索引结点号计数值与该文件索引结点中的链接计数count值加以比较。 如果两者一致,表示是正确的;否则,便是发生了链接数据不一致的错误。 * * * 第六章 文件管理 6.1 文件和文件系统 6.2 文件的逻辑结构 6.3 外存分配方式 6.4 目录管理 6.5 文件存储空间的管理 6.6 文件共享与文件保护 6.7 数据一致性控制 6.5 文件存储空间的管理 6.5.1 空闲表法和空闲链表法 1. 空闲表法 空闲盘块表 — — 4 5 15 3 3 9 2 4 2 1 空闲盘块数 第一空闲盘块号 序号 存储空间的分配与回收 空闲盘区的分配与内存的动态分配类似,同样是采用首次适应算法、循环首次适应算法等。 例如: 在为新创建的文件分配空闲盘块时,先顺序地检索空闲表的各表项,直至找到第一个其大小能满足要求的空闲区,再分配该盘区并修改空闲表。 在回收用户所释放的存储空间时,也类似于内存回收的方法,即要考虑回收区是否与空闲表中插入点的前区和后区相邻接,并对相邻接者应予以合并。 2. 空闲链表法 空闲盘块链。 将磁盘上的所有空闲空间,以盘块为单位组织成一个链表。 (2) 空闲盘区链 磁盘上的所有空闲空间,以盘区为单位组织成一个链表。 每个盘区含有指示下一个空闲盘区的指针 每个盘区说明本盘区大小(盘块数)的信息 6.5.2 位示图法 位示图 利用二进制的一位来表示磁盘中一个盘块的使用情况。 位示图 2. 盘块的分配 (1) 顺序扫描位示图,从中找出一个或一组其值为“0”的二进制位(“0”表示空闲时)。 (2) 将所找到的一个或一组二进制位, 转换成与之相应的盘块号。假定找到的其值为“0”的二进制位,位于位示的第i行、第j列,则其相应的盘块号应按下式计算: b=n(i-1)+j 式中, n代表每行的位数。 (3) 修改位示图, 令map[i,j]=1。 3. 盘块的回收 (1) 将回收盘块的盘块号转换成位示图中的行号和列号。 转换公式为: i=(b-1)DIV n+1 j=(b-1)MOD n+1 (2) 修改位示图。 令map [i,j]=1。 6.5.3 成组链接法 1. 空闲盘块的组织 空闲盘块的成组链接法 空闲盘块的组织 空闲盘块号栈存放当前可用的一组空闲盘块的盘块号,以及栈中尚有的空闲盘块号的数量。 图中栈向下生长,栈顶为s.free(99) (2) 文件区中所有的空闲盘块以100个为单位分组。 图中第一组盘块号为201~300,第二组301~400,… (3) 将每组盘块总数和该组所有的盘块号即如前一组的第一个盘块中。 注意各组第一个盘块分别是第300,400,…7900号盘块,而不是201,301,…这样的盘块 (4) 将第一组的盘块总数和所有盘块号记入空闲盘块号栈中,以供当前分配空闲盘块使用。 (5) 最后一组有99个空闲盘块和一个空闲盘块链结束标志。 2. 空闲盘块的分配 当系统要为用户分配文件所需的盘块时,须调用盘块分配过程来完成。 (2) 首先检查空闲盘块号栈是否上锁,如未上锁,便从栈顶取出一空闲盘块号。 (3) 若该盘块号不是位于栈底,则将与之对应的盘块分配给用户。然后将栈顶指针下移一格,栈中的空闲盘块数减1并返回。 (4) 若该盘块号已是栈底,为了接续空闲盘块链,须先调用磁盘读过程,将栈底盘块号所对应盘块的内容(下一组盘块号)读入栈中,然后将原栈底盘块号所对应的盘块分配出去。 3. 空闲盘块的回收 在系统回收空闲盘块时,须调用盘块回收过程进行回收。 (2)将回收盘块的盘块号记入空闲盘块号栈的顶部,并执行空闲盘块数加1操作。 (3)当栈中空闲盘块号数目已达100时, 表示栈已满,便将现有栈中的100个盘块号, 记入新回收的盘块中。再将其盘块号作为新栈底。 图中从空闲盘块链的结束标志开始,7999号、7998号盘块…,依次往前回收,可得此空闲盘块链。 文件共享:系统允许多个用户(进程)共享同一份文件。 为了节省存储空间,可以在系统中只保留共享文件的一份副本。

文档评论(0)

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

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

1亿VIP精品文档

相关文档