建立基于磁盘存储设备的FAT文件系统
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
操作系统课程设计报告
2015 年 1 月 15 日
设计题目: 建立基于磁盘存储设备的 FAT 文件系统 学号姓名: 2012217166孙铭银 成 员: 孙铭银(组长) 邵俊熙、油梦瑶
一.FAT文件系统简介 (3)
二、课程设计要求、目的 (5)
三、课程设计的任务 (5)
四、FAT文件系统设计及操作 (5)
4.1、FAT文件系统的整体布局 (5)
4.2、FAT32的保留区 (6)
4.2.1、引导扇区 (6)
4.2.2、引导代码 (8)
4.2.3FSINFO、信息扇区 (8)
4.3 、FAT32的FAT表 (10)
4.3.1、 FAT表概述 (10)
4.3.2、FAT表的特性 (10)
4.3.3 、FAT表的使用 (11)
4.3.4 、其他说明 (12)
4.4、 FAT32的数据区 (12)
4.4.1、根目录 (12)
4.4.2、子目录 (13)
4.4.3、目录项 (14)
五、部分实验代码 (22)
六、实验结果分析 (31)
七、实验总结 (32)
八、实验效果截屏 (32)
操作系统课程设计
---建立基于磁盘存储设备的FAT文件系统一.FAT文件系统简介
要建立基于磁盘存储设备的FAT文件系统,首先我们得知道到底文件系统是什么东西?文件系统会在你把文件存放到某个目录下时记录下你文件的信息(文件存放的起始簇号,文件大小,文件创建、修改、访问、保存的时间等等),当你下次要打开那个文件时,文件系统就根据已知的文件信息去寻找它,找到后,你就又可以读,写,修改,移动你的文件了,并且文件系统会同时更新。
文件系统是为了长久的存储和访问数据而为用户提供的一种基于文件和目录的存储机制。我们都知道,在使用硬盘存储数据之前,首先要进行分区(当然你也可以不分区),然后对分区(或整个硬盘)进行格式化,其实格式化的过程就是在分区内建立文件系统的过程。一个文件系统由系统结构和按一定规则存放的用户数据组成。日常,我们都有这样的经历,在windows下当我们要格式化一个分区或是其他存储介质时,windows会弹出一个对话框,上面有这样一些选择内容:容量、文件系统、分配单元大小、卷标等等。其中文件系统的下拉菜单中就有几种不同的文件系统共供户选择,一般我们都会选择默认、FAT32或NTFS文件系统,当我们按下格式化按钮后,操作系统就开始为这个分区建立你所选择的文件系统。
一般情况下文件系统均有以下共性:
1. 数据单元
数据在写入磁盘或从磁盘读取数据时每次操作的数据量称为数据单元,它的大小在建立文件系统时确定。数据单元在不同的文件系统中有不同的称呼:例如在FAT和NTFS文件系统中称作“簇(Cluster)”,ExtX中称作“块(Block)”等。一个数据单元由若干个连续的扇区组成,大小总是2的整数次幂个扇区。
2. 坏数据单元
坏数据单元也就是包含缺陷扇区的数据单元。
3. 逻辑文件系统地址
磁盘上的一个扇区在不同的情况下会有不同的地址表达形式。 &每个扇区都会有一个LBA地址,也就是物理地址 &每个物理卷内的扇区又有一个物理卷地址 &在逻辑卷内部的扇区会有一个逻辑卷地址。
4. 逻辑文件地址
对于每个文件来说,将它按所在文件系统中的数据单元大小为单位进行分割,分割后的每一个部分由0开始编号,这个编号就是其对应数据单元的逻辑文件地址。一个文件前后相邻的两个数据单元在物理上的存储地址可能是不连续的,但它的逻辑文件地址一定是连续的。
5. 分配策略
【1】第一可用分配策略,即当为一个文件分配了一个存储单元后还要继续为其分配时,操作系统会重新从文件系统的起始处搜索可以使用的空间。
举例说明,加入我们现在有一个文件需要4个储存单元,文件系统内的1、2、3、5、10号储存单元已经有数据放在那了,4、6、7、8、9号储存单元空闲,按照第一分配策略为这个文件的4个部分分配空间时步骤如下:
<1>第一部分分配到4号储存单元,如下图所示:
<2>为文件第一部分分配好储存位置后,又从1号储存单元开始向后寻找空位置,找到6号后分配给文件的第二部分,如下图:
<3>为文件第二部分分配好储存位置后,又从1号储存单元开始向后寻找空位置,恰好这个时候,2号储存单元的文件内容被删除了,就把2号位置分配给文件的第三部分,
<4>为文件第三部分分配好储存位置后,又从1号储存单元开始向后寻找空位置,找到7号后分配给文件的第四部分。
至此,这个文件的四个部分就分配好了,这四部分的储存位置就是4-6-2-7。
【2】下一可用分配策略,即为文件分配了一个储存单元后并不再回到卷开始处重新寻找可用空间,而是直接向后进行搜索。以上文件的四个部分利用下一可用分配策略分配的最后结果如下图所示:
【3】最佳分配策略,即在为文件分配空间时,会尽可能找到足够的连续空间以避免其片段化。对于之前的例子使用最佳分配策略时,最后结果如下图:
6. 松弛空间
松弛空间分为两种,一种是数据的结尾与为其分配的空间结束处的未使用部分,还有一种就是位于分区结尾的卷松弛空间。
7.元数据
任何文件和目录都会有一个名字,我们将其统称为“文件名”。除了文件名外,文件或目录还有其他
一些描述信息,如大小,时间信息,是否加密或压缩,储存位置信息等,我们将这些描述信息统称为文件或目录的元数据。
二、课程设计要求、目的
在现代计算机系统中 用到大量的程序和数据 由于内存容量有限 且不能长期保存 故而平时总是把他们以文件的形式存放在外村中 需要时可随时将他们调入到内存。如果用户直接管理外存上的文件 不仅要求用户熟悉外存的特性了解各种文件的属性 以及他们在外存上的位置 而且在多用户的环境下 还必须能保持数据的安全性和一致性。显然 这是用户多不能胜任、也不愿意承担的工作。取而代之的是操作系统中又增加了文件管理功能 即构成一个文件系统 负责管理在外存上的文件 并把对文件的存取、共享和保护等手段提供给用户。这不仅方便了用户 保证了文件的安全性 还可以有效的提高系统资源的利用率。
课程设计不仅要求我们紧扣课本知识 熟练的掌握课FAT文件系统实现原理上 而且要求最终的软件实现有很好的人机交互界面 从多方面考查我们的学习、实践能力。让我们在实践中去认识FAT文件系统的实现原理 加深对文件系统存储、数据的安全性和一致性理解 在实践中去完善自己的理论知识 纠正理论学习过程中出现的错误。
三、课程设计的任务
1、首先分配一定容量的磁盘存储空间 作为文件存储空间。
2、建立相应的文件系统 使用FAT文件系统。
3、为该文件系统设计相应的数据结构来管理目录、磁盘空闲空间、已分配空间等。
4、提供文件的创建、删除、移位、改名等功能。
5、提供良好的界面 可以显示磁盘文件系统的状态和空间的使用情况。
6. 提供虚拟磁盘转储功能 可将信息存入磁盘 还可从磁盘读入内存。
四、FAT文件系统设计及操作
4.1、FAT文件系统的整体布局
如图: