资源描述:
《操作系统课程设计1》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、存档资料成绩: 华东交通大学理工学院课程设计报告书课程名称操作系统设计题目 模拟文件系统 分院 电信分院 专业班级计算机科学与技术08级1班学 号20080210440122 学生姓名**** 指导教师*****2011年6月10日华东交通大学理工学院课程设计报告华东交通大学理工学院课程设计(论文)任务书专业08计算机班级1班姓名***一、课程设计(论文)题目模拟文件系统二、课程设计(论文)工作:自2011年6月7日起至2011年6月20日止。三、课程设计(论文)的内容要求:1.文件的物理结构可以选
2、用顺序分配、链表分配或索引分配。2.建立文件:从命令中得到文件名,得到该文件的文件长度,建立文件。修改目录表。3.删除文件:回收文件占用的空间,修改目录表4.读文件:read[文件名][显示开始字节][显示的字节数],直接显示所需要的字节数。5.写文件:write[文件名][插入的位置][插入的内容]6.查询属性:显示文件属性文件名,类型,长度,时间等。学生签名:2011年6月20日课程设计(论文)评阅意见评阅人 职称2011年6月20日第17页共17页华东交通大学理工学院课程设计报告目 录一、课程设计题目和目的4二、
3、课程设计要求4三、程序设计思想4四、文件系统的实现4五、程序运行结果及分析20六、课程设计总结22七、参考文献22第17页共17页华东交通大学理工学院课程设计报告一、课程设计题目和目的通过模拟文件系统的实现,深入理解操作系统中文件系统的理论知识,加深对教材中的重要算法的理解。同时通过编程实现这些算法,更好地掌握操作系统的原理及实现方法,提高综合运用各专业课知识的能力。二、课程设计要求通过课程设计,要求学生主要掌握如下内容:1.文件的物理结构可以选用顺序分配、链表分配或索引分配。2.建立文件:从命令中得到文件名,得到该文
4、件的文件长度,建立文件。修改目录表。3.删除文件:回收文件占用的空间,修改目录表4.读文件:read[文件名][显示开始字节][显示的字节数],直接显示所需要的字节数。5.写文件:write[文件名][插入的位置][插入的内容]三、程序设计思想阅读操作系统方面的书籍,了解操作系统的文件系统原理。结合分析课程设计要求,确定实体以及它们之间的关系。实体关系有三张表(磁盘空间分配表、文件表、打开文件表)、一个模拟磁盘的数组、命令服务和用户构成。用户负责输入命令。命令服务实现命令的解释、命令检查、命令帮助以及调用相关模块执行相
5、应的命令功能。此课程设计把TXT文本作来研究对象来模拟操作系统的文件系统工作过程。所以用一个字符串数组来模拟磁盘空间,顾名思义,模拟磁盘提供字符的存储服务。磁盘空间分配表,采用链表结构,每个节点保存模拟磁盘的一个逻辑块的信息,包括块的最大长度,文件占用长度,占用标志。如果占用标志为0,即该空间可分配给文件。初始化磁盘空间分配表链表,首先把整个模拟磁盘作来一块,并置占用位为0.当有进程申请磁盘空间时,从头开始遍历,检查占用位,如果该块为可分配,则检查块大小,若块长度大于或等于申请空间大小,则把块的前一部分(等于申请大小)
6、分配给文件,并置标志位为占用。剩下的大小作来一个新块,作来一个新节点插入到原节点的后边,标志位为可用。这样就实现了模拟磁盘的线性分配。文件表,由于模拟文件系统的文件数量不多,故文件表采用线性表来存储。线性表每个结点存储一个文件的信息。打开文件表,采用数组形式存储打开的文件,数组每个元素保存一个打开文件的信息。文件信息和文件表中的文件信息类似。构造这些实体的关系图,数据流图、程序流程图来进行具体的设计。四、文件系统的实现1.数据结构设计通过分析课程设计要求,具体设计出如下数据结构:用户结构:账号与密码结构typedefs
7、tructusers{ char name[8]; char pwd[10];}users;本系统有8个默认的用户名,前面是用户名,后面为密码,用户登陆时只要输入正确便可进入系统,否则提示失败要求重新输入。usersusrarray[8]={ "usr1","usr1",第17页共17页华东交通大学理工学院课程设计报告 "usr2","usr2", "usr3","usr3", "usr4","usr4", "usr5","usr5", "usr6","usr6", "usr7","usr7", "usr8
8、","usr8",};(3)数据结构说明a)文件结构链表structfnode{ charfilename[FILENAME_LENGTH]; int isdir; intisopen; charcontent[255]; fnode*parent; fnode*child; fnode*prev; fnode*next;};