Skip to content

考点清单

  • [x] 文件逻辑结构与物理结构
  • [x] 存取方法(顺序/随机)
  • [x] 文件属性(R/A/S/H)
  • [x] 存取控制与硬链接
  • [x] 链式存储与成组分解
  • [x] 位示图
  • [x] 文件存储空间管理

笔记

文件概述

文件的逻辑结构:有结构的记录式文件、无结构的流式文件。

文件的物理结构(在物理存储设备上的存放方法):

结构特点随机访问
连续结构逻辑连续的文件信息依次存放在连续物理块上✅ 快 O(1)
链接结构存放在不连续物理块,每块末尾有指针指向下一块(指针散落在数据块中)❌ 慢 O(N)
索引结构存放在不连续物理块,系统建立索引表集中记录逻辑块号→物理块号映射✅ 快 O(1)
多级索引索引表占用一个或多个物理块(直接/一级间接/二级间接)✅ 但多一级间接多一次读盘

⚠️ 文件物理结构不包括散列结构。连续结构支持快速随机访问但易产生碎片

💡 链接 vs 索引核心区别

  • 链接结构 = 在各数据块中,像寻宝线索逐块跟 → 随机读慢
  • 索引结构 = 映射关系集中在一张索引表,查表即得 → 随机读快

类比:链接 = 糖葫芦串,索引 = 字典检字表。

存取方法:顺序存取、随机存取。

⚠️ 顺序存取的效率不一定高于随机存取,取决于实际场景。文件可同时支持两种存取方式。

索引文件结构

详见:架构师-备考 综合知识-系统基础-操作系统-索引文件结构

文件目录

详见:架构师-备考 综合知识-系统基础-操作系统-文件目录

文件属性

🎯 一句话结论:R=只读、A=归档、S=系统文件、H=隐藏。

文件属性,对应 Windows 文件系统中的四个基本属性,缩写的来源:

属性英文含义
RRead-only只读文件
AArchive归档文件(标记需要备份)
SSystem系统文件
HHidden隐藏文件

存取控制

🎯 一句话结论:密码保护不属于存取控制类型。

存取控制类型:存取控制矩阵、存取控制表、用户权限表。⚠️ 密码保护不属于存取控制类型(属于密码保护类型)。

硬链接与软链接

🎯 一句话结论:硬链接=共享 inode(引数器 +1),软链接=存路径(快捷方式)。

硬链接(Hard Link)

目录项「a.txt」 ──→ inode #100 ──→ 数据块
目录项「a_hard」──→ inode #100 ──→ 数据块(同一个 inode)
  • 本质:两个目录项指向同一个 inode
  • 理解成 inode 的引数器(nlink)+1。每次 rm 只是引数器 -1,并不删除数据。只有引数器归零才真正释放数据块。
  • 所有目录项地位平等,不存在"原文件"和"链接文件"之分
  • ❌ 不能跨文件系统
  • ❌ 不能指向目录(通常不允许)
  • 类比:同一个人有多个名字,叫哪个名字都找到同一个人

软链接 / 符号链接(Symbolic Link)

软链接「a_soft」──→ inode #200 ──→ 路径字符串「/data/a.txt」

                                       /data/a.txt ──→ inode #100 ──→ 数据块
  • 本质:单独占用一个 inode,里面存的是目标文件的路径字符串
  • 不操作目标文件的引数器,两者独立
  • 删除原文件后 → 软链接变为死链接(dangling link),无法访问
  • ✅ 可以跨文件系统
  • ✅ 可以指向目录
  • 类比:一张写着地址的纸条,房子拆了纸条还在但去了找不到

引数器理解法(核心)

硬链接操作 inode 引数器(nlink):创建 → +1,删除 → -1,归零 → 真正释放。
软链接不操作目标文件的引数器,删原文件与软链接无关。

链式存储与成组分解

🎯 一句话结论:成组分解 = 多记录打包存入一块;读取时先读块再分解出目标记录。

链式存储中,物理块不连续,每块有指针指向下一块。成组分解技术:多个逻辑记录打包存入一个物理块;读取时先将物理块读入缓冲区,再分解出目标记录。

计算:磁盘块 4096 字节,记录 2048 字节 → 每块存 2 个记录。访问第 12288 字节 → 12288 / 4096 = 第 3 个磁盘块(从 0 计数)。

位示图

🎯 一句话结论:位示图每一位对应一个物理块,1 = 已占用,0 = 空闲。用于管理磁盘空闲块。

💡 本质理解:磁盘有 N 个物理块,操作系统需要知道哪些块空闲。最朴素的方式是列空闲块列表,但磁盘上亿个块太占空间。位示图的思路是每个物理块只占 1 个 bit(比特),0=空闲,1=已占用,bit 位置与物理块号一一映射。

位 = bit(比特),示图 = map(映射图)——「用比特位标示磁盘块状态的图」。

它与「索引结构」的区别:位示图管全盘空闲空间(回答"新文件放哪"),索引结构管单个文件(回答"这个文件的块在哪")。

算例:磁盘 100 个物理块,每块 1KB,字长 32 位(编号均从0开始)。要找物理块 66 是否空闲:

前提约定(考题惯例):字号和位号都从 0 开始计数。

字0(第1个字)→ 位0~位31 → 物理块 0~31
字1(第2个字)→ 位0~位31 → 物理块 32~63
字2(第3个字)→ 位0~位31 → 物理块 64~95

物理块 66 的位置:

66 ÷ 32 = 2 余 2
         ↑     ↑
       字号   位号

所以:

  • 字号 = 2 → 对应的是 字 2(从0数的第3个字)

  • 位号 = 2 → 对应的是 第 2 位(从0数的第3位)

  • 字号 = ⌊66 / 32⌋ = 2(第3个字,从0计)

  • 位号 = 66 mod 32 = 2(第3位,从0计)

  • 在位示图字2位2处查 0/1


文件存储空间管理

方法原理
空闲区表为每个连续空闲区建立表项,适用于连续文件结构
位示图 (Bitmap)每一位对应一个物理块,0=空闲,1=占用
空闲块链每个空闲块指向下一个空闲块,链表头指针放在特定位置
成组链接法空闲块分组(如 100 块/组),每组第一块登记下一组盘块号和空闲块总数

位示图计算:物理块号 N 在第 ⌊N/字长⌋ 个字中描述(从 0 编号即为第 ⌊N/字长⌋ 个字)。磁盘容量/物理块大小 = 物理块总数 → 除以字长 = 位示图所需字数。

练习题

经典题目 — 链式存储+成组分解字节定位易错(块号从0计数,整除为边界)

[Q20] 链式存储+成组分解

某文件系统采用链式存储管理方式并应用记录的成组与分解技术,且磁盘块的大小为 4096 字节。若文件 license.doc 由 7 个逻辑记录组成,每个逻辑记录的大小为 2048字节,并依次存放在 58、89、96 和 101 号磁盘块上,那么要存取文件的第 12288 逻辑字节处的信息,应访问( )号磁盘块。

  • A. 58
  • B. 89
  • C. 96
  • D. 101
📝答案与解析

答案:D

解析:每块存2个记录(4096/2048=2)。12288/4096=3,第3块(从0计)→101号块。

已知条件:

  • 磁盘块大小 = 4096 字节
  • 每个逻辑记录 = 2048 字节
  • 所以 每块存 2 个记录(4096 ÷ 2048 = 2)
  • 文件存于 4 个盘块(链式):58 → 89 → 96 → 101

目标:访问逻辑字节 12288

第一步:确定在第几个磁盘块

每块 4096 字节,用逻辑字节数除以块大小:

12288 ÷ 4096 = 3 (整除,无余数)
块号(从0计)字节范围物理块
第0块0 ~ 409558
第1块4096 ~ 819189
第2块8192 ~ 1228796
第3块12288 ~ 16383101

12288 正好是第 3 块的起始位置(第0块是 0~4095 别忘了)。

第二步:链式存储 → 逐块跟踪

链式存储下物理块不连续,靠指针串联:

  • 文件第1块 → 58
  • 第2块 → 89(58指向89)
  • 第3块 → 96(89指向96)
  • 第4块 → 101(96指向101)

所以第 3 块(从0计)对应物理块 101

简单说:12288 ÷ 4096 = 3 → 第 3 块(0-indexed)→ 链式第四个节点 → 101


[Q49] 位示图

文件系统中,位示图(Bitmap)的作用是( )。

  • A. 记录文件的创建时间
  • B. 索引文件内容
  • C. 存储文件的访问权限
  • D. 管理磁盘空闲块
📝答案与解析

答案:D

解析:位示图每一位对应一个物理块,标记占用/空闲,用于管理磁盘空闲空间。


[Q52] 物理结构类型

在文件系统中,用于表示文件物理结构的类型不包括( )。

  • A. 连续结构
  • B. 链接结构
  • C. 索引结构
  • D. 散列结构
📝答案与解析

答案:D

解析:文件物理结构三种:连续、链接、索引。散列/哈希不是文件物理结构。


[Q57] 连续结构

( )文件组织方式支持快速随机访问但易产生碎片。

  • A. 连续结构
  • B. 链接结构
  • C. 索引结构
  • D. 哈希结构
📝答案与解析

答案:A

解析:连续结构=文件块连续存放→随机访问快;但增删文件易产生外碎片。


[Q59] 文件属性

在文件管理系统中,以下哪个文件属性表示该文件是一个系统文件( )。

  • A. R
  • B. A
  • C. S
  • D. H
📝答案与解析

答案:C

解析:R=只读(Read-only),A=归档(Archive),S=系统(System),H=隐藏(Hidden)。


[Q84] 存取控制

下列哪种文件保护方式不属于存取控制类型( )。

  • A. 存取控制矩阵
  • B. 存取控制表
  • C. 用户权限表
  • D. 密码保护
📝答案与解析

答案:D

解析:密码保护属于加密保护,不是存取控制。存取控制=矩阵/ACL/权限表。


[Q85] 硬链接

关于文件的硬链接,下列描述正确的是( )。

  • A. 创建新的文件实体
  • B. 两个文件目录项指向同一个索引节点
  • C. 建立文件路径的映射关系
  • D. 必须位于同一个文件系统
📝答案与解析

答案:B

解析:硬链接=多个目录项指向同一inode,不创建新实体,共享同一索引节点。

D 的描述也是对的,不过更多是约束条件,选择B描述更准确一些。


[Q86] 存取方法

关于文件的存取方法,下列说法错误的是( )。

  • A. 顺序存取是按顺序依次进行读写
  • B. 随机存取可以按任意次序读写
  • C. 顺序存取的效率总是高于随机存取
  • D. 文件可以同时支持两种存取方式
📝答案与解析

答案:C

解析:顺序存取不一定总比随机快。对于索引结构/直接访问场景,随机存取可能更快。


[Q87] 位示图取值

在位示图法中,每一位对应一个物理块,当某位取值为1时表示( )。

  • A. 该物理块空闲
  • B. 该物理块已占用
  • C. 该物理块损坏
  • D. 该物理块未初始化
📝答案与解析

答案:B

解析:位示图中 1=已占用,0=空闲。


[Q88] 连续结构

关于文件的连续结构(顺序结构),下列说法正确的是( )。

  • A. 文件信息存放在不连续的物理块上
  • B. 每个物理块需要指针指向下一块
  • C. 需要建立索引表
  • D. 文件信息存放在连续编号的物理块上
📝答案与解析

答案:D

解析:连续结构=文件块在磁盘上连续编号存放,无需指针和索引。


[Q89] 逻辑结构

关于文件的逻辑结构,下列说法错误的是( )。

  • A. 分为记录式文件和流式文件
  • B. 用户只需知道文件名就可以存取文件
  • C. 用户必须知道文件在磁盘上的物理位置
  • D. 记录式文件是有结构的文件
📝答案与解析

答案:C

解析:逻辑结构对用户透明,用户只需文件名,不需要知道物理位置。