文件系统设计试验报告7p

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验结果:
本实验成功地创建了登陆用户dengyurui,并在下面创建了相应的二级目录,成功的完成了对文件夹的创建操作和对文件的创建、删除、打开和关闭等基本操作。实现下列几条命令:1.login用户登录2.dir 列目录3.create创建文件4.delete删除文件5.open打开文件6.Close关闭文件7.read读文件8.write写文件;
cc-c dir.c
open.o:open.c filesys.h
cc-c open.c
rdwt.o:rdwt.c filesys.h
cc-c rdwt.c
format.o:format.c filesys.h
cc-c format.c
install.o: install.c filesys.h
cc-c install.c
filsys:main.o iallfre.o ballfre.o name.o access.o log.o close.o creat.o delete.o dir.o
open.o rdwt.o format.o install.o haຫໍສະໝຸດ Baidut.o cc-o filsys main.o iallfre.o ballfre.o
open打开文件
close关闭文件
read读文件
write写文件
(2)列目录时要列出文件名、物理地址、保护码和文件长度;
(3)源文件可以进行读写保护。
实验提示
(1)首先应确定文件系统的数据结构:主目录、子目录及活动文件等。主目录和子目录都以文件的形式存放于磁盘,这样便于查找和修改。
(2)用户创建的文件,可以编号存储于磁盘上。如file0,file1,file2...并以编号作为物理地址,在目录中进行登记。
列目录时列出了文件名,物理地址,保护码和文件长度。源文件可以进行读写保护。在完成文件的上面的创建、删除、打开和关闭等操作上,又完成了对文件的读写操作,即把系统的日期每隔十秒写入文件中去。
疑难小结:
通过本次试验,我对文件系统设计思想有了进一步的了解,通过动手实现其文件系统设计,更加深刻的理解了文件系统设计的不同特点。同时,在实验过程中,回顾书本上的理论知识,巩固了我的知识。了解了,文件系统实际是为用户提供一个解释执行相关命令的环境。主程序中的大部分语句都被用来执行相应的命令。应确定文件系统的数据结构:主目录、子目录及活动文件等。主目录和子目录都以文件的形式存放于磁盘,这样便于查找和修改。用户创建的文件,可以编号存储于磁盘上。如file0,file1,file2...并以编号作为物理地址,在目录中进行登记。
文件系统设计试验报告
实验目的和要求:
通过一个简单多用户文件系统的设计,加深理解文件系统的内部功能及内部实现。
实验内容与分析设计:
为linux系统设计一个简单的二级文件系统。要求做到以下几点:
(1)可以实现下列几条命令(至少4条);
login用户登陆
dir列文件目录
create创建文件
delete删除文件
halt.o:halt.c
cc-c halt.c
name.o access.o log.o close.o creat.o delete.o dir.o open.o format.o install.o halt.o
main.o:main.c filesys.h
cc-c main.c
igetput.o: igetput.c filesys.h
cc-c igetput.c
Step25 调用open(),打开文件2
Step26 为文件2分配缓冲
Step27 写文件3后关闭文件3
Step28 释放缓冲
Step29 用户退出(logout)
Step30 关闭(halt)
End

1.编写管理文件makefile
本文件系统程序用编写makefile管理工具进行管理。其内容如下:
实验步骤与调试过程:
用两级目录,其中第一级对应于用户账号,第二级对应于用户帐号下的文件。另外,为了简便文件系统未考虑文件共享,文件系统安全以及管道文件与设备文件等特殊内容。主要数据结构:1.I节点2.磁盘i结点3.目录项结构4.超级块 5.用户密码6.目录7.查找i内存节点的hash表8.系统打开表9.用户打开表
Step8 写文件0
Step9 关闭文件0和释放缓冲
Step10 调用mkdir()和chdir()创建子目录
Step11 调用create(),创建文件1
Step12 分配缓冲区
Step13 写文件1
Step14 关闭文件1和释放缓冲
Step15 调用chdir将当前目录移到上一级
Step16 调用create(),创建文件2
***********************************************************************/
/*******************************************
makefile
*******************************************/
设置:主要函数1.i节点内容获取函数iget()(详细描述略)。2.节点内容释放函数iput()(详细描述略)。3.目录创建函数mkdir()(详细描述略)。4.目录搜索函数namei()(详细描述略)。5.磁盘块分配函数balloc()(详细描述略)。6.磁盘块释放函数bfree()(详细描述略)。7.分配i节点区函数ialloc()(详细描述略)。8.解释结点区函数ifree( )(详细描述略)。9.搜索当前目录下文件的函数iname( )(详细描述略)。10.访问控制函数access( )(详细描述略)。11.显示目录和文件函数_dir( )(详细描述略)。12.改变当前目录用函数chdir( )(详细描述略)。13.打开文件函数open( )(详细描述略)。14.创建文件函数create( )(详细描述略)。15.读文件用函数read( )(详细描述略)。16.读文件用函数write( )(详细描述略)。17.用户登陆函数login( )(详细描述略)。18.用户退出函数logout( )(详细描述略)。19.文件系统格式化函数format( )(详细描述略)。20.进入文件系统函数install( )(详细描述略)。21.关闭文件函数close( )(详细描述略)。22.退出文件系统函数halt( )(详细描述略)。23.文件删除函数delecte( )(详细描述略)。
主要算法和程序清单:
begin
Step1 对磁盘进行格式化
Step2 调用install(),进入文件系统
Step3 调用_dir(),显示当前目录
Step4 调用login(),用户注册
Step5 调用mkdir()和chdir()创建目录
Step6 调用create(),创建文件0
Step7 分配缓冲区
iallfre.o: iallfre.c filesys.h
cc-c iallfre.c
ballfre.o: ballfre.c filesys.h
cc-c ballfre.c
name.o:name.c filesys.h
cc-c name.c
access.o:access.c filesys.h
cc-c access.c
log.o:log.c filesys.h
cc-c log.c
close.o:close.c filesys.h
cc-c close.c
creat.c:creat.c filesys.h
cc-c creat.c
delete.o:delete.c filesys.h
cc-c delete.c
dir.o:dir.c filesys.h
Step17 分配缓冲区
Step18 调用write(),写文件2
Step19 关闭文件1和释放缓冲
Step20 调用delecte(),删除文件0
Step21 调用create(),创建文件1
Step22 为文件3分配缓冲区
Step23 调用write(),写文件2
Step24 关闭文件3并释放缓冲区
相关文档
最新文档