磁盘的直接访问特点使大家能够灵活地实现文件.docxVIP

磁盘的直接访问特点使大家能够灵活地实现文件.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
磁盘的直接访问特点使大家能够灵活地实现文件

磁盘的直接访问特点使大家能够灵活地实现文件。在绝大多数情况下,一个磁盘可存储许多文件。主要问题是如何为这些文件分配空间,以便有效地使用磁盘空间和快速地访问文件。常用的主要磁盘空间分配方法有三个:连续、链接和索引。每种方法都有其优点和缺点。有的系统对三种方法都支持。但是,更为常见的是一个系统只提供对一种方法的支持。1.连续分配方法连续分配(contiguous-allocation)方法要求每个文件在磁盘上占有一组连续的块。磁盘地址为磁盘定义了一个线性序列。采用这种序列,假设只有一个作业访问磁盘,在访问块 b后访问块 b+1 通常不需要移动磁头。当需要磁头移动(从一个柱面的最后扇区到下一个柱面的第一扇区),只需要移动一个磁道。因此,用于访问连续分配文件所需要的寻道数最小,在确实需要寻道时所需要的寻道时间也最小。使用连续分配方法的 IBM VM/CMS 操作系统提供了很好的性能。文件的连续分配可以用第一块的磁盘地址和连续块的数量来定义。如果文件有 n 块长并从位置 b 开始,那么该文件将占有块 b, b+1, b+2, …, b+n-1。一个文件的目录条目包括开始块的地址和该文件所分配区域的长度,参见图 11.5。对一个连续分配文件的访问很容易。要顺序访问,文件系统会记住上次访问过块的磁盘地址,如需要可读入下一块。要直接访问一个从块 b 开始的文件的块i,可以直接访问块 b+i。因此连续分配支持顺序访问和直接访问。图7.19磁盘空间的连续分配不过,连续分配也有一些问题。一个困难是为新文件找到空间。被选择来管理空闲空间的系统决定了这个任务如何完成;这些管理系统将在后面章节中讨论。虽然可以使用任何管理系统,但是有的系统会比其他的要慢。连续磁盘空间分配问题可以作为在动态存储分配(dynamic storage-allocation)问题的一个具体应用,即如何从一个空闲孔列表中寻找一个满足大小为 n的空间。从一组空闲孔中寻找一个空闲孔的最为常用的策略是首次适合和最优适合。模拟结果显示在时间和空间使用方面,首次适合和最优适合都要比最坏适合更为高效。首次适合和最优适合在空间使用方面不相上下,但是首次适合运行得更快。这些算法都有外部碎片(external fragmentation)问题。随着文件的分配和删除,磁盘空闲空间被分成许多小片。只要空闲空间分成小片,就会存在外部碎片。当最大连续片不能满足需求时就有问题;存储空间分成了许多小孔,但没有一个足够大以存储数据。因磁盘空间的总数和文件平均大小的不同,外部碎片可能是一个小问题,但也可能是个大问题。某些老式微型计算机系统对软盘采用了连续分配。为了防止由于外部碎片而导致的大量磁盘空间的浪费,用户必须运行一个重新打包程序,以将整个文件系统复制到另一个软盘或带上。原来的软盘完全变成空的,从而创建了一个大的连续空闲空间。接着,该重新打包程序又对这一大的连续空闲空间采用连续分配方法,以将文件复制回来。这种方案有效地将所有小的空闲空间合并(compact)起来,因而解决了碎片问题。这种合并的代价是时间。这种时间代价对于使用连续分配的大硬盘是很严重的,合并所有的空间可能需要几小时,一周需要运行一次。有些系统要求这个功能线下执行、卸载文件系统。在这停机期间(down time),不能进行正常操作,因此在生产系统中应尽可能地避免合并。大多数现代需要整理碎片的系统能够和正常的系统操作一起在线执行合并,但是性能下降会很明显。连续分配的另一个问题是确定一个文件需要多少空间。当创建文件时,需要找到和分配文件所需要的总的空间。创建者(程序或人)又如何知道所创建文件的大小?有时,这个确定比较简单(例如,复制一个现有文件);然而通常来说,输出文件的大小是比较难估计的。如果为一个文件分配太小的空间,那么可能会发现文件不能扩展。尤其是采用了最优适合分配策略,文件两端可能已经使用。因此,不能在原地扩大文件。这时有两种可能性。第一,可以终止用户程序,并加上合适的错误消息。用户必须分配更多空间并再次运行程序。这些重复运行可能代价很高。为了防止这些问题,用户通常会过多地估计所需的磁盘空间,从而导致了空间浪费。另一种可能是找一个更大的孔,复制文件内容到新空间,释放以前的空间。只要空间存在些动作就可以重复,不过这耗费时间。当然,在这种情况下,用户无需知道这些具体动作;系统虽然有问题但可继续运行,只不过会越来越慢。即使事先已知一个文件所需的总的空间,预先分配的效率仍可能很低。一个文件在很长时间内慢慢增长(数月或数年),仍需要为它最后的大小分配足够空间,虽然其中的大部分在很长时间内并不使用。因此,该文件有大量的内部碎片。为了减少这些缺点,有的操作系统使用修正的连续分配方案。该方案开始分配一块连续空间,当空间不够时,另一块被称为扩展(exte

文档评论(0)

shaofang00 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档