- 1、本文档共34页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
操作系统概念 第十二章:文件系统实现 本章主要内容 文件系统结构 文件系统实现 目录实现 分配方法 空闲空间管理 恢复 12.1 文件系统结构 磁盘提供大量的外存空间来维持文件系统,磁盘的两个特点,使其成为存储多个文件的方便媒介 可以原地重写;可以从磁盘上读一块,修改该块,并将它写回到原来的位置 可以直接访问磁盘上的任意一块信息。(随机或顺序方式) 为了提供对磁盘的高效且便捷的访问,操作系统通过文件系统来轻松地存储、定位、提取数据。 文件系统的两个设计问题 如何定义文件系统对用户的接口 创建数据结构和算法来将逻辑文件系统映射到物理外存设备上 文件系统按层来组织(见下页) 分层设计的文件系统 I/O控制 由设备驱动程序和中断处理程序组成,实现内存与磁盘之间的信息转移 基本文件系统 向合适的设备驱动程序发送一般命令就可对磁盘上的物理块进行读写 文件组织模块 知道文件及其逻辑块和物理块。 空闲空间管理器 逻辑文件系统 管理元数据:文件系统的所有结构数据,而不包括实际数据(或文件内容) 根据给定符号文件名来管理目录结构 逻辑文件系统通过文件控制块(FCB)来维护文件结构 12.2 文件系统实现 本节深入分析用于实现文件系统的结构和操作 磁盘结构 在磁盘上,文件系统可能包括如下信息: 如何启动所存储的操作系统 总的块数 空闲块的数目和位置 目录结构以及各个具体文件等 磁盘结构包括 引导控制块(boot control block):通常为分区的第一块。如果该分区没有OS,则为空。(其他名称:引导块(Linux)、分区引导扇区(WindowsNT)) 分区控制块(partition control block):包括分区详细信息,如分区的块数、块的大小、空闲块的数量和指针、空闲FCB的数量和指针等(亦称为超级块(Linux)、主控文件表(WindowsNT)) 目录结构:用来组织文件 文件控制块(FCB):包括很多文件信息,如文件许可、拥有者、大小和数据块的位置等 一个典型的文件控制块 内存中的结构 内存分区表:包含所有安装分区的信息 内存目录结构:保存近来访问过的目录信息(对安装分区的目录,可以包括一个指向分区表的指针) 系统范围的打开文件表:包括每个打开文件的FCB拷贝和其他信息 单个进程的打开文件表:包括一个指向系统范围内已打开文件表中合适条目和其他信息的指针 文件描述符(file descriptor, Linux/UNIX) 文件句柄(file handle, Windows) 内存中的文件系统结构 分区与安装 分区可以是“生的”(raw),即没有文件系统,或是“熟的”(cooked)即含有文件系统。 生的分区用于没有合适文件系统的地方。如:Unix中的交换区 引导信息能存在各个分区中,并且有自己的格式。它通常为一组有序块,作为二进制文件读入内存。引导信息除了包括如何启动一个特定操作系统外,还可以有其他指令。(如BootManager bootstar 8.3,Linux GRUB, GRUB - GRand Unified Bootloader) 根分区(root partition)包括操作系统内核或其他系统文件,在引导时装入内存。其他分区根据不同操作系统可以在引导时自动装入或在此之后手动装入。 /root, /boot 文件系统安装表(file system mount table) 虚拟文件系统 虚拟文件系统(VFS)提供了一种面向对象的方法来实现文件系统 VFS允许在不同类型的文件系统上采用同样的系统调用接口(API) API是针对VFS的接口,而非对任何特定类型的文件系统 虚拟文件系统示意图 12.3 目录实现 最为简单的目录实现方法是使用存储文件名和数据块指针的线性列表(数组、链表等) 容易实现 但运行费时 采用线性搜索来查找特定条目(缺点) 许多操作系统采用软件缓存来存储最近访问过的目录信息 Hash表:采用Hash数据结构的线性表 减少了目录搜索时间 碰撞:两个文件名哈希到相同的位置 哈希表的最大困难是其通常固定的大小和哈希函数对大小的依赖性 12.4 分配方法 分配方法指的是如何为文件分配磁盘块,常用的分配方法有以下三类 连续分配 链接分配 索引分配 (一) 连续分配 (contiguous allocation) 每个文件占据磁盘上的一组连续的块 特点: 简单 - 只需要记录文件的起始位置(块号)及长度。 访问文件很容易,所需的寻道时间也最少 存在的问题 为新文件找空间比较困难(类似于内存分配中的连续内存分配方式) 文件很难增长 磁盘空间的连续分配示例 基于扩展的连续分配方法 许多新的文件系统采用一种修正的连续分配方法 该方法开始分配一块连续空间,当空间不够时,另一块被称为扩展的连续空间会添加到原来
您可能关注的文档
最近下载
- 2023建筑施工企业全员安全生产责任清单{含公司级、项目级、作业人员级,含房建、隧道、市政工种).docx VIP
- 2023AHA心肺复苏指南(成人基础及高级生命支持).pptx VIP
- 冷库大蒜代存合同10篇.docx VIP
- 冷库大蒜代存合同7篇.docx VIP
- 2024年中国低代码平台市场现状与发展趋势研究报告-计世资讯.docx VIP
- 《基础生态学》全套精品优质课件.ppt VIP
- 落实中央八项规定精神工作汇报.docx VIP
- 气象学与气候学智慧树知到答案章节测试2023年湖北大学.docx VIP
- 南京市六合区大厂街道社区工作者考试试题汇总2024.docx VIP
- 心肺复苏与高级生命支持.pptx VIP
文档评论(0)