1、 操作系统课程设计报告操作系统课程设计报告 题 目: 文件系统的模拟设计 一、一、设计目的设计目的 本课程设计是学习完“操作系统原理”课程后进行的一次全面的综合训练, 通过课程设计,更好地掌握操作系统的原理及实现方法,加深对操作系统基础理 论和重要算法的理解,加强学生的动手能力。 二、二、设计内容设计内容 (1 1)概述)概述 为 Linux 系统设计一个简单的二级文件系统。要求做到以下几点: 1.可以实现下列几条命令: login 用户登录 dir 列目录 create 创建文件 delete 删除文件 open 打开文件 close 关闭文件 read 读文件 write 写文件 cd 进
2、出目录 2列目录时要列出文件名,物理地址,保护码和文件长度 3源文件可以进行读写保护 (2 2)设计原理)设计原理和系统总体功能框架图和系统总体功能框架图 1、在内存中开辟一个虚拟磁盘空间作为文件存储器,在其上实现一个多用 户多目录的文件系统。 2、文件物理结构可采用显式链接或其他方法。 3、磁盘空闲空间的管理可选择位示图或其他方法。如果采用位示图来管理 文件存储空间,并采用显式链接分配方式,则可以将位示图合并到 FAT 中。 4、文件目录结构采用多用户多级目录结构,每个目录项包含文件名、物理 地址、长度等信息,还可以通过目录项实现对文件的读和写的保护。 5、对文件或目录的操作采用 windo
3、ws 系统的 API 函数来实现。 6、设计一个较实用的用户界面,方便用户使用。要求提供以下相关文件操 作:用户登录、创建目录、删除目录、创建文件、删除文件、读文件、写文件、 复制文件、移动文件、返回根目录、退出。 功能结构图如图 1.0 所示: 开始 format 列 目 录 选择操作 退出 停止 登录 改 变 目 录 创建 文件 创 建 目录t 写 文 件 关 闭 文件 删 除 文 件 打 开 文 件 结束 图 1.0 安装 (3 3)详细设计)详细设计及少数重要编码的说明及少数重要编码的说明 这次课程设计中,我负责 4 个板块,分别是显示列表函数和目录、创建函 数文件创建函数、打开文件函
4、数和关闭文件系统函数。 、 显示列表函数和目录显示列表函数和目录 流程图如图 1.1 所示 、 文件创建函数文件创建函数 算法:查找当前目录下是否有同名文件,是则退出,否则让用户输入文本 文件内容,以#结束。申请 inode 空间(ialloc 函数),申请硬盘 block 空间 (balloc 函数) ,申请失败则结束。将文件内容写入 inode 空间和 block 空间。修 改当前目录的结构,修改 inode 位图,block 位图,写入模拟硬盘。详细过程如 流程图 1.2 所示: 模拟文件系统 创 建 目 录 删 除 目 录 创 建 文 件 删 除 文 件 读 文 件 写 文 件 复 制 文 件 移 动 文 件 返 回 根 目 录 图 1.1 、打开文件函数、打开文件函数 对文件进行关闭操作,若此时文件不存在或处于读状态或写状态, 则返回关闭失败信息;若此时文件处于空闲状态,则调用 Close 函数进行关 闭操作。流程图如图 1.3 所示: 开始 k=1 或