操作系统原理第9章 磁盘存储器管理 重点内容

发布于:2025-05-31 ⋅ 阅读:(20) ⋅ 点赞:(0)

目录

(一)外存的组织方式种类

(二)FAT 系统(计算)

(三)文件存储空间的管理方式

(一)外存的组织方式种类

  • 连续组织方式
    • 原理:在磁盘等外存上,为文件分配一组连续的物理块。比如一个文件需要 5 个物理块存储,就会在磁盘上找连续的 5 个空闲块。
    • 优点:文件读取速度快,因为磁头移动距离短,可顺序读取。实现简单,管理方便,只需记录文件起始块号和块数。
    • 缺点:易产生外部碎片,磁盘空间利用率低。新文件分配空间时,可能因找不到连续大块空闲区而无法存储,即便磁盘有足够零散空闲空间 。
  • 链接组织方式
    • 原理:为文件分配不连续的物理块,通过指针将这些块链接起来。分为隐式链接和显式链接 。隐式链接是每个物理块中含指向下一块的指针,文件目录记录起始块号;显式链接是把所有块间链接指针集中存放在一张表(如文件分配表 FAT )中 。
    • 优点:有效利用磁盘零散空间,减少外部碎片。新文件分配空间灵活,只要有空闲块就能分配 。
    • 缺点:隐式链接查找效率低,需逐个块读指针找后续块;显式链接虽查找效率有提升,但 FAT 表需占用一定内存空间 。
  • 索引组织方式
    • 原理:为每个文件建立一个索引表,表中记录文件各逻辑块对应的物理块号,索引表存于外存,文件目录记录索引表地址 。
    • 优点:文件存储灵活,可分配不连续物理块,空间利用率高。查找速度快,通过索引表可直接定位物理块 。
    • 缺点:索引表占用额外存储空间,大文件索引表可能很大,需多级索引,增加管理复杂度 。

(二)FAT 系统(计算)

  • FAT(文件分配表)概念:FAT 是一种记录磁盘上文件存储位置和空闲空间信息的数据结构。它以表格形式记录每个簇(磁盘存储的基本分配单位 )的使用情况,通过簇号来标识。

想象磁盘是一个大仓库,里面有很多小格子(簇)用来存放货物(文件数据) 。FAT 就像是仓库的货物存放记录单,它记录着每个小格子是否被占用,以及被哪个货物占用。如果一个文件要存进仓库,FAT 会给它安排合适的小格子(簇),并记录下这些小格子的编号(簇号) 。当要读取这个文件时,就根据 FAT 记录的簇号找到对应的小格子,把货物取出来。

  • 表格形式示例:FAT 以表格呈现,每一行对应一个簇号,表格中的内容表示这个簇的状态和指向。比如,若某个簇是空闲的,表格对应位置可能记录一个特殊标记(如 0 );若某个簇属于某个文件,表格里会记录下下一个簇的簇号(就像链条上的一环扣一环 ),通过不断查找下一个簇号,就能找到文件的所有数据存储位置。
  • 计算相关要点
    • 簇号计算知道文件起始簇号,根据文件大小和每个簇容量,可计算文件占用簇数及后续簇号。如文件大小 10KB,簇大小 4KB,起始簇号为 5 ,则占用簇数约为 3(10KB÷4KB 向上取整 ),后续簇号可通过 FAT 表中指针查找 。
    • 计算原理还是以仓库为例,假设一个文件大小是 10KB,每个小格子(簇)容量是 4KB。因为文件不能拆分存储在不连续的部分簇里,所以 10KB÷4KB = 2.5 ,但实际上 2 个小格子装不下,需要向上取整为 3 个小格子。若起始簇号是 5,这就表示文件从第 5 个小格子开始存放。然后通过 FAT 表中记录的指针信息(即下一个簇号 ),就能依次找到后续存放文件数据的簇,比如第 5 个簇记录了下一个簇是 6,第 6 个簇又记录下一个是 7 ,这样就知道文件存放在 5、6、7 这三个簇里。
    • 实际应用场景在操作系统向磁盘写入文件时,就会进行这样的计算。操作系统先确定文件大小和每个簇的容量,算出需要多少个簇,再从磁盘的空闲簇中找到合适的起始簇号,然后把文件数据依次存放到这些簇里,并在 FAT 表中记录好簇号之间的连接关系。
    • 空间计算
    • 计算原理FAT 表项大小决定了每个簇在 FAT 表中记录信息所占用的空间。以 FAT16 为例,16 位表示一个表项,而 1 字节等于 8 位,所以 16 位就是 2 字节。如果磁盘有 n 个簇,那就相当于有 n 个这样的记录项,每个记录项占 2 字节,那么 FAT 表占用的空间自然就是 n×2 字节。比如磁盘有 1000 个簇,FAT16 表占用空间就是 1000×2 = 2000 字节。
    • 不同 FAT 类型对比FAT16、FAT32 等不同类型的 FAT 系统,主要区别之一就是表项大小不同。FAT32 的表项是 32 位(即 4 字节 ),相比 FAT16 能表示更多的簇,适合大容量磁盘。当磁盘簇数很多时,虽然 FAT32 每个表项占用空间大,但能管理更大的磁盘空间;而 FAT16 在磁盘簇数较少时比较适用,占用空间相对较小。
    • 文件定位计算给定文件逻辑块号,通过文件目录找到索引节点(含 FAT 表指针 ),再在 FAT 表中查找对应簇号,换算出物理块号,实现文件定位 。
    • 计算原理当用户要读取一个文件时,操作系统先在文件目录里找到这个文件对应的索引节点(可以把索引节点想象成文件的 “档案袋”,里面有很多关于文件的重要信息,包括指向 FAT 表的指针 )。然后根据索引节点里的 FAT 表指针,找到 FAT 表中记录这个文件簇号信息的位置。比如文件的逻辑块号对应的簇号在 FAT 表中查到是 10 ,操作系统就知道要去磁盘上第 10 个簇读取数据。再根据磁盘的物理结构,把簇号换算成物理块号(因为磁盘物理存储可能有特定的编址方式 ),这样就能准确找到文件数据在磁盘上的物理位置,实现文件定位。
    • 实际操作流程示例假设用户在电脑上双击打开一个文本文件,操作系统首先在文件夹对应的目录里查找这个文件的索引节点信息,获取到指向 FAT 表的指针后,在 FAT 表中查找该文件的簇号信息,接着按照簇号依次从磁盘上读取数据,最后把这些数据组合起来,在文本编辑器里显示出文件内容。

(三)文件存储空间的管理方式

  • 空闲表法
    • 原理:将外存上所有空闲区视为一个文件,用一张空闲表记录各空闲区起始块号和块数。分配空间时,找合适空闲区分配;回收时,更新空闲表 。
    • 优点:简单直观,类似内存动态分区分配。
    • 缺点:适合连续分配,不适合大量小文件频繁分配回收,易产生外部碎片 。
  • 空闲链表法
    • 原理:把空闲块或空闲区链接成链表。有单块链表(每个空闲块含指向下一空闲块指针 )和成组链表(将若干空闲块成组,每组首块记录下组位置及本组块数 ) 。分配时从链表取块,回收时插入链表 。
    • 优点:灵活管理空闲空间,适合非连续分配。成组链表结合连续和链接优点,提高查找和分配效率 。
    • 缺点:单块链表查找效率低;成组链表管理稍复杂 。
  • 位示图法
    • 原理:用一个二进制位对应一个物理块,位值 0 表示空闲,1 表示已分配。通过位示图可快速判断块状态,进行分配回收操作 。分配时找 0 位,回收时将对应位清 0 。
    • 优点:空间管理紧凑,分配回收速度快,可通过位运算实现 。
    • 缺点:位示图需占用一定内存空间,大规模磁盘管理时,位示图可能较大 。
  • 成组链接法
    • 原理:将空闲块分组,每组第一个块记录下一组空闲块信息(如块数、块号 ),最后一组空闲块的第一个块无后续组信息。超级块记录第一组空闲块信息 。分配时从第一组取块,不足时从后续组移块补充;回收时先加入当前组,满组后创建新组 。
    • 优点:结合多种方法优点,高效管理大量空闲块,UNIX 系统常用 。
    • 缺点:实现相对复杂,需维护组间链接和空闲块信息 。

网站公告

今日签到

点亮在社区的每一天
去签到