第8的章 磁盘存储器的管理.ppt

  1. 1、本文档共64页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第8的章 磁盘存储器的管理

1. 空闲表法 概念:属于连续分配方式。一个连续的未分配区域称为空闲区,将系统中所有空闲区的情况用一个表格记录。如: 8.2.1 空闲表法和空闲链表法 序号 第一空白块号 空白块个数 物理块号 1 2 4 (2,3,4,5) 2 9 3 (9,10,11) 3 15 5 (15,16,17,18,19) 4 — — — 存储空间的分配:空闲盘区的分配与内存的动态分配类似,同样是采用首次适应算法、循环首次适应算法等。 存储空间的回收:当用户撤消一个文件时,系统回收该文件所占用的空间。类似于内存回收的方法。 优点:分配速度高、可减少访问磁盘的I/O频率。 应用:对换空间、文件较小时、多媒体文件。 2. 空闲链表法 (1)空闲盘块链:把其中所有的“空闲盘块” 链在一起。 优点:分配/回收一个盘块时简单。 缺点:为一个文件分配盘块时,可能要重复操作多次。 (2)空闲盘区链:把所有的“空闲区”(每个空闲区包含多个空闲块) 拉成一条链。 盘区分配/回收方法与内存的动态分区分配类似。常采用首次适应算法,为提高检索速度,可用显示链接方法,即在内存中建一张链接表。回收时相邻的合并。 8.2.2 位示图法 1. 位示图 (P261) 图 8-10 位示图 位示图,通常可用m*n个位数构成,并使m*n等于磁盘的总块数。用一串二进制位反映磁盘空间的分配使用情况, 每个物理块对应一位, “1”表示对应的物理块已分配,“0”表示其对应的块未分配。 2. 盘块的分配 (P261) (1) 顺序扫描位示图,从中找出一个或一组其值为“0”的二进制位(“0”表示空闲块)。 (2) 将所找到的一个或一组二进制位, 转换成与之相应的盘块号。假定找到的其值为“0”的二进制位,位于位示图的第i行、第j列,则其相应的盘块号应按下式计算: b=n(i-1)+j 式中, n代表每行的位数。 (3) 修改位示图, 令map[i,j]=1。 3. 盘块的回收 (P261) 步骤: (1) 将回收盘块的盘块号转换成位示图中的行号和列号。 i=(b-1)DIV n+1 商数加1 j=(b-1)MOD n+1 余数加1 (2) 修改位示图。 令map [i,j]=0。 优点: (1)易找到一个或一组相邻接的空闲盘块(只需在位示图中找出几个连续为0的位即可)。 (2)位示图小、占用空间少,因而可保存在内存中。节省了许多磁盘启动操作。此法常用于微型机和小型机中。 8.2.3 成组链接法 (自看) 1. 空闲盘块的组织 图 8-11 空闲盘块的成组链接法 2. 空闲盘块的分配与回收 当系统要为用户分配文件所需的盘块时,须调用盘块分配过程来完成。该过程首先检查空闲盘块号栈是否上锁,如未上锁,便从栈顶取出一空闲盘块号,将与之对应的盘块分配给用户,然后将栈顶指针移一格。若该盘块号已是栈底, 即S.free(0),这是当前栈中最后一个可分配的盘块号。由于在该盘块号所对应的盘块中记有下一组可用的盘块号,因此,须调用磁盘读过程,将栈底盘块号所对应盘块的内容读入栈中,作为新的盘块号栈的内容,并把原栈底对应的盘块分配出去。 然后,再分配一相应的缓冲区(作为该盘块的缓冲区)。最后,把栈中的空闲盘块数减1并返回。 在系统回收空闲盘块时,须调用盘块回收过程进行回收。它是将回收盘块的盘块号记入空闲盘块号栈的顶部,并执行空闲盘块数加1操作。当栈中空闲盘块号数目已达100时, 表示栈已满,便将现有栈中的100个盘块号, 记入新回收的盘块中,再将其盘块号作为新栈底。 8.3 提高磁盘I/O速度的途径 1. 磁盘高速缓存的形式 是指利用内存中的存储空间,来暂存从磁盘中读出的一系列盘块中的信息。因此,这里的高速缓存是一组在逻辑上属于磁盘, 而物理上是驻留在内存中的盘块。 高速缓存在内存中可分成两种形式。 第一种是在内存中开辟一个单独的存储空间来作为磁盘高速缓存,其大小是固定的,不会受应用程序多少的影响; 第二种是把所有未利用的内存空间变为一个缓冲池,供请求分页系统和磁盘I/O时(作为磁盘高速缓存)共享。 8.3.1 磁盘高速缓存 2. 数据交付方式 数据交付:是指将磁盘高速缓存中的数据传送给请求者进程。系统可以采取两种方式, 将数据交付给请求进程: (1) 数据交付。这是直接将高速缓存中的数据, 传送到请求者进程的内存工作区中。 (2) 指针交付。只将指向高速缓存中某区域的指针, 交付给请求者进程。 后一种方式由于所传送的数据量少,因而节省

文档评论(0)

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

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

1亿VIP精品文档

相关文档