《2022年文件系统设计实验报告 .pdf》由会员分享,可在线阅读,更多相关《2022年文件系统设计实验报告 .pdf(4页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、文件系统设计试验报告班 级:10 网工三班学生姓名:谢昊天学号:1215134046 实验目的和要求:通过一个简单多用户文件系统的设计,加深理解文件系统的内部功能及内部实现。实验内容与分析设计:为 linux 系统设计一个简单的二级文件系统。要求做到以下几点:(1)可以实现下列几条命令(至少4 条);login 用户登陆dir 列文件目录create 创建文件delete 删除文件open 打开文件close 关闭文件read 读文件write 写文件(2)列目录时要列出文件名、物理地址、保护码和文件长度;(3)源文件可以进行读写保护。实验提示(1)首先应确定文件系统的数据结构:主目录、子目录
2、及活动文件等。主目录和子目录都以文件的形式存放于磁盘,这样便于查找和修改。(2)用户创建的文件,可以编号存储于磁盘上。如file0,file1,file2.并以编号作为物理地址,在目录中进行登记。实验步骤与调试过程:用两级目录,其中第一级对应于用户账号,第二级对应于用户帐号下的文件。另外,为了简便文件系统未考虑文件共享,文件系统安全以及管道文件与设备文件等特殊内容。主要数据结构:1.I节点 2.磁盘 i 结点 3.目录项结构 4.超级块 5.用户密码 6 目录 7.查找 i内存节点的hash 表 8.系统打开表 9.用户打开表设置:主要函数 1.i节点内容获取函数iget()(详细描述略)。2
3、.节点内容释放函数iput()(详细描述略)。3.目录创建函数mkdir()(详细描述略)。4.目录搜索函数namei()(详细描述略)。5.磁盘块分配函数balloc()(详细描述略)。6.磁盘块释放函数bfree()(详细描述略)。7.分配 i 节点区函数ialloc()(详细描述略)。8.解释结点区函数ifree()(详细描述略)。9.搜索当前目录下文件的函数iname()(详细描述略)。10.访问控制函数access()(详细描述略)。11.显示目录和文件函数_dir()(详细描述略)。12.改变当前目录用函数 chdir()(详细描述略)。13.打开文件函数open()(详细描述略)
4、。14.创建文件函数 create()(详细描述略)。15.读文件用函数read()(详细描述略)。16.读文件用函数 write()(详细描述略)。17.用户登陆函数login()(详细描述略)。18.用户退出函名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 4 页 -数 logout()(详细描述略)。19.文件系统格式化函数format()(详细描述略)。20.进入文件系统函数install()(详细描述略)。21.关闭文件函数close()(详细描述略)。22.退出文件系统函数halt()(详细描述略)。23.文件删除函数delecte()(详细描述略)。实验结果:本实验
5、成功地创建了登陆用户dengyurui,并在下面创建了相应的二级目录,成功的完成了对文件夹的创建操作和对文件的创建、删除、打开和关闭等基本操作。实现下列几条命令:1.login 用户登录 2.dir 列目录 3.create 创建文件4.delete 删除文件5.open 打开文件 6Close 关闭文件 7.read 读文件 8.write 写文件;列目录时列出了文件名,物理地址,保护码和文件长度。源文件可以进行读写保护。在完成文件的上面的创建、删除、打开和关闭等操作上,又完成了对文件的读写操作,即把系统的日期每隔十秒写入文件中去。疑难小结:通过本次试验,我对文件系统设计思想有了进一步的了解
6、,通过动手实现其文件系统设计,更加深刻的理解了文件系统设计的不同特点。同时,在实验过程中,回顾书本上的理论知识,巩固了我的知识。了解了,文件系统实际是为用户提供一个解释执行相关命令的环境。主程序中的大部分语句都被用来执行相应的命令。应确定文件系统的数据结构:主目录、子目录及活动文件等。主目录和子目录都以文件的形式存放于磁盘,这样便于查找和修改。用户创建的文件,可以编号存储于磁盘上。如file0,file1,file2.并以编号作为物理地址,在目录中进行登记。主要算法和程序清单:begin Step1 对磁盘进行格式化 Step2 调用 install(),进入文件系统 Step3 调用 _di
7、r(),显示当前目录 Step4 调用 login(),用户注册 Step5 调用 mkdir()和 chdir()创建目录 Step6 调用 create(),创建文件0 Step7 分配缓冲区 Step8 写文件 0 Step9 关闭文件 0 和释放缓冲 Step10 调用 mkdir()和 chdir()创建子目录 Step11 调用 create(),创建文件1 Step12 分配缓冲区 Step13 写文件 1 Step14 关闭文件1 和释放缓冲 Step15 调用 chdir将当前目录移到上一级 Step16 调用 create(),创建文件2 名师资料总结-精品资料欢迎下载-名
8、师精心整理-第 2 页,共 4 页 -Step17 分配缓冲区 Step18 调用 write(),写文件2 Step19 关闭文件1 和释放缓冲 Step20 调用 delecte(),删除文件0 Step21 调用 create(),创建文件1 Step22 为文件 3 分配缓冲区Step23 调用 write(),写文件2 Step24 关闭文件3 并释放缓冲区Step25 调用 open(),打开文件2 Step26 为文件 2 分配缓冲Step27 写文件 3 后关闭文件3 Step28 释放缓冲Step29 用户退出(logout)Step30 关闭(halt)End。1.编写管理
9、文件makefile 本文件系统程序用编写makefile管理工具进行管理。其内容如下:*/*makefile*/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 halt.o cc-o filsys main.o iallfre.o ballfre.o name.o access.o log.o close.o creat.o delete.o dir.o open.o format.o install.
10、o halt.o main.o:main.c filesys.h cc-c main.c igetput.o:igetput.c filesys.h cc-c igetput.c 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:c
11、lose.c filesys.h cc-c close.c 名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 4 页 -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 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 halt.o:halt.c cc-c halt.c 名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 4 页 -