资源描述
课 程 内 容 ( 48学 时 ) 概 述 ( 第 1、 7章 ) 6学 时 进 程 管 理 ( 第 2、 3章 ) 12学 时 主 存 管 理 ( 第 4章 ) 8学 时 设 备 管 理 ( 第 5章 ) 4学 时 文 件 系 统 ( 第 6章 ) 8学 时 实 例 ( 第 10章 ) 6学 时总 共 44学 时 , 留 4学 时 机 动 如 何 使 用 磁 盘 存 取 数 据 写 盘 的 过 程文 件系 统 设 备驱 动1、 哪 几 个磁 盘 块 分给 它 ?2、 在 目录 里 面 登记 写 磁 盘 的 某 柱面 、 某 磁 道 、某 扇 区缓 冲 区工 作 区文 件 路 径 名 无 关层 读 盘 的 过 程文 件系 统 设 备驱 动磁 盘 块 访 问 磁 盘 的 某柱 面 、 某 磁 道 、某 扇 区缓 冲 区工 作 区文 件 路 径 名 几 个 概 念 文 件 路 径 名 有 啥 含 义 ?d:/programfile/qq/qq.exe 文 件 目 录 文 件 系 统 文 件 文 件是 指 由 创 建 者 所 定 义 的 、 具 有 文 件 名 的 一 组 相关 元 素 的 集 合 , 可 分 为 有 结 构 文 件 和 无 结 构 文件 两 种现 在 流 行 无 结 构 文 件 ( 流 式 文 件 )描 述 文 件 的 数 据 结 构 文 件 描 述 符 ( 文 件 控 制 块 FCB) 图 6-15 MS-DOS的 文 件 控 制 块 文件名 扩展名 属性 备用 时间 日期 第一块号 盘块数 FCB中 存 放 的 内 容 称 为 文 件 的 属 性 , 属 性 可 以 包 括 : (1) 文 件 类 型 。 可 以 从 不 同 的 角 度 来 规 定 文 件 的 类 型 , 如源 文 件 、 目 标 文 件 及 可 执 行 文 件 等 。 (2) 文 件 长 度 。 文 件 长 度 指 文 件 的 当 前 长 度 , 长 度 的 单 位可 以 是 字 节 、 字 或 块 , 也 可 能 是 最 大 允 许 的 长 度 。 (3) 文 件 的 物 理 位 置 。 该 项 属 性 通 常 是 用 于 指 示 文 件 在 哪一 个 设 备 上 及 在 该 设 备 的 哪 个 位 置 的 指 针 。 (4) 文 件 的 建 立 时 间 。 这 是 指 文 件 最 后 一 次 的 修 改 时 间 等 。 (5) 文 件 长 度 , 指 以 字 节 为 单 位 的 文 件 长 度 。 (6) 文 件 连 接 计 数 , 表 明 在 本 文 件 系 统 中 所 有 指 向 该 (文 件的 )文 件 名 的 指 针 计 数 。 (7) 文 件 存 取 时 间 , 指 本 文 件 最 近 被 进 程 存 取 的 时 间 、 最 近 被 修 改 的 时 间 及 索 引 结 点 最 近 被 修 改 的 时 间 。 目 录 FCB存 放 在 目 录 里 目 录 可 以 是 一 个 文 件 ( 目 录 文 件 )目 录 文 件 是 存 放 文 件 属 性 信 息 的 文 件 目 录 也 可 以 是 磁 盘 上 某 个 特 定 的 区 域 ( 根目 录 )存 放 文 件 属 性 信 息 的 数 据 结 构 ( 在 磁 盘 上 的 ) 目 录 树属 性 分 级 存 放 目 录 分 级 好 处不 同 目 录 下 可 以 同 名可 以 快 速 检 索利 于 保 护 和 共 享 图 6-18 两 级 目 录 结 构 用 户 名WangZhangGao 指 向 子 目 录 指 针 Wang用户目录AlphaTest Alpha TestReportTestZhang用户目录 ReportTestGao用户目录BetaDeviceMisx Beta DeviceMisx 图 6-19 多 级 目 录 结 构 A B CF E D13A B D2 G A4A C5 6 710 11 J N K12 J M K13 A H F1415 16 b 17 18 19 20 21 a8 9 5 文 件 系 统 什 么 是 文 件 系 统 文 件 系 统 是 操 作 系 统 中 负 责 管 理 和 存 取 文 件 信 息 的 软 件 机 构 。 管 理 文 件 所 需 的 数 据 结 构 (如 目 录 表 、 文 件 控 制 块 、 存 储 分 配 表 ) 管 理 程 序 一 组 操 作 文 件 系 统 的 功 能从 用 户 角 度 看 文 件 系 统 实 现 了 “ 按 名 存 取 ” 的 功 能从 系 统 角 度 看 构 造 文 件 结 构 提 供 文 件 共 享 功 能辅 存 空 间 管 理 提 供 存 取 文 件 的 方 法文 件 保 护提 供 一 组 文 件 操 作 命 令 图 6-2 文 件 系 统 模 型 文 件 系 统 文 件 系 统 文 件 子 系 统一 个 文 件 系 统 可 以 管 理 几 个 文 件 子 系 统磁 盘 分 区 , 每 个 分 区 上 安 装 一 个 文 件 子 系 统文 件 子 系 统 在 格 式 化 的 时 候 建 立 每 个 文 件 子 系 统 管 理 的 方 式 不 一 样FAT32NTFSext3 用 户 接 口 文 件 操 作OpenReadWriteClose 目 录 操 作 外 存 分 配 方 式 文 件 在 磁 盘 上 存 放 的 方 式必 须 连 续 存 放不 必 连 续 存 放 连 续 分 配 策 略 文 件 的 物 理 结 构 为 连 续 文 件 随 机 访 问 不 连 续 存 放 之 链 接 定 位 文 件 的 物 理 结 构 为 链 接 文 件 只 能 顺 序 访 问 不 连 续 存 放 之 索 引 分 配 文 件 的 物 理 结 构 为 索 引 结 构 随 机 访 问 为 了 快 速 访 问 , 又 易 于 更 新 , 当 数 据 为 以下 形 式 时 , 你 选 用 何 种 文 件 组 织 方 式 。 (1)不 经 常 更 新 , 经 常 随 机 访 问 ; (2)经 常 更 新 , 经 常 按 一 定 顺 序 访 问 ; (3)经 常 更 新 , 经 常 随 机 访 问 ; 假 设 一 个 文 件 在 磁 盘 占 3个 磁 盘 块 , 讨 论 3种 文 件 结 构 读 文 件 最 后 一 块 的 访 问 磁 盘 的次 数 文 件 的 结 构逻 辑 结 构记 录 式流 式物 理 组 织连 续 ( 顺 序 ) 文 件随 机 文 件 (索 引 文 件 )串 联 ( 链 接 ) 文 件文 件 存 取 方 法顺 序 存 取直 接 ( 随 机 ) 存 取R0 R1 R2 R3 R4 R5 链 接 文 件 的 代 表FAT文 件 系 统 不 连 续 存 放 之 链 接 定 位 文 件 的 物 理 结 构 为 链 接 文 件 只 能 顺 序 访 问 FAT模 式 数 据 结 构 总 图 DOS FAT表 FAT模 式 下 的 读 文 件 过 程Fd=Open()读 文 件(fd,500,100,m)根 据 fd读 f1的 内 存 文 件 描 述 符 得到 f1的 起 始 扇 区 号 ( 22#)根 据 要 读 的 起 止 位 置 , 算 出逻 辑 扇 区 号 ( 1,2)读 22#扇 区 入 内 存缓 冲 区 读 22#扇 区 在 FAT表 中 对 应 行 得 到 下一 个 扇 区 号 ( 55#)读 缓 冲 区 相 应 字 节 到 目 标 地 址 m读 55#扇 区 入 内 存缓 冲 区读 缓 冲 区 相 应 字 节 到 目 标 地 址 m+? 成 功 返 回 MS-DOS系 统 只 有 一 张 文 件 分 配 表 FAT16,在 FAT的 每 个 表 项 中 存 放 下 一 个 盘 块 号 。 对于 1.2M的 软 盘 , 假 设 盘 块 的 大 小 为 512字 节 ,则 FAT表 的 容 量 为 _。 索 引 文 件 的 的 代 表Ext3文 件 系 统 不 连 续 存 放 之 索 引 分 配 文 件 的 物 理 结 构 为 索 引 结 构 随 机 访 问 图 6-13 两 级 索 引 分 配 012 10510625435635798510510625474035635711259853607401125 主 索 引 360第 二 级 索 引 磁 盘 空 间 图 6-14 混 合 索 引 方 式 modeowners (2)time stamps (3)sizeblock counti.addr (0)i.addr (1)direct blockssingle indirectdouble indirecttriple indirect datadatadatadata datadata datadatadatadata 某 文 件 系 统 采 用 索 引 定 位 , 使 用 “ 直 接 指针 +可 变 重 数 的 多 重 索 引 ” 模 式 , 索 引 结 构中 可 以 存 放 8个 直 接 地 址 , 一 、 二 重 间 接 地址 各 一 个 , 盘 块 长 度 为 4KB, 盘 块 地 址32bit。该 文 件 系 统 可 以 管 理 的 最 大 文 件 有 多 少 字 节 ?一 个 20MB的 文 件 占 用 多 少 个 数 据 盘 块 和 索 引盘 块 ( 指 存 放 索 引 表 的 块 ) ? ext磁 盘 划 分至 少 4个 部 分 , 其 中 引 导 块 永 远 是 介 质 上 的 第 一 个 纪 录 , 超级 块 永 远 是 介 质 上 的 第 二 个 纪 录 。 其 它 部 分 的 大 小 取 决 于磁 盘 大 小 等 参 数 , 这 些 参 数 存 在 超 级 块 中 。 EXT文 件 系 统 格 式超 级 块 : 根 目 录 的 位 置 、 i节 点 的 位 置 、 空 白 区 链 头 等信 息 目 录 如 何 加 快 文 件 检 索树 型 目 录当 前 目 录 如 何 实 现 不 同 的 文 件 路 劲 名 访 问 同 一 个 文件 ? 目 录 中 的 FCB分 开 存 放 目 录 检 索线 性 检 索Hash方 法 地 址 =hash( 文 件 名 ) 图 6-20 查 找 /usr/ast/mbox的 步 骤 1 1 4 bin7 dev14 lib9 etc6 usr8 tmp在结点6中查找usr字段根目录 132结点6是/usr的目录 6 1 19 dick30 erik51 jim26 ast45 bal132号盘块是/usr的目录 496结点26是/usr/ast的目录 26 6 64 grants92 books60 mbox81 minik17 src496号盘块是/usr/ast的目录 加 快 检 索 的 办 法 目 录 分 离 前 后 的 比 较l 假 如 一 个 FCB为 64 B, 盘 块 大 小 为 1 KB, 则 每 个 盘 块 中 只能 存 放 16个 FCB; 若 一 个 文 件 目 录 中 共 有 640个 FCB, 需占 用 40个 盘 块 , 故 平 均 查 找 一 个 文 件 需 启 动 磁 盘 20次 。l UNIX系 统 中 一 个 目 录 仅 占 16个 字 节 , 其 中 14个 字 节 是 文件 名 , 2个 字 节 为 i结 点 指 针 。 在 1 KB的 盘 块 中 可 做 64个 目录 项 , 这 样 , 为 找 到 一 个 文 件 , 可 使 平 均 启 动 磁 盘 次 数 减少 到 原 来 的 1/4, 大 大 节 省 了 系 统 开 销 。 如 何 实 现 不 同 文 件 路 径 名 访 问 同 一 个 文 件 ? 链 接硬 链 接软 连 接 (快 捷 方 式 、 符 号 链 接 ) ln file4 file5硬链接 符 号 链 接 ln s /user/f1 /zll/f2 f2文 件 中 的 内 容 为 /user/f1 硬 链 接 与 软 链 接 特 点 硬 链 接 的 优 点 : 实 现 简 单 、 访 问 速 度 快使 用 限 制 :只 允 许 文 件 链 接只 允 许 在 同 一 文 件 系 统 内 进 行文 件 主 删 除 限 制不 合 理 的 记 帐 规 则 软 链 接 的 优 点 : 适 用 范 围 和 灵 活 性 大允 许 目 录 链 接允 许 在 不 同 文 件 系 统 间 进 行文 件 主 自 由 删 除合 理 的 记 帐 规 则 例 题 设 文 件 索 引 节 点 中 有 7个 地 址 项 , 其 中 4个 地 址 项 为 直 接 地址 索 引 , 2个 地 址 项 是 一 级 间 接 地 址 索 引 , 1个 地 址 项 是 二级 间 接 地 址 索 引 , 每 个 地 址 项 大 小 为 4字 节 , 若 磁 盘 索 引块 和 磁 盘 数 据 块 大 小 均 为 256字 节 , 则 可 表 示 的 单 个 文 件的 最 大 长 度 是 ( )A: 33kb B: 519kb C: 1057kb D: 16513kb 31、 设 置 当 前 工 作 目 录 的 主 要 目 的 是 ( ) A: 节 省 外 存 空 间 B: 节 省 内 容 空 间 C: 加 快 文 件 的 检 索 速 度 D: 加 快 文 件 的 读 写 速 度 文 件 存 储 空 间 的 管 理 空 闲 表 法 空 闲 链 表 法空 闲 盘 块 链空 闲 盘 区 链 位 示 图 法 成 组 链 接 法 图 6-21 空 闲 盘 块 表 序 号 第 一 空 闲 盘 块 号 空 闲 盘 块 数 1 2 4 2 9 3 3 15 5 4 2) 存 储 空 间 的 分 配 与 回 收 空 闲 盘 区 的 分 配 与 内 存 的 动 态 分 配 类 似 , 同 样 是 采 用 首次 适 应 算 法 、 循 环 首 次 适 应 算 法 等 。 例 如 , 在 系 统 为 某 新 创建 的 文 件 分 配 空 闲 盘 块 时 , 先 顺 序 地 检 索 空 闲 表 的 各 表 项 ,直 至 找 到 第 一 个 其 大 小 能 满 足 要 求 的 空 闲 区 , 再 将 该 盘 区 分配 给 用 户 (进 程 ), 同 时 修 改 空 闲 表 。 系 统 在 对 用 户 所 释 放 的存 储 空 间 进 行 回 收 时 , 也 采 取 类 似 于 内 存 回 收 的 方 法 , 即 要考 虑 回 收 区 是 否 与 空 闲 表 中 插 入 点 的 前 区 和 后 区 相 邻 接 , 对相 邻 接 者 应 予 以 合 并 。 2 5 .210 715 192 .空 闲 链 表 法 图 6-22 位 示 图 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 1 1 0 0 0 1 1 1 0 0 1 0 0 1 1 0 2 0 0 0 1 1 1 1 1 1 0 0 0 0 1 1 1 3 1 1 1 0 0 0 1 1 1 1 1 1 0 0 0 0 4 16 某 操 作 系 统 的 磁 盘 文 件 空 间 共 有 500块 ,试 画 出 相 应 的 位 示 图 , 并 给 出 申 请 /归 还 一块 的 工 作 流 程 。 磁 盘 的 分 配 与 回 收位 示 图 顺 序 扫 描 位 示 图 , 从中 找 出 一 个 或 一 组 其值 为 “ 0”的 二 进 制 位(“0”表 示 空 闲 时 )。 将 所 找 到 的 一 个 或 一组 二 进 制 位 转 换 成 与之 相 应 的 盘 块 号 。 修 改 位 示 图 将 回 收 盘 块 的 盘 块 号转 换 成 位 示 图 中 的 行号 和 列 号 修 改 位 示 图 。 令mapi,j =0 图 6-23 空 闲 盘 块 的 成 组 链 接 法 100400399301300100300299202201 299 100400399201 301 99079997901790078997801 79997901空闲盘块号栈S.free019899 s-nfree: 98 0 120 1 121 96 145 97 210 卷 资 源 表 filsys s-nfree: 99 0 120 1 121 96 145 97 210 98 150 s-nfree: 100 0 120 1 121 96 145 97 210 98 150 99 152 160#参 看 下 图 , 现 有 某 一 进 程 的 文 件 要 释 放 三 个 物 理块 , 其 块 号 为 150#, 152#, 160#, 试 给 出 其 释 放过 程 和 释 放 后 的 卷 资 源 表 filsys的 状 况 。 其 后 , 又有 一 个 文 件 要 求 分 配 4个 空 闲 块 , 试 给 出 其 分 配过 程 和 分 配 后 的 filsys状 况 : s-nfree: 1 0 160 1 96 97 卷 资 源 表filsys s - n f r e e:100 0 120 1 121 96 145 97 210 98 150 99 152 160# s-nfree: 99 0 120 1 121 96 145 97 210 98 150 s-nfree: 98 0 120 1 121 96 145 97 210 卷 资 源 表filsys 152#150#210# 假 设 硬 盘 的 大 小 为 600M, 装 OS占 用 了 30M,设 置 交 换 区 域 占 用 了 70M, 盘 块 大 小 为 2K,100个 盘 块 为 1组 。 试 用 成 组 链 接 法 画 出 空闲 盘 块 组 织 。 ( 下 标 从 1开 始 ) 磁 盘 的 分 配 与 回 收成 组 链 接 首 先 检 查 空 闲 盘 块 号 栈 是 否 上 锁 ,如 未 上 锁 , 便 从 栈 顶 取 出 一 空 闲 盘块 号 , 将 与 之 对 应 的 盘 块 分 配 给 用户 , 然 后 将 栈 顶 指 针 下 移 一 格 。 若 该 盘 块 号 已 是 栈 底 , 即 S.free(0),这 是 当 前 栈 中 最 后 一 个 可 分 配 的 盘块 号 。 由 于 在 该 盘 块 号 所 对 应 的 盘块 中 记 有 下 一 组 可 用 的 盘 块 号 , 因此 , 须 调 用 磁 盘 读 过 程 , 将 栈 底 盘块 号 所 对 应 盘 块 的 内 容 读 入 栈 中 ,作 为 新 的 盘 块 号 栈 的 内 容 , 并 把 原栈 底 对 应 的 盘 块 分 配 出 去 (其 中 的有 用 数 据 已 读 入 栈 中 )。 然 后 , 分 配 一 相 应 的 缓 冲 区 (作 为 该 盘 块 的 缓 冲 区 )。 最 后 , 把 栈 中 的 空 闲 盘 块 数 减 1并返 回 。 它 是 将 回 收 盘 块 的 盘 块 号 记 入 空 闲盘 块 号 栈 的 顶 部 , 并 执 行 空 闲 盘 块数 加 1操 作 。 当 栈 中 空 闲 盘 块 号 数 目 已 达 100时 ,表 示 栈 已 满 , 便 将 现 有 栈 中 的 100个 盘 块 号 记 入 新 回 收 的 盘 块 中 , 再将 其 盘 块 号 作 为 新 栈 底 。 位 图 : windows 2000/NT 链 表 : 变 种 形 式 ,windows个 人 系 列 、 dos 分 组 链 接 : unix 文 件 子 系 统 实 现 机 制 总 述 一 个 OS通 常 支 持 多 个 文 件 子 系 统 因 此 必 须磁 盘 要 分 区 : 每 个 区 对 应 一 个 文 件 系 统 分区 表OS登 记 整 个 系 统 中 安 装 哪 些 文 件 系 统 文 件子 系 统 安 装 表 , 其 中 存 放 每 一 个 被 安 装 了 的 文件 子 系 统 的 信 息实 现 相 关 的 地 址 映 射实 现 文 件 子 系 统 的 建 立 、 装 卸 等 操 作 linux盘 装 卸 例 安 装 : %ls /user/elephant/d1 f1 txt1 ddd wa %mount /dev/fd0 /user/elephant/d1 %ls /usr/elephant/d1 haha wawa ra 卸 下 : %ls /usr/elephant/d1 haha wawa ra ha %umount /dev/fd0 %ls /user/elephant/d1 f1 txt1 ddd wa FAT文 件 系 统 实 现 机 制 总 瞰 粗 UNIX文 件 系 统 实 现 机 制 总 瞰 w NTFS卷 总 体 结 构NTFS文 件 系 统 NTFS文 件 系 统 文 件 NTFS文 件 系 统 文 件 可 以 分 两 种 元 数 据 文 件 : 构 造 文 件 系 统 的 文 件 , 任 何 权 限 用 户 不 可 访 问 , 不 可修 改 , 用 户 文 件 : 用 户 数 据 NTFS文 件 系 统 元 文 件 功 能$MFT 主 控 文 件 表 本 身$MFTMirr 主 控 文 件 表 的 部 分 镜 像$LogFile 日 志 文 件$Volume 卷 文 件$AttrDef 属 性 定 义 列 表 文 件$Root 根 目 录$Bitmap 位 图 文 件 , 记 录 了 卷 种 簇 的 分 配 情 况$Boot 引 导 文 件 , 记 录 了 用 于 系 统 引 导 的 数 据 情 况$BadClus 卷 的 坏 簇 列 表 文 件 $Quota( NTFS4) 在 早 期 的 NT系 统 中 此 文 件 为 磁 盘 配 额 信 息$Secure 安 全 文 件$UpCase 大 小 写 字 符 转 换 表 文 件$Extend metadata directory 扩 展 元 数 据 目 录$Extend$Reparse 重 解 析 点 文 件$Extend$UsnJrnl 加 密 日 志 文 件$Extend$Quota 配 额 管 理 文 件$Extend$ObjId 对 象 ID文 件 NTFS元 数 据 文 件 NTFS文 件 系 统 主 控 文 件 表 ( MFT) MFT是 NTFS卷 结 构 的 核 心 , 系 统 通 过 MFT来 确 定 文 件 在磁 盘 上 的 位 置 以 及 文 件 的 所 有 属 性 , 包 括 小 文 件 的 内 容 。 MFT由 许 多 文 件 记 录 ( File Record) 组 成 , 在 NTFS卷 中每 个 文 件 至 少 有 一 个 MFT, 有 些 文 件 的 文 件 属 性 如 果 在 一个 MFT中 不 能 完 全 容 纳 则 可 能 有 多 个 MFT。 可 以 看 出 MFT是 NTFS中 最 为 重 要 的 系 统 文 件 , 它 包 含 了NTFS分 区 中 所 有 文 件 的 信 息 。 NTFS文 件 系 统文 件 索 引 的 结 构 标 准 索 引 头 ( 在 每4KB的 一 个 索 引 块 中有 一 个 文 件 索 引 的 标准 索 引 头 ) 索 引 项 ( 每 个 索 引 项记 录 了 一 个 文 件 或 子目 录 的 文 件 名 、 该 文件 MFT号 、 父 目 录MFT号 等 信 息 ) FS原 理 与 实 际 系 统 数 据 结 构 对 照通 用 称 谓 Windows 个 人 系列 /DOS UNIX( Solaris等 ) /LINUX Windows2000/NT 外 存 BPB Super Block 元 数 据 文 件盘 卷 总 信 息 内 存 DPB 安 装 表设 备 目 录 i 结 点 主 控 文 件 表外存 文 件 目 录 目 录 文 件 , FAT 目 录 文 件 目 录 文 件文 件 描 述 信息 内 存 系 统 打 开 文 件 表(SFT)(即 文 件 打开 信 息 表 ) 活 动 i 结 点 表 , 用户 文 件 打 开 表 , 系统 文 件 打 开 表 句 柄 表 , 流控 制 块 , 文件 控 制 块缓 冲 区 DBF 缓 冲 池当 前 目 录 信 息 CDS其 它 块 设 备 表 , 开 关 表
展开阅读全文