首页 / 资讯中心 / 文章详情

软考架构师·教材版|11 文件系统:文件存储、目录结构、索引节点

软考架构师·教材版|11 文件系统:文件存储、目录结构、索引节点 ★ FEATURED ARTICLE
11 文件系统文件存储、目录结构、索引节点鱼宵系列「软考架构师实战精通营教材版」本篇考点权重中频依据近 5 年真题分布统计供参考1. 本篇目标学完这篇你能说清楚三件事文件在磁盘上到底怎么存的三种分配方式、文件怎么被找到的目录 索引节点、空闲空间怎么管理的位示图——并且会算两道高频小题索引文件最大能多大、位示图要几个字。综合科目上午的 1~2 分稳稳拿下。2. 对应教材清华社《系统架构设计师教程第 2 版》叶宏主编2022.12第 2 章 2.3.4 文件系统清华社官网图书目录页 book_09190101第 37 页起已核实。官方考试大纲对应条目操作系统基础 — 文件管理具体条目表述以 ruankao.org.cn 发布的大纲为准本篇按考点展开。3. 零基础开胃课把文件系统想成一座图书馆书 文件你要读的那本《架构师教程》书架上的格子 磁盘块书不可能整本印在一格得拆成很多块放图书目录卡 目录卡片上写着书名、作者、放哪个架索引号 索引节点inode记录这本书拆了多少块、每块在哪图书馆要正常营业得回答三个问题书怎么摆分配方式、读者怎么找书目录结构、新书上架放哪空闲空间管理。文件系统干的也是这三件事。这一篇就围绕这三件事展开。为什么软考要考它因为文件系统是操作系统两大核心能力之一另一个是进程管理程序员写的每个文件、数据库存的每张表底层都是文件系统在管。综合科目上午卷里文件系统相关的小题平均 1~2 道集中在三种分配方式、索引文件大小计算、位示图计算三类——全是套路题本篇把套路给你拆开见到就能算。4. 概念讲解4.1 文件到底是什么——先分清逻辑结构和物理结构文件 一组有意义的信息集合比如一篇文档、一张照片、一段程序。它有两副面孔逻辑结构从用户角度看文件就是一连串连续的字节/记录你不用管它拆成几块存哪了。就像你眼里一本书就是一整本。物理结构从磁盘角度看文件被拆成一个个磁盘块散落在磁盘的不同位置。考点考试爱问逻辑结构与物理结构的区别——逻辑结构是用户视图连续、有序物理结构是存储视图可能不连续。两者之间靠分配方式建立映射关系。✅你该带走什么文件有两副面孔——用户眼里的逻辑结构连续有序和磁盘眼里的物理结构可能不连续分配方式就是把这副逻辑面孔映射到物理位置的桥。4.2 文件在磁盘上怎么放——三种分配方式操作系统把磁盘分成固定大小的磁盘块也叫盘块、扇区块常见 512B~4KB。一个文件占若干个块怎么把这些块组织起来就是分配方式。三大主流分配方式一句话优点缺点连续分配文件块在磁盘上挨着放顺序读快、实现简单有外部碎片、扩展难链接分配每块末尾记下一块地址串成链无外部碎片、易扩展只能顺序读、链断全毁索引分配单独一个索引块记录所有块号支持随机访问、易扩展索引块本身占空间考试先问三种方式各自优缺点再让你算数——前面两种考概念后面索引要考计算。✅你该带走什么三种方式一句话——连续挨着放读得快但怕碎片、链接指针串链省地但只能顺序读、索引查表直达随机访问的王者现代系统基本都走索引路线。4.3 连续分配快但怕碎片连续分配 把文件的块连续摆放文件在磁盘上是一段一段紧挨着的。优点读文件时磁头顺着走顺序访问最快实现也简单目录里记起始块号 长度就够。缺点① 删除文件后中间空出来的小块很难再塞进新文件形成外部碎片碎片整理要搬数据② 文件想变大后面没地方只能整体搬家。考点连续分配适合只读不增长的文件比如光盘镜像、只读程序。✅你该带走什么连续分配读得最快但要一整段空地——删文件留下外部碎片、想长大只能整体搬家所以它天生适合只读不长的文件。4.4 链接分配一条链子串到底链接分配 每个磁盘块的末尾存一个指针指向文件下一个块块与块之间用指针串成链。优点文件块可以任意散落不要求连续没有外部碎片想扩展就在链尾加一块。缺点① 只能从链头顺序读到链尾想读第 100 块得从头数 100 次——随机访问极慢② 指针占块内空间读一块要读出数据 指针③链子一旦断后面的块全丢。考点链接分配不能随机访问是必考点——考试问哪种分配支持随机访问答索引分配和显式链接的 FAT。补充一个细化概念链接分配还分隐式链接和显式链接。指针藏在数据块内部、读数据时顺手读出下一块地址的叫隐式链接——就是上面说的原始链式随机访问最慢把指针统一抽出来放在一张表里的叫显式链接典型代表就是 FAT。考试看到显式链接要立刻反应出 FAT看到隐式链接要想到块内藏指针、只能顺序读。✅你该带走什么链接分配让块任意散落、不怕碎片、好扩展代价是只能从链头顺序读指针藏在块里隐式链接抽出来成表显式链接FAT。4.5 FAT 文件分配表把链子搬到表里链接分配把指针藏在每个块里取一次读两次盘太慢。改进把链子抽出来单独放一张表——这就是FATFile Allocation Table文件分配表。FAT 表里每个表项对应一个磁盘块表项内容 “下一块的块号”。找文件目录里记首块号 → 查 FAT 表顺着链走读 FAT 就能定位任意一块比藏在块里快。优点相对链接分配随机访问快先查表再读块缺点FAT 表本身占空间且系统启动要把整张表读进内存。考点FAT 属于显式链接——链子不再藏在块里而是显式存在表里FAT32 的名字就是这么来的。✅你该带走什么FAT 的思想是把下一块在哪从每个块里抽出来、统一放进一张表——先查表再读块随机访问就快多了这是显式链接的典型代表。4.6 索引分配查目录索引直达任意块索引分配 为每个文件建一个索引块里面按顺序登记该文件所有块号。找文件 先读索引块 → 直接得到第 N 块在哪 → 随机访问 O(1)。优点支持随机访问扩展只在索引块末尾加一项。缺点小文件也要占一个索引块浪费文件特别大时一个索引块装不下所有块号需要多级索引见 4.7、4.8。考点现代文件系统几乎都用索引分配或其变体inode 就是索引思想的实现。考试的计算题就落在这里。✅你该带走什么索引分配给每个文件配一张索引块登记所有块号先读索引再读数据、随机访问 O(1)代价是小文件也要占一个索引块。4.7 索引节点 inode文件的户口本inodeindex node索引节点 一个文件专属的小结构体记录文件的元数据文件大小、权限、属主、时间戳以及指向数据块的地址数组。地址数组分两段直接块地址前 N 个槽直接放块号比如前 12 项直接指向 12 个数据块。间接块地址后面几个槽不指向数据块而是指向索引块——一级间接指向一个装满块号的块块号太多一级也不够就再挂二级间接指向装索引块块号的块三级以此类推。考点inode 的地址结构是软考综合科目的高频计算题考文件最大能多大见 4.8。✅你该带走什么inode 是文件的户口本——记大小、权限、属主、时间戳和数据块地址地址槽先放直接块号不够就挂一级、二级索引块这就是多级索引的由来。4.8 文件最大能多大——索引文件大小的计算这是本篇最值的分。套路固定三步第一步算出一个索引块能装多少个块号 索引块大小 ÷ 块号大小。第二步分别算各级能指到的数据块数直接块12 项 → 直接覆盖 12 个数据块一级间接1 个索引块 → 能装 K 个块号 → 覆盖 K 个数据块二级间接K 个索引块 → 覆盖 K × K 个数据块第三步总大小 12 K K²× 块大小。例软考经典题块大小 4KB块号用 4 字节32 位inode 有 12 个直接地址 1 个一级间接 1 个二级间接。一个索引块能装块号数4KB ÷ 4B 1024 个直接覆盖12 × 4KB 48KB一级间接覆盖1024 × 4KB 4MB二级间接覆盖1024 × 1024 × 4KB 4GB文件最大 ≈ 4GB 4MB 48KB ≈ 4.00GB考点题眼就两个——“块号占几个字节”决定 K和几级间接决定次方。K 算错全盘皆输先把除法写清楚。考点延伸教材未展开这套三步算法教材 2.3.4 正文只讲了 inode 索引结构的概念没有给计算公式。计算口径来自真题考法——2014、2016 年系统架构设计师上午真题都考过索引块大小 ÷ 块号大小这个 K 值2016 真题口径索引块 4KB、地址项 4B4096÷41024也是 Unix inode 多级索引操作系统经典教材的标准做法。✅你该带走什么文件最大就三步——先算一个索引块装几个块号 K索引块大小÷块号大小再算各级覆盖直接 K K²最后乘块大小。两个题眼块号占几个字节、几级间接。4.9 位示图空闲空间一张图位示图bitmap 用一个二进制位代表一个磁盘块的状态0 空闲1 已占用。所有位排成一张表就是位示图。分配块查位示图找第一个 0置 1返回对应块号。释放块把对应位置 0。计算题套路高频磁盘共有 N 块字长 W 位常见 32 位问位示图需要几个字答⌈N ÷ W⌉ 个字不够整除向上取整。例磁盘 1000 块字长 32 位 → 1000 ÷ 32 31.25 →向上取整 32 个字。反过来也考给块号 i问它在第几个字的第几位 → 第 ⌈i ÷ 32⌉ 个字从 1 数第 (i-1) % 32 1 位。考点整除取整、字长 32 这两个数字要刻进脑子。考点延伸教材未展开位示图块数 ÷ 字长的计算教材正文同样只讲概念不给公式但真题反复考——2020 年架构师300MB÷4KB76800 块÷32 位2400 字、2023 年软件设计师512GB÷4MB131072 块÷64 位2048 字都是同口径。✅你该带走什么位示图一个二进制位代表一块盘的状态0 空 1 占分配找第一个 0、释放置 0要几个字⌈块数÷字长⌉反向问某块在第几个字第几位⌈i÷32⌉、余数定位。4.10 空闲链表和成组链接除了位示图还有两种空闲空间管理法空闲链表把空闲块串成链表分配取头、释放挂尾。简单但每块都要存指针且链一断就乱。成组链接Unix 常用空闲块分组成组头块记录下一组空闲块号分配在组内找。省内存、管理快是软考对 Unix 的经典考点。考点位示图 成组链接是考试最常出现的两种成组链接记住分组管理、组头记账八个字。把成组链接展开一点假设磁盘 1000 个空闲块按每 100 块一组分成 10 组。每一组的最后一块不存数据而是记下一组 100 个块号内存里只要常驻第一组的组头信息分配时在内存找空闲块这一组用完再读下一组。好处内存开销小不用把整张表读进来、分配释放都在组内快速完成所以 Unix 类系统长期用它。考题如果给成组链接 分配一块/释放一块的小问思路就是看组头还有没有空闲块有就用没有就换组。✅你该带走什么空闲空间除了位示图还有两条路——空闲链表简单但指针占位、断链就乱和成组链接分组组头记账内存开销小Unix 经典成组链接记住看组头、有就用、没就换组。4.11 目录结构单级、两级、树形目录 把文件按名字组织起来的结构。三代演进单级目录所有文件平铺一层。找起来快但不能重名文件一多就乱一个班所有人作业都叫作业.doc就崩了。两级目录主目录用户表 每个用户自己的子目录。解决了重名但一个用户内部还是平铺。树形目录目录套目录任意多层。现代操作系统都用树形——查找靠路径名如/home/xiaoyu/docs/11-文件系统.md从根目录一路往下。考点树形目录 路径解析是常识考点很少单独出大题但概念题会拿来和三道分配方式混着考。✅你该带走什么目录演进是三代——单级不能重名→ 两级用户间隔离→ 树形目录套目录现代系统标配找文件靠路径名从根一路往下。4.12 FCB 和目录项文件的身份证FCBFile Control Block文件控制块 目录里每个条目对应的结构体记录文件名、类型、大小、物理块位置、权限、时间。目录就是 FCB 的集合。文件被打开 把它的 FCB 读进内存建立打开文件表条目。考点FCB 与 inode 的区别——FCB 是目录里的身份证含名字、位置inode 是文件本体户口本含元数据 数据块地址现代系统如 ext4目录项只存文件名 inode 号数据都进 inode这样目录小、查得快。✅你该带走什么FCB 是目录里的身份证文件名类型大小位置权限时间inode 是文件本体户口本元数据数据块地址现代系统目录项只留文件名inode 号轻量好查。4.13 软链接和硬链接硬链接两个目录项指向同一个 inode本质是同一个文件多个名字。删一个名只要还有别的名字文件还在。不能跨文件系统inode 号是局部的。软链接符号链接目录项里存的不是 inode 号而是指向哪个路径的字符串类似快捷方式。原文件删了软链接就悬空失效。考点硬链接删原文件文件还在inode 引用计数软链接删原文件链接失效——对比题爱考。✅你该带走什么硬链接同一个 inode 起多个名字删一个名只要还有名字文件就在且不能跨文件系统软链接存路径的快捷方式原文件没了它就悬空。4.14 常见文件系统一句话FAT32链式 FAT 表兼容性好文件最大 4GBU 盘常用。NTFSWindows索引思想 日志 权限文件大小几乎无上限。ext4Linuxinode 多级索引 日志文件可到 16TB 级。考点一般只考概念归属不考具体数字记住FAT 链式、NTFS/ext4 索引式即可。✅你该带走什么文件系统记归属不记数字——FAT32 是链式FAT 表U 盘常见NTFS/ext4 都是索引式带日志、权限、多级索引ext4 是 inode 思想的代表。5. 手把手演示演示 1算索引文件最大大小三步法某文件系统块大小 4KB块号 4 字节inode 含 12 个直接地址、1 个一级间接、1 个二级间接。求单个文件最大多少第 1 步一个索引块能装的块号数 4KB ÷ 4B 1024 个K1024第 2 步各级覆盖数据块数直接12 块一级间接1024 块二级间接1024 × 1024 块第 3 步总大小 12 1024 1024²× 4KB 12×4KB 1024×4KB 1024×1024×4KB 48KB 4MB 4GB ≈ 4.00GB对照检查4GB 是 2³⁰×4? 不——4KB×1024×1024 4×1024×1024 KB 4GB正确。K² 项是绝对大头一级间接的 4MB 常被漏算写题时三项都列出来。演示 2位示图要几个字磁盘共 1500 块字长 32 位位示图最少需要多少字1500 ÷ 32 46.875 →向上取整 47 个字。反向位示图占 64 个字、字长 32 位磁盘最多多少块64 × 32 2048 块。演示 3树形目录找路径文件/root/docs/11-文件系统.md的查找过程根目录root→ 子目录docs→ 文件11-文件系统.md。每一步在目录里做一次名字匹配 FCB/目录项命中就往下找不到报文件不存在。6. 真题精讲说明以下为改编真题依据近 5 年软考综合科目文件系统考点的常见命题口径改编非原卷原文另有出处标注见本篇题库。题 1索引文件最大大小改编真题某系统块大小 1KB块号 2 字节文件索引节点含 10 个直接地址、1 个一级间接地址。问单个文件最大约多少解析索引块装块号数 1KB ÷ 2B 512 个。直接10 × 1KB 10KB一级间接512 × 1KB 512KB最大 ≈522KB≈0.5MB答案约 522KB。易错点块号 2 字节时 K512别套 1024。题 2位示图字数改编真题磁盘容量 200MB每块 4KB字长 32 位位示图需要多少字解析块数 200MB ÷ 4KB 200 × 1024 ÷ 4 51200 块51200 ÷ 32 1600 字。答案1600 字。易错点先把容量换成块数再除以字长单位换算MB→KB出错最冤。题 3分配方式概念辨析改编真题下列关于文件分配方式的说法正确的是____。A. 连续分配支持随机访问因此最适合频繁改动的文件B. 链接分配将链式指针显式存于文件分配表中随机访问性能优于隐式链接C. 索引分配最大的缺点是容易产生外部碎片D. 连续分配在文件增长时可以原地扩展解析A 错——连续分配虽然顺序访问快但频繁改动会造成碎片、扩展要搬家所以不适合频繁改动的文件B 对——显式链接FAT把指针放进表里查表即可定位随机访问比块内藏指针的隐式链接快C 错——索引分配恰恰没有外部碎片代价是索引块本身占空间D 错——连续分配文件增长受限于后方连续空间往往要整块搬迁。答案B。7. 图解图 1三种分配方式对比图 1同一批磁盘块三种摆法——连续分配挨着放、顺序读最快链接分配块里藏指针串成链只能一跳一跳走索引分配先查索引块任意块都能直达。图 2inode 多级索引结构图 2inode 的地址表怎么撑起大文件——12 个直接块 → 48KB一级间接 → 4MB二级间接 → 4GB块号 4B、块 4KB所以一个索引块正好装 1024 个块号。8. 自测五题连续分配最大的缺点是什么答外部碎片 扩展难哪种分配方式支持随机访问答索引分配FAT 显式链接也可以FAT 属于链接分配的哪种改进答显式链接——链子抽到表里块 4KB、块号 4B一个索引块能装多少块号答1024 个磁盘 800 块、字长 32 位位示图几个字答⌈800÷32⌉25 字9. 本篇题库第 1 题自编 · 易文件系统中用户看到的文件内容连续属于____。A. 物理结构 B. 逻辑结构 C. 目录结构 D. 索引结构答案B。解析逻辑结构是用户视图物理结构是磁盘上的真实摆放。回指概念讲解 4.1。第 2 题自编 · 易顺序访问最快、但容易产生外部碎片的是____。A. 连续分配 B. 链接分配 C. 索引分配 D. FAT答案A。解析连续分配磁头顺读最快代价是碎片和扩展难。回指概念讲解 4.3。第 3 题自编 · 中FAT 把链式指针集中存放到____。A. 数据块 B. 文件分配表 C. inode D. 目录项答案B。解析FAT显式链接链子不在块里而在表里。回指概念讲解 4.5。第 4 题改编真题 · 中块大小 1KB、块号 2Binode 有 8 个直接地址 1 个一级间接地址文件最大约____。A. 8KB B. 520KB C. 512KB D. 5200KB答案B。解析K1KB÷2B5128×1KB 512×1KB 8KB512KB 520KB。回指概念讲解 4.8 演示 1同 2014/2016 年真题块大小 ÷ 块号大小口径。第 5 题改编真题 · 中磁盘 300MB、块 4KB、字长 32 位位示图需____字。A. 2400 B. 24576 C. 75000 D. 24000答案A。解析块数300×1024÷47680076800÷322400。回指概念讲解 4.9 演示 2同 2020 年真题容量 ÷ 块大小 ÷ 字长口径。第 6 题自编 · 难硬链接与软链接的区别下列说法正确的是____。A. 硬链接删原文件后链接失效 B. 软链接本质是同一个 inode 的多个名字C. 硬链接指向同一个 inode删原文件后文件仍在 D. 软链接可以跨文件系统硬链接也可以答案C。解析硬链接共享 inode引用计数未清零文件就在软链接存路径可跨文件系统。回指概念讲解 4.13。第 7 题自编 · 难简述位示图的分配与释放过程。参考答案分配——查位示图找第一个 0 位置 1算出对应块号交给上层释放——把该块对应位置 0。回指概念讲解 4.9。10. 本篇技术英语英文中文一句话解释例句/考点file system文件系统管理文件存储与检索的系统Linux 常用 ext4 file systemdirectory目录文件名的组织容器树形root directory 根目录inode / index node索引节点记录文件元数据与块地址inode 存直接间接地址bitmap位示图一位一块的空闲空间图bitmap 计算块数÷字长FAT文件分配表显式链接的链式分配表FAT32 的 FAT 就是它FCB文件控制块目录项里的文件身份证FCB 含名字/大小/位置11. 必背清单逻辑结构用户视图物理结构磁盘视图两者靠分配方式映射。三种分配连续快、碎片、难扩展/ 链接链式、慢、易断/ 索引随机访问、最常用。FAT 显式链接把链子抽进表随机访问快。inode 文件户口本直接块 一级间接 二级间接。索引文件最大 直接块数 K K²× 块大小K 索引块大小 ÷ 块号大小。位示图字数 ⌈总块数 ÷ 字长⌉字长常为 32。空闲管理三法位示图 / 空闲链表 / 成组链接Unix。目录三代单级不能重名→ 两级 → 树形现代标准。FCB 在目录里记名字位置inode 记元数据块地址。硬链接同 inode删名文件还在软链接存路径原文件删了即失效。FAT32 链式、NTFS/ext4 索引式。计算题先换算单位再套公式K 算错全盘皆输。12. 速记表 复习计划 下篇预告 互动提问速记表考点一句话口诀三种分配连续快怕碎链接慢怕断索引最全能FAT链子不进块进表叫 FAT索引文件大小直接 K K²× 块大小位示图总块数 ÷ 字长向上取整目录单级重名两级分户树形到底硬/软链接硬链同户口软链指路径⚠️使用说明口诀/速记表在本篇学完后用于复习收口——每句背后对应一节完整概念如连续快怕碎 4.3“位示图总块数÷字长” 4.9别一上来就背。正确顺序先读 4.1~4.14 概念 → 动手算演示 1、2 → 最后用口诀收口。复习计划中频篇1~2 天第 1 天概念讲解 4.1~4.10 演示 1、2 亲手算一遍 必背 1~8 条第 1~2 天晚自测五题 题库 7 题 速记表默背第 7 天回看只看必背 9~12 速记表再算一次索引题和位示图题下篇预告下一篇讲中断与总线篇 12计算机系统其余专题——CPU 怎么被打断、数据在总线上怎么传同样是有计算、有套路的一课。互动提问你平时用的 U 盘是 FAT32 还是 NTFS试试用本篇的位示图公式算一下你家磁盘 500GB、块 4KB位示图要多少字答案在评论里对算错的同学回来重看 4.9
阅读完成 · 觉得有帮助?
咨询建站