1、 操作系统课程设计报告操作系统课程设计报告 题目题目: : 为为 LinuxLinux 系统设计一个简单的二级文件系统系统设计一个简单的二级文件系统 指导老师指导老师: : 时间时间:2012.8.30:2012.8.30 一一 课程设计的目的课程设计的目的 课程设计目的使学生熟悉文件管理系统的设计方法; 加深对所学各种文件操作的了解及 其操作方法的特点。通过模拟文件系统的实现,深入理解操作系统中文件系统的理论知识, 加深对教材中的重要算法的理解。同时通过编程实现这些算法,更好地掌握操作系统的原理 及实现方法,提高综合运用各专业课知识的能力。 二二 课程课程设计的要求设计的要求 1.可以实现下
2、列几条命令: login 用户登录 dir 列目录 create 创建文件 delete 删除文件 open 打开文件 close 关闭文件 read 读文件 write 写文件 2列目录时要列出文件名,物理地址,保护码和文件长度 3源文件可以进行读写保护 三三 算法设计算法设计 本次二级文件系统主要分为五大模块,分别是用户登录模块、新建目录模块、新建文件 模块、删除文件模块和读取文件模块。用户登录成功后才可以进行其他模块的操作。 1 用户登录模块 用户登录模块要求用户输入用户,当输入正确后才能进行其他模块操作,否则提示 用户名不存在并询问用户是否用此名进行注册。 若用户名未满,则提示注册成功
3、,否则提示用 现有注册用户,进行登录,并返回到登录界面。用户登录模块流程图如图 1 所示。 否 是 否 是 开始 输入login 命 输 入 用 户 用户是否存在 进行其他模块 是否注册 图 1 用户登录模块流程图 2 新建文件模块新建文件模块 新建文件模块是在用户出入 create 指令后进行的,进入后会要求用户输入文件名,并 判断文件名是否存在,若没有则在要求用户输入文件读写权限,否则重新输入新的文件名。 新建文件模块流程图如图 2 所示。 是 否 图 2 新建文件流程图 3 删除文件模块删除文件模块 删除文件模块是根据用户鼠标右击时选择到的节点来确定要删除节点的名字与路径, 然 后判断该
4、节点是目录还是文件。 若是文件则直接删除文件, 若是目录则进入该目录再删除其 全部文件。删除文件模块流程图如图 4 所示。 否 是 输入 create 命令 输入文件名 文件名是否存在 输入权限 开始 开始 输如 open 文件名 文件名是否存在 输入权限 提示无此文件 图 4 删除文件模块流程图 4 读取文件模块读取文件模块 读取文件模块,要求用户要在文件打开的前提下,将磁盘中的内容读取到内存中。读取 文件流程图如图 5 所示。 是 否 图 5 读取文件模块流程图 5 写入文件模块写入文件模块 写入文件模块,思路与读取文件模块将本相同,只是添加了对读写权限的判断。 6 遍历文件遍历文件 遍历
5、文件,根据在用户登陆时,记录的值,在二维数组中,找到用户的所有文件对象, 将相应的必须属性全部打印出来。 四四 程序源代码程序源代码 1. 文件对象相关代码 package com.file; import java.io.Serializable; public class FilePro implements Serializable String filename; String content; String username; 输如 read 文件名 文件是否已打开 显示文件内容 提示文件未打 开 开始 Open 文件 文件是否存在 int flag; int protect; pu
6、blic FilePro(String filename,String username,String content,int flag,int protect) this.filename = filename; this.username = username; this.content = content; this.flag = flag; this.protect = protect; 2. 文件读写操作 package com.file; import java.io.*; import java.util.*; public class FileCon Object data = new Object7100; ObjectInputStream in = null; ObjectOutputStream out = null; String path = “D:file“; public FileCon() for(int i = 0;i“); String