简单多用户文件系统.doc

简单多用户文件系统.doc

ID:54700157

大小:207.00 KB

页数:13页

时间:2020-04-20

简单多用户文件系统.doc_第1页
简单多用户文件系统.doc_第2页
简单多用户文件系统.doc_第3页
简单多用户文件系统.doc_第4页
简单多用户文件系统.doc_第5页
资源描述:

《简单多用户文件系统.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、简单多用户文件系统目录一、课程设计任务描述2二、设计思想说明22.1对该任务的理解分析22.2设计任务剖析32.3程序设计环境及工具选择42.4函数层次图(即模块关系图)5三、EXT2文件系统简介53.1文件系统概述53.2EXT2文件系统简介5四、数据设计与表示74.1头文件说明74.1.1头文件:types.h74.1.2头文件:filetype.h74.1.3头文件:sys.h84.2数据结构说明84.2.1超级块(superblock)84.2.2组描述符84.2.3磁盘索引节点94.2.4内存索引节点104.2.5磁盘目录项结构体104.2.6当前目录结构体114

2、.2.7用户打开文件表结构体114.2.8系统打开文件表结构体114.2.9用户结构体124.3宏定义说明124.4主要函数列表134.5算法流程图14五、数据分析175.1输入数据175.2输出数据分析17六、使用说明186.1欢迎界面186.2用户登陆界面186.3系统使用界面196.4创建目录及显示目录界面19七、课程设计总结207.1与给定文件系统的对比分析207.2未完成部分及改进方法207.2课程设计总结20八、参考文献20九、程序源代码及注解21一、课程设计任务描述为LINUX设计一个简单的二级文件系统。要求做到以下几点:1、可以实现下列几条命令Login用户

3、登录Dir列文件目录Create创建文件Delete删除文件Open打开文件Close关闭文件Read读文件Write写文件2、列目录时要列出文件名、物理地址、保护码和文件长度。3、源文件可以进行读写保护。二、设计思想说明2.1对该任务的理解分析一个文件系统从功能上划分程序为四个部分,第一部分是有关高速缓冲区的管理程序,主要实现了对硬盘等块设备进行数据高速存取的函数;第二部分代码描述了文件系统的底层通用函数,说明了文件索引节点的管理、磁盘数据块的分配和释放以及文件名与i节点的转换算法;第三部分程序是有关对文件中数据进行读写操作,包括对字符设备、管道、块读写文件中数据的访问;

4、第四部分的程序与文件的系统调用接口的实现有关,主要涉及文件打开、关闭、创建以及有关文件目录操作等的系统调用。由于我们不能亲自设计驱动程序,所以我们要模拟文件系统的设计、实现和功能,就不能把它直接做为操作系统实际的文件系统进行挂接。鉴于此,我们就有两个思路来完成该任务,一是在实际的硬盘上创建一个文件,把它做为磁盘进行各种对磁盘的模拟操作,这样做的好处是可以对它进行连续操作,只要在退出文件系统时,及时保存它的状态,当我们下次启动程序时,就能继续以前的操作,相比而言这更接近于实际;二是在内存中开辟一块空间,譬如1M或2M大小,继而对这块内存区域模拟磁盘操作,操作灵活但这样需每次开

5、辟空间,极有可能隐藏一些需要关闭文件系统才能发现的错误,也就是说这样做不易于排错。在本次的课程设计中,我们决定采用第一种方案。由于是在文件级上的操作,所以我们不必去写设备驱动程序,只需要开辟文件调用fwrite、fread、fseek、ftell、fput、fget等库函数进行读写即可。在文件系统四部分程序中,我们只需要编写第二部分文件系统的底层通用函数即可。2.2设计任务剖析在本次的课程设计中,我们没有沿用《课程设计指导书》上文件系统的例子程序,而是决定模拟Linux的标准根文件系统EXT2,其原因我们会在课程设计总结中给出。我们认为EXT2主要的设计思想是磁盘分区再分组

6、,数据存储使用混合索引方式。这也是我们要实现的主要功能。在参考了Linux0.11文件系统Minix2.0及Linux2.4EXT2的底层通用函数后,本着设计简单可表达EXT2设计思想的原则,我们需要编写的程序要实现下列功能:l格式化程序。在硬盘上创建一个文件,用来模拟磁盘;对磁盘按照EXT2文件系统结构进行划分;主要数据的写入,包括根目录、登陆文档、超级块、组描述符的初始化及组描述符表、块位图索引节点位图的初始化及索引节点表。l磁盘读写函数。这部分的函数要完成的功能包括:读写指定的磁盘块;读写指定的索引节点表和块位图;读写指定的超级块和组描述符。l数据块分配和回收函数。按

7、照先组从小到大,后逻辑块编号从小到大的顺序分配数据块;回收指定的逻辑块改写相应组内的块位图。l索引节点分配和回收。按照先组从小到大,后索引编号从小到大的顺序分配索引节点;回收指定的索引节点改写相应组内的索引节点位图。l目录操作函数。列表显示当前目录内目录项,更改目录及删除目录。l文件操作函数。组织进程和文件系统的关系,包括用户打开文件表和系统打开文件表的初始化和管理。创建文件、删除文件、打开文件、关闭文件、读文件和写文件。程序是引用文件描述符来操作文件的。l用户认证。读取文件系统的密码文档,对登陆用户验证。由于EX

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。