FileManagementSystem

这个项目来自于广东工业大学的操作系统课程设计题目(多级文件系统-2)的实现
Github仓库地址 -> 传送门

介绍

以下是该课设的题目要求:

题目

多级文件系统-2

指导老师

李敏老师

主要内容

要求设计一个模拟的多用户多级目录的文件系统。通过具体的文件存储空间的管理、文件的物理结构、目录结构和文件操作的实现,加深对文件系统内部功能和实现过程的理解

基本任务要求

  • 在内存中开辟一个虚拟磁盘空间作为文件存储器,在其上实现一个多用户多目录的文件系统
  • 文件物理结构可采用连续结构
  • 磁盘空闲空间的管理选择位示图
  • 文件目录结构采用多用户多级目录结构,每个目录项包含文件名、物理地址、长度等信息,还可以通过目录项实现对文件的读和写的保护
  • 设计一个较实用的用户界面,方便用户使用。要求提供以下相关文件操作:
    • 用户登录(login)
    • 系统初始化(建文件卷、提供登录模块)
    • 创建文件(create)
    • 打开文件(open)
    • 读取文件(read)
    • 写入文件(write)
    • 关闭文件(close)
    • 删除文件(delete)
    • 创建目录(建立子目录)(mkdir)
    • 改变当前目录(cd)
    • 列出文件目录(dir)
    • 退出(logout)
  • 系统必须可实际演示,选用程序设计语言:C++、C等

参考文献

[1] 计算机操作系统, 汤小丹等 ,西安电子科技大学出版社

[2] 操作系统实验指导书,傅秀芬,广东工业大学(自编)

[3] 计算机操作系统教程 ( 第二版 ), 张尧学、 史美林,清华大学出版社

[4] 现代操作系统,A.S.Tanenbaum 著,陈向群等译机械工业出版社

本系统的实现

下面仅做简略的介绍。更详细的系统设计、实现、测试请查看 文件管理系统 操作系统课程设计.doc 文件

编程语言

Java

实现的功能

实现的功能包括了上面“基本任务要求”中的所提到的所有相关文件操作。除此之外,还实现了:

  • 文件路径解析
  • 查看磁盘位示图
  • 查看系统帮助列表
  • 保存磁盘数据
  • 加载磁盘数据

环境要求

JDK 8及以上、maven环境

注意事项

因为要保存磁盘数据,所以在运行文件系统并退出文件系统之后,会在项目文件夹的同级目录下生成一个 save 文件夹,里面会创建一个 disk.ser 文件用于保存文件系统的磁盘数据

改进方案

本项目在进行操作系统课设答辩的时候拿到了优(成绩等级有:优、良、中等、及格、不及格)

下面列出一些对该项目的改进方案,大家可参考并对其改进:

  • 实现文件共享
  • 实现对文件的存取保护
  • 对磁盘碎片进行整理[1]
  • 优化树形目录结构的数据结构
  • 增设更多合理的文件操作[2]

[1] 在进行磁盘空间的分配时,本项目采用的是连续分配,这必然会导致产生很多磁盘碎片。优化的方法可以是;①定期对磁盘空间进行“紧凑”,这样可以将碎片合并成较大的磁盘空间; ②采用更优的磁盘空间分配方式,例如离散分配

[2] 还可以增设复制文件操作、剪切文件操作等更多合理的文件操作

最后

本项目仅供学习交流使用

多级文件系统(操作系统课设)相关推荐

  1. 操作系统课设--具有二级索引的文件系统

    山东大学操作系统课设lab5 实验五 具有二级索引的文件系统(lab5) 实验目的 实验环境 实验思路 调试记录 实验五 具有二级索引的文件系统(lab5) 实验目的 Nachos系统原有的文件系统只 ...

  2. 操作系统课设--扩展文件系统

    山东大学操作系统课设lab4 实验四 扩展文件系统(lab4) 概念欠缺 实验目的 实验环境: 实验思路: 关键源代码注释以及程序说明: 调试记录: 实验四 扩展文件系统(lab4) 概念欠缺 ifd ...

  3. 华南农业大学操作系统课设(模拟磁盘文件系统实现)(JavaFX)(单人课设)

    文章目录 展示效果的视频 题目要求+代码+报告+展示视频的下载地址 实验报告 一.需求分析 (1)输入的形式和输入值的范围: 1.输入的形式 2.输入值的范围 (2)输出的形式: (3)程序所能达到的 ...

  4. 华南农业大学课设——数据结构课设、Java课设、操作系统课设

    文章目录 缘起 大二上-数据结构课设(高校教学管理系统)-C++.Qt 视频演示 感想 大二下-Java课设(流程图绘制程序)-JavaFX 视频演示 感想 大三上-操作系统课设(模拟磁盘文件系统实现 ...

  5. 操作系统课设(ljh老师版)

    操作系统课设 完成一个文件模拟系统,做一个记录 #include<iostream> #include<string> #include<stdio.h> #inc ...

  6. 操作系统课设--虚拟内存

    山东大学操作系统课设lab7 实验七 虚拟内存(lab7) 实验目的 实验环境 实验思路 关键源代码注释以及程序说明 调试记录 实验七 虚拟内存(lab7) 实验目的 在未实现虚拟内存管理之前,Nac ...

  7. 操作系统课设--系统调用

    山东大学操作系统课设lab6 实验六 系统调用(lab6) 实验目的 实验环境 实验思路 调试记录 实验六 系统调用(lab6) 实验目的 扩展现有的class AddrSpace的实现,使得Nach ...

  8. 操作系统课设--使用信号量解决生产者/消费者同步问题

    山东大学操作系统课设lab3 实验三 使用信号量解决生产者/消费者同步问题(lab3) 实验目的 理解Nachos的信号量是如何实现的 生产者/消费者问题是如何用信号量实现的 在Nachos中是如何创 ...

  9. 操作系统课设--具有优先级的线程调度

    山东大学操作系统课设lab2 实验二 具有优先级的线程调度(lab2) 概念欠缺 实验环境 实验目的 1. 熟悉Nachos原有的线程调度策略 2. 设计并实现具有优先级的线程调度策略 实验二 具有优 ...

最新文章

  1. xssfsheet removerow 剩下空白行怎么处理_你看不上的农业会计!我却凭借其账务处理,过上你求之不得的生活...
  2. 对话预训练_百度发布首个大规模隐变量对话模型PLATO
  3. 微软向Linux社区开放60000多项专利:对开源微软是认真的
  4. 嵌套的json ajax,通过jquery或javascript通过AJAX读取嵌套的JSON并输出到表中
  5. python wordpress xmlrpc_python-markdown自动发送wordpress文章(python-xmlrpc-wordpress)
  6. 小球(信息学奥赛一本通-T1363)
  7. html+css个人博客_如何在互联网放置 HTML 页面
  8. Sigar - no sigar-amd64-winnt.dll in java.library.path
  9. 技术人创业之心不死!
  10. 迅闪同步到顺网无盘服务器,关于Win10x64顺网、信佑7、伴侣、迅闪VIP开超级后蓝屏解决方案...
  11. 冒泡排序java实现
  12. mysql系统结构图_MySQL架构图
  13. 【技术讨论】从弹弹堂说起,如何用2D物理引擎编写一个游戏一2011-11-05 10:36...
  14. 东华理工大学计算机网络期末考试试卷,东华理工大学计算机网络计算题
  15. java 分转元_java元转分分转元
  16. 1.3 数值分析 有效数字
  17. Python数据分析入门笔记6——数据清理案例练习
  18. C#-窗体通讯录系统
  19. 晶振03——晶振烧坏的原因
  20. 利用requests库爬取网页获取数据

热门文章

  1. Unity 给手游用的高性能辉光(Bloom) Shader
  2. 如何根据LAC和CellID进行手机定位
  3. FAT、FAT32和exFAT文件系统
  4. JavaSE —— 使用 Javac 编译 Java 程序
  5. c语言程序设计 a,C语言程序设计试题A
  6. 冷迁移oracle数据库,Oracle数据库迁移--冷迁移
  7. discuz3.2开启ssl实现https需要修改的几个地方
  8. 【CTF整理】Who are you (2017强网杯web题)
  9. 跟着老猫来搞GO-基础进阶
  10. c语言计算年龄的编程,C语言编程实现---计算实际年龄