文档介绍:课程设计报告
课程名称操作系统课程设计
课题名称模拟实现单级目录的FAT文件系统
专业计算机科学与技术
班级
学号
姓名
指导教师周铁山
2011年12月29日
湖南工程学院
课程设计任务书
课程名称操作系统课程设计
课题单级文件目录FAT文件系统
专业班级计算机科学与技术
学生姓名
学号
指导老师周铁山
审批周铁山
任务书下达日期 2011年 12月 1 日
任务完成日期 2011年 12月 29日
计算机09级《操作系统课程设计》任务书
课程设计的性质和目的
操作系统课程设计是计算机专业的专业课程,通过课程设计使学生进一步巩固课堂所学知识,全面熟悉、掌握操作系统的基本设计方法和技巧,进一步提高分析问题、解决问题及上机操作能力,为将来从事计算机工作打下一定的专业基础。
设计课题
课题一:模拟实现单级目录的FAT文件系统
基本思路:用二进制文件空间模拟磁盘空间,用文件块操作模拟磁盘块操作。
基本设计要求:1、实现如下文件系统功能(过程或函数):
打开文件系统 FILE *OPENSYS(char *filename);
关闭文件系统 int CLOSESYS(FILE *stream);
显示目录 void LISTDIR(void);
建立文件 int FCREATE(char *filename);
删除文件 int FDELETE(char *filename);
打开文件 int FOPEN(char *filename);
关闭文件 int FCLOSE(int fileid);
文件块读 int FREAD(void *ptr, int n, int fileid);
文件块写 int FWRITE(void *ptr, int n, int fileid);
判断文件结束 int FEOF(int fileid);
获取文件指针 long FGETPOS(int fileid);
设置文件指针 int FSETPOS(int fileid, long offset);
取得文件长度 long FGETLEN(char *filename);
2、提供文件系统创建程序
3、有功能检测模块
4、为简化程序设计,假定目录区域大小固定。
文件系统空间划分:
保留扇区
FAT表区
(或字节映像图区)
根目录区
文件分区
可以使用的C语言文件操纵函数:
FILE *fopen(const char *filename, const char *mode);
int fclose(FILE *stream);
int fseek(FILE *stream, long offset, int whence);
long ftell(FILE *stream);
size_t fread(void *ptr, size_t size, size_t n, FILE *stream);
size_t fwrite(const void *ptr, size_t size, size_t n, FILE *stream);
课题二:模拟实现单级目录、单级索引的索引文件系统
使用链接域将同一文件的各索引块按顺序连接起来;其余各项同课题一。
课程设计报告要求
设计报告要求A4纸打印成册;
使用学院统一的封面;
课程设计报告每人一份,必须包含如下几个方面的内容:
基本设计思想;
主要数据结构;
主要实施流程;
所有源代码;
课程设计总结与体会。
分组及选题办法
按学号顺序一人一组,学号为奇数者为课题一,偶数者为课题二。
成绩考核按个人课题完成情况、设计报告质量及对课程设计的态度等综合评定。
五、设计进度安排
讲课及上机调试时间安排:
上课时间: —
上机时间: —
其余时间:查阅资料,确定方案,设计课题相关程序。
个人答辩,交课程设计报告。
主要数据结构提示:
单级目录FAT文件系统:
常量
#define BlockSize 512
#define DirSize 32
保留扇区结构
struct ReserveBlock{
int sysblocknum; /*文件系统总扇区数*/
int resblocknum; /*保留扇区扇区数*/
int fatblocknum; /*FAT表扇区数*/
int rootblocknum; /*根目录区扇区数*/
char fillchar[BlockSize-4*sizeof(int)];/*填充字节*/