408真题解析-2009-30-操作系统-文件控制块

一 真题2009-30

30题. 文件系统中,文件访问控制信息存储的合理位置是()。

A. 文件控制块

B. 文件分配表

C. 用户口令表

D. 系统注册表

二 题目要素解析

对象: 文件系统中的访问控制信息(Access Control Information)。

  • 即:谁能读这个文件?谁能写?谁能执行?(如 rwx 权限)。

目的: 寻找这些信息在系统中存储的合理位置

核心概念: 需要理解文件系统中各个数据结构的职责分工。

三 哔哔详解

A. 文件控制块(FCB, File Control Block) ✅✅✅

  • 定义 :操作系统为每个文件建立的数据结构,用于存储文件的元数据(metadata)
  • 典型内容包括:
    • 文件名
    • 文件类型
    • 文件大小
    • 物理地址(如索引节点号、起始块)
    • 访问控制信息:所有者、组、权限位(rwx)、ACL 等
  • 现实对应:
    • UNIX/Linux 中的 i-node(索引节点)
    • Windows NTFS 中的 MFT(主文件表)记录
  • 结论 :✅ 访问控制信息就存在 FCB 或其等价结构中

B. 文件分配表(FAT, File Allocation Table) ❌

  • 作用 :仅记录磁盘块的链接关系(哪个块是下一个),用于实现链式分配
  • 内容:纯地址指针(如 FAT[100] = 200 表示第 100 块后是 200 块)
  • 不包含:文件名、权限、所有者等任何语义信息
  • 典型系统:FAT12/16/32(DOS、早期 Windows)
  • 结论 :❌ 与访问控制无关

C. 用户口令表 ❌

  • 作用 :存储用户登录认证信息(如用户名、加密口令)
  • 位置 :通常在 /etc/shadow(Linux)或 SAM 数据库(Windows)
  • 用途 :用于用户身份验证 ,而非文件级权限控制
  • 注意 :虽然文件权限会引用"用户ID",但权限本身不存于此表
  • 结论 :❌ 不是文件访问控制信息的存储位置

D. 系统注册表(Windows 特有) ❌

  • 作用 :Windows 的全局配置数据库,存储系统/应用设置
  • 不用于:存储单个文件的访问控制列表(ACL)
  • 文件 ACL 实际存储位置 :NTFS 的 MFT 记录中(属于文件元数据)
  • 结论 :❌ 注册表 ≠ 文件元数据存储区

四 参考答案

参考答案 A

五 考点精析

5.1 核心考点:FCB 的组成

FCB 是文件系统中最重要的概念之一,它通常包含以下三类信息:

基本信息: 文件名、文件类型、文件大小。

存取控制信息: 所有者(UID)、组(GID)、访问权限(读 / 写 / 执行)。

物理地址信息: 指出文件在磁盘上的位置(如:连续结构的起始块号和长度;链式结构的首块号;索引结构的索引块号)。

5.2 FCB 与 目录项 (Dirent) 的关系

早期文件系统: 目录表就是一个 FCB 的列表。每个目录项直接包含完整的 FCB。

  • 缺点: 当文件很多时,目录表非常大,查找速度慢;文件复制时 FCB 也要复制,导致一致性问题。

现代文件系统(Unix/Linux): 引入了索引节点 (inode)

  • 目录项 (Directory Entry): 只包含 文件名 + inode 号
  • FCB (inode): 包含除了文件名以外的所有其他信息(权限、地址、时间等)。
  • 优点: 多个目录项可以指向同一个 inode(实现硬链接),节省空间,查找更快。
  • 注意: 无论结构如何变化,"访问控制信息" 始终属于 FCB/inode 的一部分,而不属于目录项。

5.3 访问控制矩阵与访问控制表

访问控制矩阵 (Access Control Matrix): 这是一个理论模型。行代表用户,列代表文件,矩阵元素代表权限。

  • 缺点: 稀疏矩阵,浪费空间。

访问控制表 (ACL - Access Control List): 这是实际系统(如 Windows, Linux)采用的方式。它是矩阵的

  • 实现: 将每个文件的授权用户列表存储在该文件的 FCB 中。这就是为什么 FCB 必须存储访问控制信息的理论依据。

5.4 做题技巧

看到 "文件属性"、"权限"、"创建时间"、"物理地址" → 选 FCB

看到 "磁盘块链接关系"、"FAT" → 选 文件分配表

看到 "文件名与 inode 映射" → 选 目录项

5.5 UNIX i-node 与访问控制

在 Linux/ext 系列文件系统中:

  • 每个文件对应一个 i-node

  • i-node 中包含:

    复制代码
    uid_t  i_uid;   // 所有者
    gid_t  i_gid;   // 所属组
    mode_t i_mode;  // 权限位(如 0644)

    ls -l 显示的权限(如 -rw-r--r--)就来自 i-node

    i-node 是 FCB 的具体实现

5.6 FCB/FAT/目录项 对比

数据结构 作用 是否存文件权限
FCB / i-node 文件元数据 ✅ 是
FAT 磁盘块链接 ❌ 否
目录项 文件名 → FCB 指针 ❌(只存名字和 inode 号)
用户口令表 用户认证
位示图 / 空闲块表 空闲磁盘管理

六 考点跟踪

暂无

说明 :本文内容基于公开资料整理,参考了包括但不限于《数据结构》(严蔚敏)、《计算机操作系统》(汤小丹)、《计算机网络》(谢希仁)、《计算机组成原理》(唐朔飞)等国内高校经典教材,以及其他国际权威著作。同时,借鉴了王道、天勤、启航等机构出版的计算机专业考研辅导系列丛书 中的知识体系框架与典型题型分析思路。文中所有观点、例题解析及文字表述均为作者结合自身理解进行的归纳与重述,未直接复制任何出版物原文。内容仅用于学习交流,若有引用不当或疏漏之处,敬请指正。

相关推荐
tobias.b1 天前
408真题解析-2010-9-数据结构-折半查找的比较次数
java·数据结构·算法·计算机考研·408真题解析
tobias.b1 天前
408真题解析-2010-12-计组-程序执行时间
单片机·嵌入式硬件·fpga开发·计算机考研·408真题解析
tobias.b2 天前
408真题解析-2010-8-数据结构-拓扑排序
数据结构·算法·计算机考研·408真题解析
tobias.b2 天前
408真题解析-2010-10-数据结构-快速排序
java·数据结构·算法·计算机考研·408真题解析
tobias.b2 天前
408真题解析-2010-11-数据结构-基础排序算法特征
数据结构·算法·排序算法·计算机考研·408真题解析
tobias.b3 天前
408真题解析-2010-4-数据结构-平衡二叉树插入
数据结构·计算机考研·408真题解析
tobias.b3 天前
408真题解析-2010-5-数据结构-树的结点数量计算
数据结构·算法·408真题解析
tobias.b4 天前
408真题解析-2010-3-数据结构-线索二叉树
数据结构·链表·计算机考研·408真题解析
tobias.b4 天前
408真题解析-2010-2-数据结构-双端队列
数据结构·计算机考研·408真题解析
tobias.b4 天前
408真题解析-2010-1-数据结构-栈基础操作
数据结构·408真题解析