操作系统课程设计报告--多级文件系统.doc_第1页
操作系统课程设计报告--多级文件系统.doc_第2页
操作系统课程设计报告--多级文件系统.doc_第3页
操作系统课程设计报告--多级文件系统.doc_第4页
操作系统课程设计报告--多级文件系统.doc_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1 课 程 设 计 课程名称_操作系统_ 题目名称_多级文件系统-1_ 学生学院_计算机学院_ 专业班级_ 10 级网络 3 班_ 学 号_3110006545_ 学生姓名_李志芳_ 指导教师_申建芳_ 2013 年 7 月 1 日 2 3 目录 1.设计目的设计目的.4 2.设计内容设计内容.4 3.运行环境及开发技术说明运行环境及开发技术说明4 4.设计步骤设计步骤5 5.心得体会心得体会16 6.主要实现代码主要实现代码.16 4 1.设计目的:设计目的: 本课程设计要求设计一个模拟的多用户多级目录的文件系统。通过具体的文件存 储空间的管理、文件的物理结构、目录结构和文件操作的实现,加深对文件系统内部 功能和实现过程的理解。 2.设计内容:设计内容: 首先在内存中开辟一个虚拟磁盘空间作为文件存储器,在其上实现一个多用户多 目录的文件系统。其中文件物理结构可采用显式链接。另外磁盘空闲空间的管理选择 位示图。由于采用位示图来管理文件存储空间,并采用显式链接分配方式,则可以将 位示图合并到 FAT 中。 文件目录结构采用多用户多级目录结构,每个目录项包含文件名、物理 地址、长度等信息,还可以通过目录项实现对文件的读和写的保护。 另外设计一个的用户界面,提供以下相关文件操作: (1)具有 login (用户登录); (2)系统初始化(建文件卷、提供登录模块); (3)文件的创建: create; (4)文件的打开:open; (5)文件的读:read; (6)文件的写:write; (7)文件关闭:close; (8)删除文件:delete ; (9)创建目录(建立子目录):mkdir; (10)改变当前目录:cd; (11)列出文件目录:dir; (12)退出:logout。 3.运行环境及开发技术说明:运行环境及开发技术说明: 1.本课程设计是用 web 的形式模拟多级用户多目录文件系统。本系统用到技术有 jsp+Tomcat+mysql。 5 2.系统运行的环境:配置好 java 的 jre1.5 及以上版本,Tomcat6.0 版本,mysql5.5 版本,eclipse10.0 版本。 3.运行系统说明:将项目导入 eclipse 或者直接把项目文件夹复 制到 tomcat 的 webapp 目录下,打开 tomcat 服务器,再在浏览器地址栏输入 即可进入系统的登录页面: 4.设计步骤:设计步骤: (1)需求分析。 本系统为多用户多目录的文件管理系统,用户可以对文件或是文件目录进行操作。 多用户功能可以满足不同用户不同的需求,同时因增加了管理员登陆和用户登录功能 使得系统起到了很好的保密作用。 文件系统是操作系统中负责管理和存取文件信息的机构,它具有“按名存取”的 功能,已使得用户能透明的存储和访问文件。为了是实现按名存取,文件需要对文件 存储设备进行合理化的组织,分配;对存储设备上的文件进行保护,保密和提供共享 的手段。文件系统主要实现对具体的文件存取空间的管理、文件的物理结构、目录结 构管理和文件操作。另外文件系统还要提供检索文件或是文件中记录的手段,文件系 统就是完成上述功能的一组软件和数据结构的集合。 6 而模拟一个多用户多级目录的文件管理系统,要完成对文件的基本操作,文件的 基本操作有文件,文件夹的新建、打开、读取、写入文件、创建更改目录、修改文件 内容、删除、列出目录内容等信息。系统建立了文件目录树,存储文件中的所有文件。 对于用户名下的文件,用文件目录树的分枝来存储。另外由于文件系统提供了安全保 密功能,所有模拟文件系统还需要有管理员登陆和创建用户和用户登录,密码修改等 功能。 另外,为了方便操作,还需模拟一个操作界面,方便用户进行操作。 (2)概要设计: 1).设计思想 文件系统是操作系统中负责管理和存取文件信息的机构,它具有“按名存 取”的功能。文件系统主要实现对具体的文件存取空间的管理、文件的物理结构、 目录结构管理和文件操作。 本实验中的文件系统是多用户多级目录的文件系统。实验中定义用户的上限 为 5 个,目录结构采用多级目录结构 2).抽象数据类型的定义 /连接数据库在数据类型保存在数据库中 /*create database homework;*/ use homework; /*用户表*/ create table user ( id int primary key auto_increment, name varchar(100), password varchar(150) ); /*目录表 */ create table directory ( id int primary key auto_increment, name varchar(100), pathp varchar(100), /* 表途径*/ 7 pdate datetime ); /*文件表*/ create table ufile ( id int primary key auto_increment, name varchar(100), content varchar(100), /*文件内容*/ pdate datetime, pathu varchar(100) /* 表途径*/ ); create table priority ( id int primary key auto_increment, fileName varchar(100),/*文件名称*/ userName varchar(100),/*用户名*/ r int, /*1 表示可读,0 表示不可读 */ w int, /*1 表示可写,0 表示不可写 */ exe int /*1 表示可执行,0 表示不可执行*/ ); /*insert into ufile vaules (null,a,aa,now(),A)*/ /*初始化目录表*/ insert into directory values (null,root,A,now() ); insert into directory values (null,root,B,now() ); insert into directory values (null,root,C,now() ); 3).主程序的流程以及各程序模块之间的层次(调用)关系。 在系统中设置了用户登陆模式。用户初始化时不存在,则可在注册。注册 成功后方可进行登录,登录成功后则可进行一系列的操作。如 用户注册:register.jsp 用户登录:login.jsp 磁盘的初始化:art_mana.jsp /建立 3 个分区 8 文件的创建:info_ufile.jsp /建立新文件 文件的打开:file_mana.jsp/打开文件 文件删除:delete_file.jsp/删除文件 文件的读:check_file.jsp/查看文件 创建目录(建立子目录):info_dir.jsp/建立新目录 查看当前目录:file_mana.jsp /显示目录 删除目录:delete_dir.jsp/删除目录 返回上一级目录:main.jsp /向上返回 退出: main.jsp /退出功能 (3)详细设计:实现概要设计中定义的功能;画出函数的调用关系图;画出各程序流程 图。 开始 用户选择? 虚拟磁盘初始化 管理员登陆 成功? 用户选择1? 1 用户登录 成功? 2 否 结束3 2? 创建用户是 否 删除用户 查看当前用户 修改密码 3? 4? 是 是 是 否 否 返回登录窗口 否 此用户是否存 在? 删除 是 否 输入原密码对? 修改成功 对 否 用户选择1? 2? 用户选择3? 用户选择7? 用户选择6? 用户选择5? 4? 用户选择8? 用户选择9? 创建文件同一目 录下不能同名 删除文件 创建目录 删除目录 打开目录 返回上一层 查看当前目录 修改密码 查看文件 是 否 否 否 否 否 否 否 否 是 是 是 是 是 是 是 否 是 (4)部分功能模块流程图: 9 a. 用户登录模块 用户首次登录要注册,用户登录模块要求用户输入账号与密码,当输入正 确后进入主视图才能进行其他模块操作,否则提示账号密码错误并要求用户重 新输入。用户包括普通用户和超级用户。超级用户可以修改其他用户的权限, 使他们可以修改其他用户创建的文件。 yes no Yes no no B.修改文件功能结构图 yes no no 用户登录 首次登录 注册 用户名和 密码正确 进入系统 注册成功 修改文件 是创建本文 件的用户 该用户分配到 修改权限 修改失败 10 yes (5)系统测试:列出所有系统功能的测试结果,测试数据应该完整、严格,应该至少包 含需求分析中所列。 1)若不是用户 先注册 注册如下: 2)用户登录功能: 登录成功后可进行用户的操作: 3)系统初始化:及磁盘的分区 修改成功 11 4)目录的创建:(创建子目录) 在 A 盘下创建目录 home 结果如下: 5)创建文件 如在 A 盘目录 home 中创建文件 myfile 如下 6)文件的打开:(查看) 7)文件的读取 结果如下 12 8)文件的写:(修改) 结果如下: 9)文件的删除(删除) 删除 myfile 结果如下 10)改变当前目录(修改) 将 home 修改为 home-lzf 结果如下 13 11)列出目录 如 B 目录下有目录和文件 12)用户修改密码的功能: 13)用户退出功能 返回用户登录界面 14)用其他用户 zj 登录修改前面 lzf 用户创建的文件 myfile2 14 修改 myfile2 文件 结果如下图: 用 root 用户修改 zj 对 myfile2 的权限修改,时他能修改 myfile2 修改权限 15 修改后,再用 zj 用户修改 lzf 用户创建的文件 myfile2 (6)系统文件说明 Register.jsp:用户注册;login.jsp:用户登录;art_mana.jsp:磁盘初始化; info_dir.jsp 建立目录 16 Info_ufile.jsp 新建文件,file_mana.jsp 打开文件,delete_file.jsp 删除文件;check_file.jsp 查看 文件;main.jsp 主页面,prioritDdit.jsp 修改权限;priorityEditDeal.jsp 修改权限处理。 faithConn.jsp 连接错误页面;faithregister.jsp 注册错误页面。 5.心得体会。心得体会。 在做课程设计的过程中遇到很多的问题,因为是用 java web 来做的,系统在显示的 效果上并不是很好,但是都基本上完成了实验的要求,如多用户多目录的文件系统要求的 多用户登录,每个用户进去后都可以创建自己的目录和文件。但是每个用户创建的文件只 能是自己修改,除非 root 用户修改其他用户的权限。 在编程此系统时,方发觉自己对文件系统理解得不够透彻。例如在考虑如何实现多用 户多目录时,虽然书本上树行目录的图看起来很清晰,但一编程起来就好像往二级目录思 路那样编程了。 通过这次实验,让我对操作系统的多级用户多目录文件系统有了更深的理解,对文件 系统的文件组织形式和存储方式有了更深的理解。 最后通过用 java 编程有加深了对 java 知识点的理解和 java web 的理解。 总之,这次课程设计让自己受益匪浅。 6.主要实现代码。主要实现代码。 (1)相关类定义 A)连接数据库类 public class DB public static Connection getConn() Connection conn = null; try Class.forName(“com.mysql.jdbc.Driver“); conn = DriverManager.getConnection(“jdbc:mysql:/localhost:3306/homew ork“, “root“ , “123456“); catch (ClassNotFoundException e) e.printStackTrace(); catch (SQLException e) e.printStackTrace(); return conn; 17 public static Statement createStmt(Connection conn) Statement stmt = null; try stmt = conn.createStatement(); catch (SQLException e) e.printStackTrace(); return stmt; public static ResultSet executeQuery(Statement stmt, String sql) ResultSet rs = null; try rs = stmt.executeQuery(sql); catch (SQLException e) e.printStackTrace(); return rs; B)目录类 public class Directory private int id; private String name; private String pathp; /* 父节点,表途径*/ private Date pdate; public void saveRs(ResultSet rs) try setId(rs.getInt(“id“); setName(rs.getString(“name“); setPathp(rs.getString(“pathp“); setPdate(rs.getTimestamp(“pdate“); catch (SQLException e) e.printStackTrace(); 18 C)权限类 public class Priority private int id; private String fileName; private String userName; private int r; private int w; private int exe; public void saveRs(ResultSet rs) try setId(rs.getInt(“id“); setFileName(rs.getString(“fileName“); setUserName(rs.getString(“userName“); setR(rs.getInt(“r“); setW(rs.getInt(“w“); setExe(rs.getInt(“exe“); catch (SQLException e) e.printStackTrace(); D)文件类 /*文件表*/ public class Ufile private int id; private String name; private String content; private Date pdate; private String pathu ;/*表路径*/ public void saveRs(ResultSet rs) try setId(rs.getInt(“id“); setName(rs.getString(“name“); setContent(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论