文档详情

操作系统课程设计--二级文件系统(java).doc

发布:2017-02-27约2.49万字共21页下载文档
文本预览下载声明
操作系统课程设计报告 二级文件系统(java) 姓名:李爱军 班级:计091-2 学号:200925501211 指导教师:翟一鸣 日期:2012-08-30 目录 一、实验目的 3 二、实验内容 3 三、实验过程 3 四、设计思路 4 五、实现的功能 5 六、实验感悟 5 附录:程序主要代码 5 一、实验目的 通过一个简单多用户文件系统的设计,加深理解文件系统的内部功能及内部实现。 二、实验内容 为linux系统设计一个简单的二级文件系统。要求做到以下几点: 1、可以实现下列几条命令(至少4条); login 用户登陆 dir 列文件目录 create 创建文件 delete 删除文件 open 打开文件 close 关闭文件 read 读文件 write 写文件 2、列目录时要列出文件名、物理地址、保护码和文件长度; 3、源文件可以进行读写保护。 三、实验过程 程序流程 用户登录流程 列文件目录流程 主要类介绍 、public class Systems 文件系统的主类 、public class MyFile自定义的文件结构体类 、public class MyDirectory 自定义的目录的结构体类 、public class SuperBlock implements Serializable 超级快结构体类 、public class INode implements Serializable, ComparableINode 自定义INode节点实体类 、public class FileTools 自定义数据文件的读写工具类 四、设计思路 1、一个磁盘的有扇区(超级块)、索引块区(Inode节点区)、存储区(数据块区) 2、扇区中主要是存储磁盘的总大小、空闲Inode节点、使用的Inode节点、已使用空间、空闲空间。 3、Inode节点主要存储 :当前的地址文件是否打开0代表目录,1代表普通文件对应文件块的地址即序号父节点自己的当前节点private TreeMapInteger, Integer tree) 5、自定应文件:文件对应Inode的索引、文件名字、/数据内容。 6、控制类:得到用户的输入操作调用相应的操作。 五、实现的功能 1、用户的注册和登陆 2、 dir 列文件目录 3、 create 创建文件 4、 delete 删除文件 5、 read 读文件 6、 write 写文件 7、 cd 更改目录 8、 rename 重命名文件名 六、实验感悟 首先想说一句话:“没被逼着是不会出大力的”。解释一下,看到同学们用的都是以前的C或者是C++的文件代码。我自己考来一份,这个悲催啊,自己的C\C++的功底实在是太差劲的,直接看不懂,也没那耐心烦。从网上down了几份java的代码。其中有一份写的不错,很巧妙的实现了老师的要求。可是以真正的课程设计的原理真是风马牛不相及啊。怕老师不让过,于是下决心自己写一下(觉得自己对相应的原理还是知道一些的)。 我的痛苦的过程也就开始了。我真的有一次体味到写程序最难得不是代码的编写,而是思路、思路、思路。前一天很容易的就实现了用户登录相应的操作。同时数据读写的工具类和项目的框架也算是粗糙的完成了。可是接下来就写不下去了,原因是Inode和file或者directory之间是如何关联的。这三个类的属性是如何定义和分配的。自己拿笔也在纸上画,又和舍友李新等同学探讨。有思考了一天多,模模糊糊的开始写,又改有写。就这样一点一点的写着改着,痛苦着并高兴着。终于粗糙的写完了。时间太短啊,还有许多可以优化的地方还没来得修改。 周五下午,怀着一颗忐忑的心找老师验程序。当听到老师的一句:“写的还不错么!”那种高兴无法用言语来形容!这几天的痛苦、熬夜都值了。谢谢老师的夸奖! 附录:程序主要代码 1. Systems.java import java.util.ArrayList; import java.util.Iterator; import java.util.Scanner; import java.util.Set; import java.util.StringTokenizer; /** * 文件管理系统 主类 * * @author l
显示全部
相似文档