Appearance
考点清单
- [x] 文件逻辑结构与物理结构
- [x] 存取方法(顺序/随机)
- [x] 文件属性(R/A/S/H)
- [x] 存取控制与硬链接
- [x] 链式存储与成组分解
- [x] 位示图
- [x] 文件存储空间管理
笔记
文件概述
文件的逻辑结构:有结构的记录式文件、无结构的流式文件。
文件的物理结构(在物理存储设备上的存放方法):
| 结构 | 特点 | 随机访问 |
|---|---|---|
| 连续结构 | 逻辑连续的文件信息依次存放在连续物理块上 | ✅ 快 O(1) |
| 链接结构 | 存放在不连续物理块,每块末尾有指针指向下一块(指针散落在数据块中) | ❌ 慢 O(N) |
| 索引结构 | 存放在不连续物理块,系统建立索引表集中记录逻辑块号→物理块号映射 | ✅ 快 O(1) |
| 多级索引 | 索引表占用一个或多个物理块(直接/一级间接/二级间接) | ✅ 但多一级间接多一次读盘 |
⚠️ 文件物理结构不包括散列结构。连续结构支持快速随机访问但易产生碎片。
💡 链接 vs 索引核心区别:
- 链接结构 = 在各数据块中,像寻宝线索逐块跟 → 随机读慢
- 索引结构 = 映射关系集中在一张索引表,查表即得 → 随机读快
类比:链接 = 糖葫芦串,索引 = 字典检字表。
存取方法:顺序存取、随机存取。
⚠️ 顺序存取的效率不一定高于随机存取,取决于实际场景。文件可同时支持两种存取方式。
索引文件结构
详见:架构师-备考 综合知识-系统基础-操作系统-索引文件结构
文件目录
文件属性
🎯 一句话结论:R=只读、A=归档、S=系统文件、H=隐藏。
文件属性,对应 Windows 文件系统中的四个基本属性,缩写的来源:
| 属性 | 英文 | 含义 |
|---|---|---|
| R | Read-only | 只读文件 |
| A | Archive | 归档文件(标记需要备份) |
| S | System | 系统文件 |
| H | Hidden | 隐藏文件 |
存取控制
🎯 一句话结论:密码保护不属于存取控制类型。
存取控制类型:存取控制矩阵、存取控制表、用户权限表。⚠️ 密码保护不属于存取控制类型(属于密码保护类型)。
硬链接与软链接
🎯 一句话结论:硬链接=共享 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 ~ 4095 | 58 |
| 第1块 | 4096 ~ 8191 | 89 |
| 第2块 | 8192 ~ 12287 | 96 |
| 第3块 | 12288 ~ 16383 | 101 |
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
解析:逻辑结构对用户透明,用户只需文件名,不需要知道物理位置。