操作系统课程设计(文件系统管理).docx
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
操作系统课程设计(文件系统管理) 评定等级 操作系统课程设计 文件系统管理 学 院 计算机学院 专 业 计算机科学与技术 班 级 姓 名 学 号 2013年1月8日 广东工业大学计算机学院制 文件系统管理 一、实验目的 模拟文件系统的实现的基本功能,了解文件系统的基本结构和文件系统的管理方法看,加深了解文件系统的内部功能的实现。通过高级语言编写和实现一个简单的文件系统,模拟文件管理的工作过程,从而对各种文件操作系统命令的实质内容和执行过程有比较深入的了解。 二、实验内容和要求 操作系统课程设计(文件系统管理)全文共59页,当前为第1页。编程模拟一个简单的文件系统,实现文件系统的管理和控制功能。在用户程序中通过使用文件系统提供的create,open,read,write,close,delete等文件命令,对文件进行操作。 操作系统课程设计(文件系统管理)全文共59页,当前为第1页。 以下报告主要包括: 1.可行性分析 2.需求分析 3.概要设计 4.详细设计 5.测试 6.总结 三、可行性分析 1、技术可行性 对于图形编程还不了解,但是经过本学期的三次实验的练习,可以设计好命令操作界面。利用大二期间学习的数据结构可以模拟出此课程设计的要求。 2、经济可行性 课程设计作为本课程的练习及进一步加深理解。与经济无关,可以不考虑。(零花费,零收益) 3.法律可行性 自己编写的程序,仅为练习,不作其他用途,与外界没什么联系,可行。 操作系统课程设计(文件系统管理)全文共59页,当前为第2页。四、需求分析 操作系统课程设计(文件系统管理)全文共59页,当前为第2页。 编写程序实现文件系统,主要有以下几点要求: 1、实现无穷级目录管理及文件管理基本操作 2、实现共享"别名" 3、加快了文件检索 五、概要设计 为了克服单级目录所存在的缺点,可以为每一位用户建立一个单独的用户文件目录UFD(User File Directory)。这些文件目录可以具有相似的结构,它由用户所有文件的文件控制块组成。此外,在系统中再建立一个主文件目录MFD (Master File Directory);在主文件目录中,每个用户目录文件都占有一个目录项,其目录项中包括用户名和指向该用户目录的指针。 操作系统课程设计(文件系统管理)全文共59页,当前为第3页。本设计主要实现下面几个数据结构: 操作系统课程设计(文件系统管理)全文共59页,当前为第3页。 M D F 用户名 文件目录指针 用户名 文件目录指针 U F D 文件名 保护码 文件长度 文件名 · · · A F D 打开文件名 打开保护码 读写指针 总体的流程图如下: 六、详细设计 主要数据结构: 1.MFD(Master File Directory),主要用以存放用户,可以增加存放密码的字符数组,本设计没有保密安全方面的忧虑,为了使用时操作更简单省去密码。所以,MFD结构仅包括用户名和指向子目录的一个指针,以及指向下一用户的连接点,为线性结构。 struct MFD { char name[20]; //用户名 UFD *bst_pointer; //文件目录指针 MFD *link; }; 操作系统课程设计(文件系统管理)全文共59页,当前为第4页。2. UFD(User File Directory),用于存放文件的数据结构。由于本设计为了加快检索速度,使用了二叉排序树的结构,所以UFD结构中相应加入了用于树结构的parent,leftchild,和rightchild记录链接情况。 操作系统课程设计(文件系统管理)全文共59页,当前为第4页。 当本文件为普通文件时,为下级记录申请AFD(file),folder为空。同样,当本文件为文件夹时,为它申请相应的空间,AFD为空。以此来达到无穷级别目录的存储。 struct UFD { UFD *parent; UFD *leftchild; UFD *rightchild; UFD *folder; //作为文件夹时指向下一层,文件时为空 UFD *pre_folder; //指向上一层目录(文件夹时用到) AFD *file; //作文文件时文件的具体内容 char name[30]; //文件(夹)名字 int length; //作为文件时文件的长度,默认为0 char rw; //读写标志r or w char share; //共享标志y or n char file_folder; //指示此文件是文件或文件夹,f为文件,o为文件夹 }; 操作系统课程设计(文件系统管理)全文共59页,当前为第5页。3.AFD,存放文件的内容的结构,比较简单,文件内容用一个字符数组存储,为顺序结构,最多可存放99个字符 操作系统课程设计(文件系统管理) 操作系统课程设计中的文件系统管理是一项重要的实践任务,旨在让学生深入理解文件系统的工作原理和实现机制。文件系统是操作系统的核心组成部分,负责管理和控制文件的存储、访问和组织。在这个设计中,学生将模拟一个简单的文件系统,实现文件的创建、打开、读取、写入、关闭和删除等基本操作。 实验的目的是让学生通过实际编程实现文件系统的功能,掌握文件系统的基本结构,例如目录结构和文件控制块的管理。文件系统通常包括多级目录结构,以便于管理和检索文件。设计中提到了无穷级目录管理,这意味着每个文件或目录都可以有任意数量的子目录,形成一个无限深度的树形结构。 在需求分析部分,设计要求实现三个关键功能:无限制的目录层级、文件的共享和提高文件检索效率。无限制的目录层级可以通过使用链接结构实现,每个文件或目录条目都包含指向其子项的指针。文件共享则涉及权限管理和标识符,使得多个用户可以访问同一文件。为了提高检索速度,设计采用了二叉排序树作为数据结构,这是一种能快速查找和插入的结构,尤其适合于大量文件的管理。 概要设计阶段,提出了主文件目录(MFD)和用户文件目录(UFD)的概念。MFD 包含所有用户的目录信息,而UFD则是每个用户个人的文件和子目录集合。UFD 使用二叉排序树结构,以加速查找和遍历操作。每个UFD条目包含了父节点、左子节点和右子节点的指针,以及一个指向文件内容的指针(AFD,Actual File Data)。 详细设计部分,定义了MFD、UFD和AFD的数据结构。MFD只包含用户名和指向UFD的指针,以及下一个用户的链接。UFD结构更为复杂,不仅包括文件或目录的基本信息(如名称、长度、读写权限、共享状态和类型),还添加了用于树结构的指针,以实现多级目录。AFD用于存储文件的实际内容,是一个简单的顺序结构,最多可容纳99个字符。 通过这个课程设计,学生将能够理解文件系统如何存储和检索信息,以及如何处理文件的读写操作。同时,也会了解到如何通过编程实现这些功能,从而加深对操作系统内部机制的理解。在测试阶段,学生需要验证所设计的文件系统是否能够正确执行各种操作,并满足所有需求。最后的总结是对整个设计过程的反思和经验总结,有助于巩固理论知识并提升实践能力。
剩余57页未读,继续阅读
- 粉丝: 105
- 资源: 9352
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助