操作系统课程设计文件系统
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
湖南工业大学
课程设计
资料袋
计算机与通信学院学院(系、部)2013 ~ 2014 学年第 1 学期课程名称计算机操作系统指导教师左新娥职称讲师
学生姓名专业班级学号
题目文件系统演示
成绩起止日期2013 年12 月9 日~2013 年12 月15 日
目录清单
课程设计任务书
2013 —2014学年第1 学期
学院(系、部)计算机与通信学院专业班级课程名称:计算机操作系统学生姓名:
设计题目:指导教师:左新娥
完成期限:自2013 年12 月9 日至2013 年12 月15 日共 1 周
指导教师(签字):年月日
系(教研室)主任(签字):年月日
课
程设计说明书
课程名称:计算机操作系统
设计题目:文件系统演示
专业:网络工程班级:
学生姓名: 学号:
指导教师:左新娥
2013 年4 月日
目录
一课程设计简介 (5)
1.1 课程设计的目的 (5)
1.2 课程设计内容 (5)
二课程设计实现过程 (6)
2.1程序功能需求分析 (6)
2.2程序功能模块分析 (6)
2.2.1 format 格式化 (6)
2.2.2 install 安装 (6)
2.2.3 login 登陆 (7)
2.2.4 create 创建文本文件 (7)
2.2.5 cd –进入子目录或者上级目录 (7)
2.2.6 del 删除文件或目录 (8)
2.2.7 help 显示帮助 (8)
2.2.8 exit 退出系统 (8)
2.3程序实现过程 (8)
2.3.1 相关结构体描述 (8)
2.3.2 相关全局变量 (11)
2.3.2 主要功能函数代码 (13)
2.4程序测试截图 (20)
3设计总结 (22)
参考文献 (23)
一课程设计简介
1.1 课程设计的目的
课程设计目的使同学们熟悉文件管理系统的设计方法;加深对所学各种文件操作的了解及其操作方法的特点。通过模拟文件系统的实现,深入理解操作系统中文件系统的理论知识, 加深对教材中的重要算法的理解。同时通过编程实现这些算法,更好地掌握操作系统的原理及实现方法,提高综合运用各专业课知识的能力。
1.2 课程设计内容
课程设计内容设计一个简单的多用户文件系统。即
①在系统中用一个文件来模拟一个磁盘;
②此系统至少有:Create、delete、open、close、read、write等和部分文件属性的功能。
③实现这个文件系统。
④能实际演示这个文件系统。基本上是进入一个界面(此界面就是该文件系统的界面)后,可以实现设计的操作要求。
二课程设计实现过程
在本段落中,将从程序功能需求分析,程序流程设计,程序实现来完成本章的描述。
2.1程序功能需求分析
本次课程设计内容是设计一个简单的多用户文件系统,对软件的功能需求如下:
在linux系统中用一个文件来模拟一个磁盘;
可以对这个模拟磁盘进行的操作为:Create、delete、open、close、read、write等和部分文件属性的功能。
使用编程语言实现这个文件管理系统,能实际演示这个文件系统。基本上是进入一个程序主界面(此界面就是该文件系统的界面)后,可以实现设计的操作要求。
程序运行不需安装,避免写系统和注册表;
2.2程序功能模块分析
2.2.1 format 格式化
只写打开模拟文件,初始化超级快,初始化dinode位图 block位图,初始化主目录,初始化etc目录,初始化管理员admin 目录,初始化用户xiao 目录,初始化用户passwd文件,写入模拟硬盘文件。
2.2.2 install 安装
读写打开模拟文件,读取dinode位图 block位图,读取主目录,读取etc 目录,读取管理员admin 目录,读取用户xiao 目录,读取用户passwd文件。
2.2.3 login 登陆
用户输入用户名和密码,在passwd文件中查找是否有此用户,核对密码。正确则登陆成功,当前目录设定到当前用户文件夹下。
2.2.4 create 创建文本文件
查找当前目录下是否有同名文件,是则退出,否则让用户输入文本文件内容,以‘###’结束。申请inode空间(ialloc函数),申请硬盘block空间(balloc 函数),申请失败则结束。将文件内容写入inode空间和block空间。修改当前目录的结构,修改超级快,修改inode位图,block位图,写入模拟硬盘。
2.2.5 cd –进入子目录或者上级目录
查找当前目录是否有该子目录,没有则退出,调用access()判断当前用户是否有权限,无则退出,有则读取该子目录的inode,将当前目录指向该目录。
2.2.6 del 删除文件或目录
查找当前目录是否有该文件名,没有则退出,有则调用access()判断是否有权限,有则判断是否为系统文件,是则无法删除,不是则判断是否是文件,是文件则直接删除,不是则判断是否文件夹,是文件夹则判断该文件夹下是否有文件,有文件则无法删除。提示用户是否删除,确认则删除文件,修改当前文件夹inode,block结构,修改该文件占有的inode和block位图为0,修改超级块,写入模拟硬盘。
2.2.7 help 显示帮助
在命令模式在输入help可以显示本程序所有的的命令和对应的解释,在输入help时候,列出系统中可以用的函数对应的命令名称。
2.2.8 exit 退出系统
在文件模拟系统中输入exit可以退出程序,当从键盘处接受到字符时候,判断为exit时候,则推出程序,并且关闭文件流。
2.3程序实现过程
2.3.1 相关结构体描述
一.Inode节点结构