- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
操作系统课程设计报告2014217151
《计算机操作系统》课程设计报告 设计题目:磁盘文件系统:建立基于磁盘存储设备的FAT文件系统 学生姓名: 李勤阳 学 号: 2014217151 专业班级: 计算机科学与技术14-3班 指导教师: 田卫东老师 院系名称: 信息工程系 2016.12.25目录(一)课程设计任务、要求、目的(二)原理及算法描述(三)开发环境(四)重要算法和设计思路描述(五)程序实现——数据结构(六)程序实现——程序清单(七)总结(八)参考文献(一)课程设计任务、要求、目的分配一定容量的磁盘存储空间,作为文件存储空间建立相应的文件系统,使用FAT文件系统为文件系统设计相应的数据结构来管理目录,磁盘剩余空间,已分配空间提供文件的创建,删除,读写,改名等功能提供良好的界面提供虚拟磁盘转储的功能,可将信息存入磁盘,还可从磁盘中读入内存原理及算法描述1. 由于要分配一定容量的 磁盘存储空间 , 所以申请一块指定大小的文件作为用户的磁盘, 如 C.dsk2. 分配磁盘空间后要以特定字节填充使得磁盘大小满足要求,然后格式化为FAT格式[本课程设计是实现了一个[FAT16], 格式化的过程要给磁盘分为几个区: 保留扇区(含DBR) , FAT表区 , 根目录区 , 数据区 . 初始时候没有文件数据,所以只需将DBR[包括JMP指令,OEM信息,BPB 等]信息写入保留扇区[引导区], 并初始化FAT区的前4个字节为 F8 FF FF FF .3. 目录项DIR结构用来管理目录, 通过已使用目录项中存的文件大小信息和BPB中存的信息可计算出已分配空间和剩余空间大小4. 通过 CreateFile , ReadFile , WriteFile , DeleteFile 和 RenameFile 等函数实现了文件的 创建、读写、删除、改名等功能(三)开发环境IDEgcchexdump(四)重要算法和设计思路描述整个磁盘的读写[ 包括系统区的初始化和文件的读写 ]主要是通过封装的对扇区(512Bytes的数据单位)的读写writeSector 和 readSector 来实现的。2. 各个区域始址的寻找主要通过BPB中包含的本磁盘信息计算出来的。3. 文件区由于以簇(可包含多个扇区)为单位进行读写,所以用到一个簇与扇区转换的工具函数 clusIDtoSectorID4. 另外文件名存储由于要DOS的8.3格式,所以用到一个 formatFilename 的函数用来转换程序实现——数据结构//BPB部(BIOS Parameter Block)[DBR中关于分区的信息]typedef struct _BPB{BYTE BytesPerSector[2];BYTE SectorsPerClus;BYTE ResvdSectors[2];BYTE FATCount;BYTE DirCount[2];BYTE Resvd1[2];BYTE MediaDiscr;BYTE SectorsPerFAT[2];BYTE Resvd2[12];}_BPB, *pBPB;//DBR区(DOS BOOT RECORD), 512字节[即0扇区]typedef struct _DBR{2016/12/25 report.mdfile:///home/haibin/OS/final_work/report.md 2/2BYTE jmp[3];BYTE oemInfo[8];_BPB BPB;BYTE reserved[476];}DBR, *pDBR;//待定义typedef struct _DATE{BYTE info[2];}DATE, *pDATE;//待定义typedef struct _TIME{BYTE info[2];}TIME, *pTIME;//目录项。32字节typedef struct _DIR{char name[8];char ext[3];BYTE attribute;BYTE reserved[10];TIME modifyTime;DATE modifyDate;WORD firstCluster;WORD fileSize[2];}DIR, *pDIR;(六)程序实现——程序清单见附件部分(七)总结 通过对磁盘上开辟文件,分割文件内部区域,分为系统区,用户区。通过文件指针的读写来模拟逻辑上的磁盘文件管理系统。想法非常有创意,实现的难度较高。主要在于对文件(模拟磁盘)创建时的大小计算,要包含文件本身大小以及fat表和目录项的分配,基于此初始化引导扇区的BPB。相关功能的设计也要注意参数的传递比如文件指针的约束。防止发生段越界。 对于不同分区字节的限制也异常关键,在具体实现过程中就发生过保留扇区个数限制错误(应该包含1个引导扇区),导致后续位置的地址发生偏
您可能关注的文档
- 评估业务承接制度--(2015年修订稿).doc
- 排列组合复习教学设计.doc
- 宁德中心支公司关于2017年6月份消费投诉接待及研究日工作情况汇报.docx
- 孔桩水下混凝土灌注施工作业指导书.doc
- 某开发用地K3地块-混凝土合同.docx
- 慢性病患者基础医疗数据采集及移动智能端监控综合系统(移动互联网健康服务).doc
- 借款合同-正规版.doc
- 教学查房规范(新).doc
- 家居日常保养的几个误区.docx
- 化工装置要检修安全措施先到位.docx
- 专卖店促销员销售与成交技巧培训课件(34P).pptx
- 红色商务风新员工入职销售技巧知识培训课件(34P).pptx
- 专卖店商场销售员销售与成交技巧培训课件(34P).pptx
- 小区物业保安法律知识培训课件(28P).pptx
- 专卖店销售员轻松成交技巧培训(34P).pptx
- 轻松成交客户新员工入职通用销售技巧知识培训(34P).pptx
- 2024年初级《银行业法律法规与综合能力》考前必刷必练题库500题(含真题、必会题).docx
- 2024年“新安法知多少”知识竞赛题库及答案(最新版).docx
- 2024年30秒毕业生面试工作自我介绍.docx
- 2024年《医务人员礼仪培训》心得体会.docx
文档评论(0)