操作系统课程设计报告2014217151.docx

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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个引导扇区),导致后续位置的地址发生偏

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

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

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档