- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
40.1思考方式357
第40章文件系统实现
第40章文件系统实现
本章将介绍一个简单的文件系统实现,称为VSFS(VerySimpleFileSystem,简单文件
系统)。它是典型UNIX文件系统的简化版本,因此可用于介绍一些基本磁盘结构、访问方
法和各种策略,你可以在当今许多文件系统中看到。
文件系统是纯软件。与CPU和内存虚拟化的开发不同,我们不会添加硬件功能来使文
件系统的某些方面更好地工作(但我们需要注意设备特性,以确保文件系统运行良好)。由
于在构建文件系统方面具有很大的灵活性,因此人们构建了许多不同的文件系统,从AFS
(Andrew文件系统)[H+88]到ZFS(Sun的Zettabyte文件系统)[B07]。所有这些文件系统
都有不同的数据结构,在某些方面优于或逊于同类系统。因此,我们学习文件系统的方式
是通过案例研究:首先,通过本章中的简单文件系统(VSFS)介绍大多数概念。然后,对
真实文件系统进行一系列研究,以了解它们在实践中有何区别。
关键问题:如何实现简单的文件系统
如何构建一个简单的文件系统?磁盘上需要什么结构?它们需要记录什么?它们如何访问?
40.1思考方式
考虑文件系统时,我们通常建议考虑它们的两个不同方面。如果你理解了这两个方面,
可能就理解了文件系统基本工作原理。
第一个方面是文件系统的数据结构(datastructure)。换言之,文件系统在磁盘上使用哪
些类型的结构来组织其数据和元数据?我们即将看到的第一个文件系统(包括下面的
VSFS)使用简单的结构,如块或其他对象的数组,而更复杂的文件系统(如SGI的XFS)
使用更复杂的基于树的结构[S+96]。
补充:文件系统的心智模型
正如我们之前讨论的那样,心智模型就是你在学习系统时真正想要发展的东西。对于文件系统,你
的心智模型最终应该包含以下问题的答案:磁盘上的哪些结构存储文件系统的数据和元数据?当一个进
程打开一个文件时会发生什么?在读取或写入期间访问哪些磁盘结构?通过研究和改进心智模型,你可
以对发生的事情有一个抽象的理解,而不是试图理解某些文件系统代码的细节(当然这也是有用的!)。
文件系统的第二个方面是访问方法(accessmethod)。如何将进程发出的调用,如open()、
read()、write()等,映射到它的结构上?在执行特定系统调用期间读取哪些结构?改写哪些
结构?所有这些步骤的执行效率如何?
如果你理解了文件系统的数据结构和访问方法,就形成了一个关于它如何工作的良好
358第40章文件系统实现
心智模型,这是系统思维的一个关键部分。在深入研究我们的第一个实现时,请尝试建立
你的心智模型。
40.2整体组织
我们现在来开发VSFS文件系统在磁盘上的数据结构的整体组织。我们需要做的第一件
事是将磁盘分成块(block)。简单的文件系统只使用一种块大小,这里正是这样做的。我们
选择常用的4KB。
因此,我们对构建文件系统的磁盘分区的看法很简单:一系列块,每块大小为4KB。
在大小为N个4KB块的分区中,这些块的地址为从0到N−1。假设我们有一个非常小的磁
盘,只有64块:
现在让我们考虑一下,为了构建文件系统,需要在这些块中存储什么。当然,首先想
到的是用户数据。实际上,任何文件系统中的大多数空间都是(并且应该是)用户数据。
我们将用于存放用户数据的磁盘区域称为数据区域(dataregion),简单起见,将磁盘的固定
部分留给这些块,例如磁盘上64个块的最后56个:
正如我们在第39章中了解到的,文件系统必须记录每个文件的信息。该信息是元数据
(metadata)的关键部分,并且记录诸如文件包含哪些数据块(在数据区域中)、文件的大小,
其所有者和访问权限、访问和修改时间以及其他类似信息的事情。为了存储这些信息,文
件系统通常有一个名为inode的结构(后面会详细介绍inode)。
您可能关注的文档
最近下载
- (编号TCAIM 014-2024)-《帕金森病中西医结合诊疗指南》.pdf VIP
- 硝基漆安全技术说明书.pdf VIP
- 第三单元工具与技术单元复习试题科学六年级上册教科版2017.doc VIP
- DB23_T 3919-2024 大跨钢结构技术标准.pdf VIP
- 起重机械吊索具检查与报废标准40.pdf VIP
- 2025年食品法规与标准模拟卷(附答案).docx VIP
- R-Biopharm拜发分析系统检测试剂盒R7021说明书.pdf
- 06 《诫子书》理解性默写-学年七年级语文上册知识梳理与能力训练.docx VIP
- TCAQ10201-2024质量管理小组活动准则_可搜索.pdf VIP
- 2025年商品和服务税收分类编码操作手册1.08.7.pdf VIP
原创力文档


文档评论(0)