1、操作系统课程设计报告操作系统课程设计报告 一、课程设计概述:一、课程设计概述: 1、题目:简单文件系统的实现、题目:简单文件系统的实现 2、实现内容实现内容 (1) 在内存中开辟一个虚拟磁盘空间作为文件存储分区,在其上实现一个简单的基于多 级目录的单用户单任务系统中的文件系统。 在退出该文件系统的使用时, 应将该虚拟文件系 统以一个 Windows 文件的方式保存到磁盘上,以便下次可以再将它恢复到内存的虚拟磁盘 空间中。 (2) 文件存储空间的分配可采用显式链接分配或其他的办法。 (3) 空闲磁盘空间的管理可选择位示图或其他的办法。如果采用位示图来管理文件存储 空间,并采用显式链接分配方式,那
2、么可以将位示图合并到 FA T 中。 (4) 文件目录结构采用多级目录结构。为了简单起见,可以不使用索引结点,其中的每 个目录项应包含文件名、物理地址、长度等信息,还可以通过目录项实现对文件的读和写的 保护。 (5) 要求提供以下操作命令: my_format:对文件存储器进行格式化,即按照文件系统的结构对虚拟磁盘空 间进行布局,并在其上创建根目录以及用于管理文件存储空间等的数据结构。 my_mkdir:用于创建子目录。 my_rmdir:用于删除子目录。 my_ls:用于显示目录中的内容。 my_cd:用于更改当前目录。 my_create:用于创建文件。 my_open:用于打开文件。 m
3、y_close:用于关闭文件。 my_write:用于写文件。 my_read:用于读文件。 my_rm:用于删除文件。 my_exitsys:用于退出文件系统。 二、二、设计思路(主要算法描述、程序流程图等) :设计思路(主要算法描述、程序流程图等) : 1系统主函数系统主函数 main() (1)对应命令:无)对应命令:无 (2)命令调用格式:无)命令调用格式:无 (3)函数设计格式:)函数设计格式:void main() (4)功能:系统主函数)功能:系统主函数 (5)输入:无)输入:无 (6)输出:无)输出:无 (7)函数需完成的工作:)函数需完成的工作: 对前面定义的全局变量进行初始
4、化;对前面定义的全局变量进行初始化; 调用调用 startsys()进入文件系统;进入文件系统; 列出文件系统提供的各项功能及命令调用格式;列出文件系统提供的各项功能及命令调用格式; 显示命令行提示符,等待用户输入命令;显示命令行提示符,等待用户输入命令; 将用户输入的命令保存到一个将用户输入的命令保存到一个 buf 中;中; 对对 buf 中的内容进行命令解析,并调用相应的函数执行用户键入的命令;中的内容进行命令解析,并调用相应的函数执行用户键入的命令; 如果命令不是“如果命令不是“my_exitsys” ,则命令执行完毕后转。” ,则命令执行完毕后转。 2. 进入文件系统函数进入文件系统函数 startsys() (1)对应命令:无)对应命令:无 (2)命令调用格式:无)命令调用格式:无 (3)函数设计格式:)函数设计格式:void startsys() (4)功能:由)功能:由 main()函数调用,进入并初始化我们所建立的文件系统,以供用户使用函数调用,进入