1、 操作系统课程设计操作系统课程设计 - -模拟文件系统模拟文件系统 一一实验目的实验目的 用高级语言编写和调试一个简单的文件系统。模拟文件管理的工作过程。加深理解文件系统的内部 功能和内部实现。 二二基本要求基本要求 在任意一个 OS 下,建立一个大文件,把它假象成一张盘,在其中实现一个简单的模拟 UNIX 文件 系统 。 可以实现下列几条命令 DIR 列文件目录 CREA TE 创建文件 MD 创建目录 DELF 删除文件 DELD 删除目录 CD 改变当前目录 SA VEF 保存文件 SA VED 保存目录 HELP 获得命令的帮助 EXIT 退出系统 三设计思想说明三设计思想说明 1.设
2、计环境设计环境 课程设计的环境是 windows xp sp2 操作系统。在 windows 系统中创建一个较大容量的文件,作 为所设计文件系统的假想的“文件卷” ,从而编写各程序模块。 2.开发环境开发环境 课程设计所使用的开发环境是 VC+ 6.0 3.基本思想基本思想 以 1M 的存储器空间作为文件空间,空间“分块”。超级块,在最前面,共占3.2k个字节。其 中0.2K个字节存放目录节点的位示图,1K个字节存放文件节点的位示图,2k字节存放盘块节点 的位示图。用位状态=0表示空闲,状态=1表示已分配。后半部用于存放目录接点和文件接 点。超级块不参与文件空间的动态分配。其他块用于存贮目录接
3、点和文件接点的信息。 四需求分析四需求分析 该模拟文件系统包括目录文件(简称目录) 、普通文件(简称文件) ,并实现下面一些基本功能: 1改变目录:CD 目录名 ,工作目录转到指定的目录下。 2创建文件:CREA TE 文件名 ,创建一个指定名字的新文件,即在目录中增加一项,不考 虑文件的内容。 3删除文件:DELF 文件名 ,删除指定的文件。 4显示目录:DIR 目录名,显示目录下全部文件和第一级子目录,如果没有指定路径名, 则显示当前目录下的内容。 5创建目录:MD 目录名 ,再指定路径下创建指定的目录,或者在没有指定路径时,在当 前目录下创建子目录。 6删除目录:DELD目录名 ,删除指
4、定的目录。 7. 保存文件 SA VEF 目录名 保存指定文件 8. 保存目录 SA VED文件名 ,保存指定目录 9. 获得命令帮助 HELP 10. 退出文件系统 EXIT 要考虑的特殊情况:要考虑的特殊情况: 1.各个命令对全路径和相对路径的支持各个命令对全路径和相对路径的支持 .目录不存在时,给出错误信息 .不能用 cd 进入文件 .相对路径的解析 .路径中的空格剔除 2.新建目录或文件时的问题新建目录或文件时的问题 重名问题; 目录或文件的名字长度限制; 目录或文件的名字中包含不合法字符(注意空格) 3.删除目录或文件时的问题删除目录或文件时的问题 删除不存在的文件或目录,给出错误提
5、示 删除目录时目录不为空; 如果该目录为空,则可删除,否则给出是否做删除,删除操作 将该目录下的全部文件和子目录都删除 进入到某个目录下,却要删除本目录或者上级目录 4.保存目录和文件时的问题保存目录和文件时的问题 保存不存在的文件和目录,给出错误的提示 保存目录时,应当保存其下的的子目录和文件 五系统五系统设计设计 1. 流程图流程图 2. 数据结构数据结构 目录文件结点信息存储结构:目录文件结点信息存储结构: struct dir_node /目录节点 SYSTEMTIME ctime; /创建时间 char dir_name32; /目录名 int child_dir8; /子目录索引 int dir_count; /当前子目录数 int child_file16; /子文件索引 int file_count; /当前子文件数 int parent; /父目录索引 文件目录存储位置存储结构:文件目录存储位置存储结构: struct file_node /文件节点 SYSTEMTIME ctime; /创建时间 char file_name32; /文件名 int block4;