文件物理结构(文件分配方式)
一、整体概述1.外存管理两大核心任务已用磁盘块管理文件数据如何存放在磁盘上 → 文件物理结构/文件分配方式本节重点。空闲磁盘块管理磁盘空闲空间如何分配与回收后续章节。2. 基础前置知识磁盘块物理块磁盘被划分为大小相等的存储单元统一编号0、1、2……磁盘与内存的数据交换以块为单位。多数系统会让磁盘块大小 内存页面大小简化内外存数据交互。文件逻辑块文件的逻辑地址空间划分为等大的逻辑块文件逻辑地址 逻辑块号 块内地址类比内存「页号页内地址」。示例磁盘块大小1KB1MB文件 1024KB分为 1024个逻辑块块号 0~1023。核心工作操作系统负责将逻辑块号映射为物理块号块内地址无需转换。三大文件分配方式文件在磁盘的存储分为三类连续分配、链接分配、索引分配其中链接分配细分隐式链接、显式链接FAT。二、连续分配顺序分配1.核心思想一个文件占用磁盘上一组连续的物理块逻辑相邻的块物理位置也相邻。2. 目录项FCB记录内容文件目录项中仅需保存两个信息•文件起始物理块号•文件占用块数文件长度3. 地址映射公式物理块号 起始块号 逻辑块号例文件起始块号4访问逻辑块号2 → 物理块号 426。系统同时会校验逻辑块号是否越界防止非法访问。4. 访问特性同时支持 顺序访问 随机直接访问。5. 优缺点✅ 优点1.顺序访问速度最快物理块连续磁头移动距离最短磁盘IO开销小。2. 支持随机访问地址计算简单。❌ 缺点1.文件拓展困难文件后方物理块若被占用只能整体迁移文件开销极大。2. 产生外部磁盘碎片离散空闲小块无法分配给大文件磁盘利用率低。3. 碎片处理只能用「紧凑」需要大量移动数据耗时高。三、链接分配离散分配整体思想文件拆分到离散的物理块通过指针将所有块串联起来无外部碎片文件拓展方便。分为隐式链接、显式链接两类。一隐式链接1.结构规则FCB目录项记录文件起始块号、结束块号。每个物理块内部预留空间存放下一个块的指针最后一块指针标记为结束无后继。指针对用户透明。2. 地址访问流程访问逻辑块号i必须从起始块开始依次读取 0~i-1 号块顺着指针找到第i块。•访问第i块需要执行 i1 次磁盘IO。3. 访问特性仅支持顺序访问不支持随机访问查找效率低。4. 优缺点✅ 优点1.物理块离散分配无外部碎片磁盘利用率高。2.文件拓展简单直接分配空闲块挂在链表尾部修改FCB结束块号即可。❌ 缺点1.不支持随机访问随机查找效率极低。2.每个块需要额外空间存储指针占用存储资源。3.链条断裂风险任意一块损坏后续所有数据都无法访问。补充题目只写「链接分配」未特殊说明时默认指隐式链接。二显式链接FAT 文件分配表1.核心结构整张磁盘仅设置一张全局文件分配表FAT一个磁盘分区对应一张FAT表。FAT表常驻内存开机读入全程不换出表项数量 磁盘总物理块数。表项作用记录每一个物理块的下一块物理块号文件末尾块标记特殊值如-1。FCB仅记录文件起始物理块号。2. 地址访问流程根据文件名找到FCB获取文件起始块号。在内存FAT表中顺着表项查找后继块号全程无需访问磁盘。3. 访问特性同时支持顺序访问 随机访问查询效率远高于隐式链接。4. 优缺点✅ 优点1.无外部碎片文件拓展方便。2.FAT常驻内存查表速度快支持随机访问。❌ 缺点整张FAT表需要占用大量内存空间磁盘分区越大FAT表开销越高。四、索引分配1.核心思想离散分配物理块为每一个文件单独建立一张索引表类比内存页表。索引表记录「逻辑块号 → 物理块号」的映射关系。分类索引块存放索引表的磁盘块。数据块存放文件真实数据的磁盘块。FCB目录项仅记录该文件索引块的物理块号。区分显式链接是整个磁盘一张FAT表索引分配是每个文件一张独立索引表。2. 基础索引单级索引1访问流程从FCB读出索引块号将索引块读入内存。查询索引表直接得到目标逻辑块对应的物理块号。读取目标数据块。2访问特性支持随机访问文件拓展简单新增数据块同步追加索引表项即可。3局限性单个磁盘块容量有限能存放的索引项数量固定。举例磁盘块1KB单个索引项占4B → 单块最多存放 256个索引项仅能对应256个数据块。若文件过大索引表无法存入单个索引块需使用扩展方案索引链接方案、多级索引、混合索引。3. 索引表过大的三种解决方案方案1索引链接方案•规则索引表拆分为多个索引块索引块之间用指针链接。•缺点访问靠后的索引项需要顺序读取前面所有索引块磁盘IO次数多效率低。方案2多级索引多层索引•原理和多级页表一致一级索引块指向二级索引块大文件可继续拓展三级、四级索引。•核心考点1计算文件最大长度前提每一个索引块能存放的索引项数量固定。例单块存256个索引项二级索引最大数据块数 256 × 256三级索引最大数据块数 256 × 256 × 256•核心考点2计算磁盘IO次数若顶级索引块未载入内存K级索引 → 访问数据共需要 K1 次磁盘读操作。•缺点无论文件大小都要走完多级索引流程小文件访问IO次数偏多。方案3混合索引主流方案•原理结合「直接索引 一级间接索引 二级间接索引……」兼顾大小文件效率。a.直接索引索引项直接指向数据块访问最快小文件优先使用。b.一级间接索引索引项指向单层索引块再由索引块指向数据块。c.二级/多级间接索引用于超大文件。•优势a.小文件使用直接索引磁盘IO次数少访问速度快。b.多级间接索引支撑超大文件兼顾容量。•核心考点a.分段计算文件最大长度直接索引区各级间接索引区总和。b.按逻辑块号所在区间判断使用哪类索引计算对应磁盘IO次数。五、四大分配方式综合对比复习重点补充易错点链接分配默认指隐式链接做题需注意题干描述。显式链接一个磁盘分区 一张FAT表FAT常驻内存。索引分配一个文件 一张独立索引表。多级/混合索引两大必考题型文件最大长度计算、访问磁盘IO次数计算。六、小节总结1.外存以磁盘块为基本读写单位文件逻辑地址划分为逻辑块系统完成逻辑块→物理块映射。2.连续分配连续块速度快、有碎片、难扩容。3.链接分配离散块隐式链接块内自带指针仅顺序访问。显式链接全局FAT表常驻内存支持随机访问。4.索引分配每个文件独立索引表支持随机访问大文件可采用链接索引、多级索引、混合索引优化。5.混合索引是现代系统主流完美适配日常「小文件居多、存在超大文件」的场景。

相关新闻

Sticky便签:Linux桌面效率工作的终极免费解决方案

Sticky便签:Linux桌面效率工作的终极免费解决方案

Sticky便签:Linux桌面效率工作的终极免费解决方案 【免费下载链接】sticky A sticky notes app for the linux desktop 项目地址: https://gitcode.com/gh_mirrors/stic/sticky 在Linux桌面环境中高效管理工作和生活信息,Sticky便签应用提供了一个…

2026/8/6 17:33:32 阅读更多 →
51单片机模拟快递货柜GSM短信系统112-21(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_

51单片机模拟快递货柜GSM短信系统112-21(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_

51单片机模拟快递货柜GSM短信系统112-21(设计源文件万字报告讲解)(支持资料、图片参考_相关定制)_ 产品功能描述: 本系统由STC89C52单片机、液晶LCD1602、按键、LED灯指示、继电器控制、GSM模块及电源组成。 1、按下确认按键,系统…

2026/8/6 17:33:32 阅读更多 →
2 秒报警、30 天不重启,这套 LabVIEW 家庭监控系统怎么搭

2 秒报警、30 天不重启,这套 LabVIEW 家庭监控系统怎么搭

厨房烟雾刚超阈值,报警 2 秒内弹出、排风扇自动打开;连跑 30 天数据完整率 99.9%。这套 LabVIEW 家庭监控系统,干货全在架构里。预计阅读约 5 分钟01 先看一组让你不服气的测试数据烟雾刚漫过阈值,报警窗口 2 秒内弹出&#xff0c…

2026/8/6 17:33:32 阅读更多 →

最新新闻

三个月狂烧1068亿押注AI,市值一夜缩水8772亿:马斯克在给黄仁勋“打工“?

三个月狂烧1068亿押注AI,市值一夜缩水8772亿:马斯克在给黄仁勋“打工“?

SpaceX上市后首份成绩单出炉:营收近乎翻倍,股价却盘后暴跌8%。问题出在哪?8月5日消息,就在今天,SpaceX交出了其上市以来的第一份季度财报。单看营收数字,这份成绩单堪称亮眼:2026年第二季度&…

2026/8/6 18:26:55 阅读更多 →
凌晨三点,我的多模态RAG把合同金额吞了23%:LangChain+Claude Sonnet图文混检的血泪实录

凌晨三点,我的多模态RAG把合同金额吞了23%:LangChain+Claude Sonnet图文混检的血泪实录

当第一份财报PDF被拆成碎片:金融文档解析的生存指南 上周四深夜11点47分,我正用LangChain给某券商部署季度财报分析系统。监控大屏突然弹出警报——一份价值1.23亿美元的衍生品合同,在AI解析后金额变成了"1 23 000",小数…

2026/8/6 18:26:55 阅读更多 →
一个内容创作者的日常:视频素材管理从混乱到有序

一个内容创作者的日常:视频素材管理从混乱到有序

去年年底整理硬盘,发现同一款产品测评的原始素材散落在四个文件夹里,还都是“新建文件夹”这种命名。花了将近40分钟才把三个月前的片子拼回来。那一刻我才意识到,素材管理这件事,我一直在用最笨的方式做。后来和几个做视频的朋友…

2026/8/6 18:26:55 阅读更多 →
MAIGateway,魔芋企业级AI网关的FinAPI统一接入设计

MAIGateway,魔芋企业级AI网关的FinAPI统一接入设计

8月6日,国家一口气发布了7套《人工智能 智能体互联》系列国家标准。 我下载了全部7份文件,花了大半天读完。覆盖总体架构、身份码、身份管理、协作协议、数据交换、安全框架、评估方法。说白了,国家在给AI智能体定通信协议——以后不同厂商的…

2026/8/6 18:26:55 阅读更多 →
终极指南:如何用skill-installer快速构建你的Codex技能生态系统

终极指南:如何用skill-installer快速构建你的Codex技能生态系统

终极指南:如何用skill-installer快速构建你的Codex技能生态系统 【免费下载链接】awesome-codex-skills A curated list of practical Codex skills for automating workflows across the Codex CLI and API. 项目地址: https://gitcode.com/GitHub_Trending/aw/a…

2026/8/6 18:26:55 阅读更多 →
3个关键策略揭秘:如何精准控制变异位点过滤,避免连锁不平衡分析中的关键数据丢失

3个关键策略揭秘:如何精准控制变异位点过滤,避免连锁不平衡分析中的关键数据丢失

3个关键策略揭秘:如何精准控制变异位点过滤,避免连锁不平衡分析中的关键数据丢失 【免费下载链接】LDBlockShow LDBlockShow: a fast and convenient tool for visualizing linkage disequilibrium and haplotype blocks based on VCF files 项目地址:…

2026/8/6 18:25:55 阅读更多 →

日新闻

深入解析LimboAI C++内核:架构设计与性能优化实战

深入解析LimboAI C++内核:架构设计与性能优化实战

1. 项目概述:为什么我们需要深入LimboAI的C内核?如果你是一名使用Godot引擎的游戏开发者,尤其是对AI行为逻辑有较高要求的项目,那么LimboAI这个名字你大概率不会陌生。它作为Godot 4生态中一个备受瞩目的行为树与状态机插件&#…

2026/8/6 0:00:06 阅读更多 →
Unity 2D游戏敌人AI系统:基于PlayMaker状态机与2D Toolkit的实战开发

Unity 2D游戏敌人AI系统:基于PlayMaker状态机与2D Toolkit的实战开发

1. 项目概述与核心思路大家好,我是老张,一个在游戏开发一线摸爬滚打了十多年的老码农。今天咱们接着聊《空洞骑士》风格2D动作游戏的Demo制作。上一期我们搭好了基础框架,处理了角色移动和碰撞,这一期,我们要让游戏世界…

2026/8/6 0:00:06 阅读更多 →
被动防火门市场前景发展趋势

被动防火门市场前景发展趋势

被动防火门依靠材质结构、密闭构造阻隔烟火蔓延,无需电控启动,是建筑被动消防系统核心构件,行业依托新规管控、城市更新、工业安全升级迎来稳定扩容,整体朝着合规化、专项化、低碳化、智能化方向发展。现阶段 GB12955‑2024 新版国…

2026/8/6 0:00:06 阅读更多 →

周新闻

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

1. 从水管网络到最大流:一个核心问题的诞生想象一下,你是一个城市供水系统的总工程师。你的城市有多个水源(水库),需要通过一个复杂的地下管道网络,将水输送到各个居民区。每条管道都有其最大通水能力&…

2026/8/5 15:00:43 阅读更多 →
基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…

2026/8/5 13:13:56 阅读更多 →
MATLAB xcorr函数详解:从互相关原理到四大实战应用

MATLAB xcorr函数详解:从互相关原理到四大实战应用

1. 从一次信号“找茬”说起:为什么我们需要互相关几年前,我在处理一组声学传感器数据时遇到了一个棘手的问题。我有两个麦克风记录了一段相同的音频信号,理论上它们接收到的声音波形应该非常相似,只是由于麦克风位置不同&#xff…

2026/8/5 10:20:36 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/5 23:28:39 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/5 21:00:14 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/5 23:46:51 阅读更多 →