资源描述:
《南邮操作系统实验4报告.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、实验报告(2012/2013学年第一学期)课程名称操作系统A实验名称文件系统实验时间2012年12月26日指导单位南京邮电大学指导教师黄刚学生姓名班级学号学院(系)计算机软件专业软件工程实验报告实验名称文件系统模拟设计指导教师黄刚实验类型验证实验学时2实验时间2012.10.15一、实验目的和要求1.掌握文件系统的使用。2.实现一个文本文件的某信息的插入和删除。3.实现一个记录文件的某记录的插入和删除设计一个多用户文件系统,模拟管理的工作过程,二、实验环境(实验设备)Windows7三、实验原理及内容实验流程图8数据结构设计用户结构:账号与密码结
2、构typedefstructusers{char name[8];char pwd[10];}users;本系统有8个默认的用户名,前面是用户名,后面为密码,用户登陆时只要输入正确便可进入系统,否则提示失败要求重新输入。usersusrarray[8]={"usr1","usr1","usr2","usr2","usr3","usr3","usr4","usr4","usr5","usr5","usr6","usr6","usr7","usr7","usr8","usr8",};(3)数据结构说明a)文件结构链表structfnode
3、{charfilename[FILENAME_LENGTH];int isdir;intisopen;charcontent[255];8fnode*parent;fnode*child;fnode*prev;fnode*next;};b)函数介绍fnode*initfile(charfilename[],intisdir);//初始化文件或目录voidcreateroot();//建立系统根目录intrun();系统运行intfindpara(char*topara);对参数进行处理boolchklogin(char*users,char*pw
4、d);检查账号与口令voidhelp();命令列表intmkdir();建立目录intcreate();建立文件intread();读取文件intwrite();写入文件intdel();删除文件intcd();切换目录intdir();文件与目录列表模块设计此课程设计把文本作为研究对象来模拟操作系统的文件系统工作过程。所以用一个字符串数组来模拟磁盘空间,顾名思义,模拟磁盘提供字符的存储服务。所有用户构成一个数组,每个数组元素是一个结构体,每个结构体包括三部分,用户的用户名、用户密码和文件链表(由于模拟文件系统的文件数量不多,故文件表采用线性链表
5、来存储。线性表每个结点放置一个文件的FCB,其中存储一个文件的信息,文件名、长度、类型、创建时间等);磁盘空间分配表,采用链表结构,每个节点保存模拟磁盘的一个逻辑块的信息,包括块的最大长度,文件占用长度,占用标志。如果占用标志为0,即该空间可分配给文件。初始化磁盘空间分配表链表,首先把整个模拟磁盘作来一块,并置占用位为0。当有进程申请磁盘空间时,从头开始遍历,检查占用位,如果该块为可分配,则检查块大小,若块长度大于或等于申请空间大小,则把块的前一部分(等于申请大小)分配给文件,并置标志位为占用。剩下的大小作来一个新块,作来一个新节点插入到原节点的
6、后边,标志位为可用。这样就实现了模拟磁盘的线性分配。算法流程图8模拟二级文件系统主界面用户登录切换目录退出登录建立目录删除文件写入文件读取文件建立文件相关程序:略,详见电子版附件。系统运行图:1.首先登陆,输入用户名和密码81.输入help获得命令帮助4.依次根据命令提示,建立文件目录makdir、查看目录dir、跳至新建目录cd、建立文档create、读取文档read、写文档write、删除文档del85.退出登录logout8实验报告8四、实验小结(包括问题和解决方法、心得体会、意见与建议等)通过本次的课程设计,使我能够正确运用操作系统课程中
7、所学的基本理论和知识,加深了对文件系统基本概念的理解,以及磁盘文件系统的文件操作。在设计过程中,查询了不少相关资料,不断的发现问题、提出问题、解决问题。在对自己所编写的源程序段的纠错的过程中,使我更好的理解了操作系统中文件系统的理论知识,同时在编程时用到了模块化的设计思想,这种编程方法可以使我们的编程变的更简单,可以使我们的查错与纠错变的更方便。总的来说通过这次的设计的学习使我学到了很多在平时的学习中学不到的很多东西,通过这次课程设计,使我对操作系统和编程产生兴趣,我想我会在这条路上继续前进下去。我相信,只要不断的严格要求自己,注意培养自己的思维
8、能力,就一定会有更大更辉煌的发展和提高。五、指导教师评语成绩批阅人日期8