建立基于磁盘存储设备的FAT文件系统

上传人:桔**** 文档编号:477788402 上传时间:2023-05-30 格式:DOC 页数:34 大小:2.89MB
返回 下载 相关 举报
建立基于磁盘存储设备的FAT文件系统_第1页
第1页 / 共34页
建立基于磁盘存储设备的FAT文件系统_第2页
第2页 / 共34页
建立基于磁盘存储设备的FAT文件系统_第3页
第3页 / 共34页
建立基于磁盘存储设备的FAT文件系统_第4页
第4页 / 共34页
建立基于磁盘存储设备的FAT文件系统_第5页
第5页 / 共34页
点击查看更多>>
资源描述

《建立基于磁盘存储设备的FAT文件系统》由会员分享,可在线阅读,更多相关《建立基于磁盘存储设备的FAT文件系统(34页珍藏版)》请在金锄头文库上搜索。

1、操作系统课程设计报告设计题目: 建立基于磁盘存储设备的FAT文件系统学号姓名: 2012217166孙铭银成 员: 孙铭银(组长) 邵俊熙、油梦瑶专业班级: 计算机12-2班2015 年 1 月 15 日 一 FAT文件系统简介3二、课程设计要求、目的5三、课程设计的任务5四、FAT文件系统设计及操作54.1、FAT文件系统的整体布局54.2、FAT32的保留区64.2.1、引导扇区64.2.2、引导代码84.2.3FSINFO、信息扇区84.3、FAT32的FAT表104.3.1、FAT表概述104.3.2、FAT表的特性104.3.3、FAT表的使用114.3.4、其他说明124.4、FA

2、T32的数据区124.4.1、根目录124.4.2、子目录134.4.3、目录项14五、 部分实验代码22六、实验结果分析31七、实验总结32八、实验效果截屏32操作系统课程设计 -建立基于磁盘存储设备的FAT文件系统一 FAT文件系统简介要建立基于磁盘存储设备的FAT文件系统,首先我们得知道到底文件系统是什么东西?文件系统会在你把文件存放到某个目录下时记录下你文件的信息(文件存放的起始簇号,文件大小,文件创建、修改、访问、保存的时间等等),当你下次要打开那个文件时,文件系统就根据已知的文件信息去寻找它,找到后,你就又可以读,写,修改,移动你的文件了,并且文件系统会同时更新。文件系统是为了长久

3、的存储和访问数据而为用户提供的一种基于文件和目录的存储机制。我们都知道,在使用硬盘存储数据之前,首先要进行分区(当然你也可以不分区),然后对分区(或整个硬盘)进行格式化,其实格式化的过程就是在分区内建立文件系统的过程。一个文件系统由系统结构和按一定规则存放的用户数据组成。日常,我们都有这样的经历,在windows下当我们要格式化一个分区或是其他存储介质时,windows会弹出一个对话框,上面有这样一些选择内容:容量、文件系统、分配单元大小、卷标等等。其中文件系统的下拉菜单中就有几种不同的文件系统共供户选择,一般我们都会选择默认、FAT32或NTFS文件系统,当我们按下格式化按钮后,操作系统就开

4、始为这个分区建立你所选择的文件系统。一般情况下文件系统均有以下共性:1.数据单元数据在写入磁盘或从磁盘读取数据时每次操作的数据量称为数据单元,它的大小在建立文件系统时确定。数据单元在不同的文件系统中有不同的称呼:例如在FAT和NTFS文件系统中称作“簇(Cluster)”,ExtX中称作“块(Block)”等。一个数据单元由若干个连续的扇区组成,大小总是2的整数次幂个扇区。2.坏数据单元坏数据单元也就是包含缺陷扇区的数据单元。3.逻辑文件系统地址磁盘上的一个扇区在不同的情况下会有不同的地址表达形式。&每个扇区都会有一个LBA地址,也就是物理地址&每个物理卷内的扇区又有一个物理卷地址&在逻辑卷内

5、部的扇区会有一个逻辑卷地址。4.逻辑文件地址对于每个文件来说,将它按所在文件系统中的数据单元大小为单位进行分割,分割后的每一个部分由0开始编号,这个编号就是其对应数据单元的逻辑文件地址。一个文件前后相邻的两个数据单元在物理上的存储地址可能是不连续的,但它的逻辑文件地址一定是连续的。5.分配策略【1】第一可用分配策略,即当为一个文件分配了一个存储单元后还要继续为其分配时,操作系统会重新从文件系统的起始处搜索可以使用的空间。举例说明,加入我们现在有一个文件需要4个储存单元,文件系统内的1、2、3、5、10号储存单元已经有数据放在那了,4、6、7、8、9号储存单元空闲,按照第一分配策略为这个文件的4

6、个部分分配空间时步骤如下:第一部分分配到4号储存单元,如下图所示:为文件第一部分分配好储存位置后,又从1号储存单元开始向后寻找空位置,找到6号后分配给文件的第二部分,如下图:为文件第二部分分配好储存位置后,又从1号储存单元开始向后寻找空位置,恰好这个时候,2号储存单元的文件内容被删除了,就把2号位置分配给文件的第三部分,为文件第三部分分配好储存位置后,又从1号储存单元开始向后寻找空位置,找到7号后分配给文件的第四部分。至此,这个文件的四个部分就分配好了,这四部分的储存位置就是4-6-2-7。【2】下一可用分配策略,即为文件分配了一个储存单元后并不再回到卷开始处重新寻找可用空间,而是直接向后进行

7、搜索。以上文件的四个部分利用下一可用分配策略分配的最后结果如下图所示: 【3】最佳分配策略,即在为文件分配空间时,会尽可能找到足够的连续空间以避免其片段化。对于之前的例子使用最佳分配策略时,最后结果如下图:6.松弛空间松弛空间分为两种,一种是数据的结尾与为其分配的空间结束处的未使用部分,还有一种就是位于分区结尾的卷松弛空间。7元数据任何文件和目录都会有一个名字,我们将其统称为“文件名”。除了文件名外,文件或目录还有其他一些描述信息,如大小,时间信息,是否加密或压缩,储存位置信息等,我们将这些描述信息统称为文件或目录的元数据。二、课程设计要求、目的 在现代计算机系统中用到大量的程序和数据由于内存

8、容量有限且不能长期保存故而平时总是把他们以文件的形式存放在外村中需要时可随时将他们调入到内存。如果用户直接管理外存上的文件不仅要求用户熟悉外存的特性了解各种文件的属性以及他们在外存上的位置而且在多用户的环境下还必须能保持数据的安全性和一致性。显然这是用户多不能胜任、也不愿意承担的工作。取而代之的是操作系统中又增加了文件管理功能即构成一个文件系统负责管理在外存上的文件并把对文件的存取、共享和保护等手段提供给用户。这不仅方便了用户保证了文件的安全性还可以有效的提高系统资源的利用率。 课程设计不仅要求我们紧扣课本知识熟练的掌握课FAT文件系统实现原理上而且要求最终的软件实现有很好的人机交互界面从多方

9、面考查我们的学习、实践能力。让我们在实践中去认识FAT文件系统的实现原理加深对文件系统存储、数据的安全性和一致性理解在实践中去完善自己的理论知识纠正理论学习过程中出现的错误。三、课程设计的任务1、首先分配一定容量的磁盘存储空间作为文件存储空间。 2、建立相应的文件系统使用FAT文件系统。 3、为该文件系统设计相应的数据结构来管理目录、磁盘空闲空间、已分配空间等。 4、提供文件的创建、删除、移位、改名等功能。 5、提供良好的界面可以显示磁盘文件系统的状态和空间的使用情况。 6. 提供虚拟磁盘转储功能可将信息存入磁盘还可从磁盘读入内存。 四、FAT文件系统设计及操作4.1、FAT文件系统的整体布局

10、如图:说明:【1】保留区含有一个重要的数据结构系统引导扇区(DBR)。FAT12、FAT16的保留区通常只有一个扇区,而FAT32的保留扇区要多一些,除0号扇区外,还有其他一些扇区,其中包括了DBR的备份扇区。【2】FAT区由来年各个大小相等的FAT表组成FAT1、FAT2,FAT2紧跟在FAT1之后。【3】FAT12、FAT16的根目录虽然也属于数据区,但是他们并不由簇进行管理。也就是说FAT12、FAT16的根目录是没有簇号的,他们的2号簇从根目录之后开始。而FAT32的根目录通常位于2号簇。4.2、FAT32的保留区 FAT32文件系统的开始部分有一个由若干个扇区组成的保留区,保留区的刀

11、削会记录在DBR扇区中,比较常见的为32、34或38个扇区。4.2.1、引导扇区引导扇区是FAT32文件系统的第一个扇区,也称为DBR扇区。它包含这样一些文件系统的基本信息:【1】每扇区字节数【2】每簇扇区数【3】保留扇区数【4】FAT表个数【5】文件系统大小(扇区数)【6】每个FAT表大小(扇区数)【7】根目录起始簇号【8】其他一些附加信息(DBR扇区中记录文件系统参数的部分也称为BPB(BIOSParameterBlock)说明:&引导扇区中的某些参数是至关重要的:【1】、【2】、【3】、【4】、【5】、【6】、【7】等。我们可以通过每个FAT表的大小扇区数乘以FAT表的个数得到FAT区域

12、的大小;通过保留扇区数和FAT区域的大小就可以得知数据区的起始位置,也就得到了文件系统第一簇的位置。由根目录的簇号和第一簇的位置就可以得到根目录的位置。引导扇区数据结构及实例讲解:这个小节笔者将通过讲解一个Kingston2GB的SD卡的DBR(FAT32文件系统),来向读者详细说明引导扇区数据结构各个参数的含义,先给出几张图片: 第一张图片SD卡截图,第二章图片显示的就是通过WinHex获取的DBR数据截图。现在我们来着重分析DBR。具体分析如下:(首先说明,数据的存储是以小端模式存储的)【1】0x000x02:3个字节,跳转指令。【2】0x030x0A:8个字节,文件系统标志和版本号,这里

13、为MSDOC5.0。【3】0x0B0x0C:2个字节,每扇区字节数,512(0X0200)。【4】0x0D0x0D:1个字节,每簇扇区数,8(0x08)。【5】0x0E0x0F:2个字节,保留扇区数,704(0x02C0)。【6】0x100x10:1个字节,FAT表个数,2。【7】0x110x12:2个字节,根目录最多可容纳的目录项数,FAT12/16通常为512。FAT32不使用此处值,置0。【8】0x130x14:2个字节,扇区总数,小于32MB时使用该处存放。超过32MB时使用偏移0x200x23字节处的4字节存放。笔者的SD卡容量为2GB,所以不使用该处,置0.【9】0x150x15:

14、1个字节,介质描述符,0xF8表示本地硬盘。【10】0x160x17:2个字节,每个FAT表的大小扇区数(FAT12/16使用,FAT32不使用此处,置0)。【11】0x180x19:2个字节,每磁道扇区数,63(0x003F)。【12】0x1A0x1B:2个字节磁头数,255(0x00FF)。【13】0x1C0x1F:4个字节,分区前已使用扇区数,137(0x00000089)。(这个数据要尤其的重视,文件系统初始化的第一步要找的就是这玩意儿。因为我们的SD卡没有分区,默认就是一个分区,这个数据就是相对于MBR(关于MBR的介绍请读者参看8.4小节的DOC分区)的地址偏移量,MBR的扇区地址才是整个SD卡的物理扇区号为0的那个地址,也就是说文件系统并不是处在整个SD卡最开始的地方,它处在MBR所处的保留区之后,于是我们可以对使用FAT32文件系统的SD卡整体布局给出如下图示)【14】0x200x23:4个字节,文件系统大小扇区数,3841911(0x003A9F77)。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号