实验报告
实验题目:文件系统
姓名:
学号:
课程名称:操作系统
所在学院:信息科学与工程学院
专业班级:计算机
任课教师:
实验项目名称文件系统
一、实验目的与要求:
1、通过一个简单多用户文件系统的设计,加深理解文件系统的内部功能及其内部实现。
2、熟悉文件管理系统的设计方法,加深对所学各种文件操作的了解及其操作方法的特点。
3、通过模拟文件系统的实现,深入理解操作系统中文件系统的理论知识, 加深对教材中的重要算法的理解。
4、通过编程实现这些算法,更好地掌握操作系统的原理及实现方法,提高综合运用各专业课知识的能力。
二、实验设备及软件:
一台PC(Linux系统)
三、实验方法(原理、流程图)
试验方法
(1)首先应当确定文件系统的数据结构:主目录、子目录以及活动文件等。
主目录和子
目录都以文件的形式存放于磁盘,这样便于查找和修改。
(2)用户创建文件,可以编号存储于磁盘上。
如file0,file1,file2…并以编号作为物理地
址,在目录中登记。
文件系统功能流程图
图1.文件系统总体命令分析
图 2.登录流程图图 3. ialloc流程图
图4.balloc流程图图5.密码修改流程图
图6.初始化磁盘
图 7.显示所有子目录 dir/ls 操作流程图
图8.创建文件 creatfile 、创建目录 mkdir 流程图
图9.改变当前路径 cd 操作流程图
实验原理
1.文件操作
◆mkdir 创建目录文件模块,输入 mkdir 命令,回车,输入文件名,回车,即会在当前目录文件下创建一个名为刚刚输入的文件名的目录文件。
在该创建过程中首先要判断该目录中有没有同名的文件,如果有的话就创建失败,还要判断在该目录下有没有创建文件的权限,有权限才可以创建。
具体流程图查看第二节,系统流程图设计部分。
◆del 删除文件模块,输入 del命令,回车,输入文件名,回车,即会在当前目录文件下删除一个名为刚刚输入的文件名的数据文件。
在该删除过程中要判断该目录中是否存在该文件,如果不存在就没有必要执行该操作了,还要判断在该目录下有没有删除文件的权限,有权限才可以删除。
具体流程图查看第二节,系统流程图设计部分。
◆ls 显示当前目录下所有目录的模块,输入 ls 命令,回车 ,即会在屏幕上显示当前目录下的所有目录。
在该过程中要判断该目录中是否为空,如果为空就没有必要执行该操作了。
执行操作时,要调用 readdir (INode inode )函数 ,先读入文件内容到 content 里面,然后直接输出。
如果子目录里面还有子目录,则通过递归,一并输出来。
具体流程图查看第二节,系统流程图设计部分。
◆chmod 改变文件权限模块,输入 chmod 命令,回车,输入文件名,回车,即会根据不同类别的用户在屏幕上提示要改变哪一类用户的权限。
如果是文件拥有者执行该操作,他可以选择修改自己、其他用户的权限;如果是文件所属组成员执行该操作,他可以选择修改自己、其他用户的权限;如果是其他用户执行该操作,他只能选择修改自己的权限;在该过程中要判断该目录中是否存在该文件,如果不存在就没有必要执行该操作了。
执行操作时,要判断对该文件有没有执行写操作的权利,没有就不能进行。
具体流程图查看第二节,系统流程图设计部分。
◆cd 改变当前所在目录的模块。
输入 cd,回车,相应的字符串,回车,则会根据输入字符串的不同跳转到不同的目录下。
如果字符串是‘ .’ ,则到当前目录;如果字符串是‘ ..’ ,则到父目录;如果字符串是‘/’ ,则到根目录;如果字符串是当前目录下的子目录,则到该子目录;如果字符串是一个决定路径,则到该绝对路径。
当然在执行的时候要判断有没有该子目录或者该绝对路径,如果没有的话,就不能执行。
具体流程图查看第二节,系统流程图设计部分。
2. 用户操作
◆login 用户注销模块,输入 login ,回车,当前用户就退出了,需要重新登录。
◆pw 用户修改口令模块,输入 pw ,回车,则会提示输入原始密码,输入正确了才可以提示输入新密码,并且要求新密码输入两次,两次一样了才能通过修改密码成功。
具体流程图查看第二节,系统流程图设计部分。
◆logout 用户退出系统模块,输入 logout ,回车,系统自动退出。
五、实验数据(现象)处理分析
实验现象
成功运行文件系统,并开始登录:
列出目录:
添加新用户密码不一致而添加失败:
添加新用户:
退出登录:
添加新用户退出登录到重新登录新用户:
修改用户密码:
创建目录以及列出新建的目录:
删除文件目录:
改变目录(进入指定目录):
没有权限创建文件目录的情况:
删除用户失败的情况:
尝试改变文件权限:
用户删除操作的权限控制:
本文件系统还有很多功能,修改文件权限、文件拥有者、文件所属组与前面的目录。