操作系统课程设计实验报告模拟FAT文件系统.docxVIP

操作系统课程设计实验报告模拟FAT文件系统.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
操作系统课程设计之三 设计任务:模拟OS文件系统 在任一 OS (Window或者Dos;也可以是在Linux下,但要求能将结果演示 给老师看)下,建立一个大文件,把它假彖成一张盘,在其屮实现一个简单的 模拟OS文件系统。 10M10M1.在现有机器硬盘上开辟(共10000个盘块,每盘块大小为lk)的硬 盘空间(生成一个的用户文件SDisk. dat即可),作为设定的硕盘空间。 2、编写一管理程序SDisk,对此空间进行管理,以模拟0S文件系统,要求: ⑴、盘块大小lk ⑵、空闲盘块的管理:釆用位示图法 ⑶、文件空间管理:采用FAT (文件分配表),每个盘块号占2个字节 ⑷、目录项管理: 、每个目录项占用32字节,其中前8个字节(0-7)为文件名,之后跟3个 字节(8-10)的扩展名,26-27字节,存放文件的第一个盘块号,最后四个 字节(28-31),存放文件长度(如果目录项对应的是下一级子目录(文件), 其文件长度部分为0) 、目录按文件方式管理,每个目录仅用一个盘块(即lk,最多装32个目录 项) 、第0个目录项为木目录,即”,第0个字节为即Ox 2E,第26- 27字节指明本目录所在盘块。 、第1个目录项为父目录,即“??”,第0, 1个字节为“??”即0 x2E, Ox 2E, 第26-27字节指明父目录所在盘块。 、每个目录实际能放下文件或子目录30项。 ⑸、文件系统空间分配: 、第0个盘块(lk)存放磁盘信息(可以设定为格式说明“FAT32”、盘块大小,盘块 数等内容) 、第1个盘块起,至125盘块,共125个盘块(125k)存放FAT内容 、第1 26、127 (2个)盘块,存放位示图 、从第128盘块至10 000盘块,皆为数据(区)盘块,其逻辑编号从0开始, 至987 2号数据盘块,即第0数据盘块为128号盘块,第1数据盘块为1 29号盘块,… 、第0数据盘块(即128号盘块),存放根目录(同样只用一个盘块作根目 录),由于第0、1目录项为(本目录),“??”(父目录),因此根 目录下同样只能存放30个文件或目录,并且从第2个目录项开始。 、文件或子目录数据,放在第1数据盘块及以后的数据盘块中,由用户按需 要使用。 3、SDisk管理程序的功能要求如下: ⑴、正常情况下,显示等待命令输入符号# ⑵、改变口录命令: #cd目录名,改变当前工作目录,目录不存在时给出出错信息 #cd??,返回上一级目录,如果是根目录,给出提示信息 (3)、生成新目录 目录名,创建新目录(需要更改FAT内容和位示图内容) ⑷、删除目录 #rd目录名,删除目录,如果目录不存在时给出出错信息(需要更改FAT 内容和位示图内容) (5)、显示目录 #dir,显示指定目录下或当前口录下的信息,包括文件名、扩展名、物理 地址(文件或目录第一个盘块号)、文件长度、子目录 ⑹、创建新文件 #C reateFile文件名?扩展名 文件长度,根据文件名.扩展名,创建一个目 录项(fcb),根据文件长度和位示图中空闲盘块情况,分配足够多的连续盘块, 给新文件(需要更改FAT内容和位示图内容)。 ⑺、删除文件 #DelFil c文件名?扩展名,在文件所在的FI录项中,将第一个字节变为0 xE5,并同时修改FAT内容和位示图内容;如果文件不存在,给岀出错信息 ⑻、文件拷贝 #CopyFile老文件,新文件,为新文件创建一个目录项,并将老文件内容复 制到新文件中,并同时修改FAT内容和位示图内容 ⑼、显示位示图内容 #ShowBitM P,将位示图内容(已有信息部分),显示在屏幕上(按十六进 制) (10)、显示FAT内容 #ShowFAT,将FAT内容(已有信息部分),显示在屏幕上(按十六进制) 4、程序的总体流程为: ⑴、输出提示符#,等待接受命令,分析键入的命令; ⑵、对合法的命令,执行相应的处理程序,否则输出错误信息,继续等待新命 令 (1、请参考“03.FAT32文件系统简介?doc”屮,有关文件系统的规定; 2、请参考WinHex中,目录所显示的信息进行编程) 〃关于FAT和MAP表的解释 //用bitset库,做MAP的是否判断,因为作业要求从数据块从128位开始,所 以b itset的前128位被置为-1,同样FAT表也是,其次,MAP表和FAT表同 样是用数组方式做保存,这样就略过了是对具体地址的操作,从数组的下标很 容易的定位, 关于对FAT表和MAP表的用法 1. 当要用到数据块是,查询MAP表(因为只做比较查询即可),查询到的 未用位置置1,然后在FAT表上进行相应记录,在本程序做出的规定是, 当文件夹FAT表做-1 ,若是文件则按照FA T做对应的顺序记录,最后 2.一块同样是-1结束, 2. 回收的时候,是按照FAT表的首项,

文档评论(0)

ggkkppp + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档