《操作系统》课程设计-设计一个简单二级文件系统

《操作系统》课程设计-设计一个简单二级文件系统

ID:8468129

大小:84.50 KB

页数:11页

时间:2018-03-28

《操作系统》课程设计-设计一个简单二级文件系统_第1页
《操作系统》课程设计-设计一个简单二级文件系统_第2页
《操作系统》课程设计-设计一个简单二级文件系统_第3页
《操作系统》课程设计-设计一个简单二级文件系统_第4页
《操作系统》课程设计-设计一个简单二级文件系统_第5页
资源描述:

《《操作系统》课程设计-设计一个简单二级文件系统》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、《操作系统》课程设计题目:设计一个简单二级文件系统专业:计算机科学与技术年级:文专计081—1姓名:学号:指导教师:时间:2010.7.12---2010.7.162010年7月15日一、设计内容1、可以实现下列几条命令。Format格式化Dir列文件目录Create创建文件Delete删除文件Deldir删除目录Open打开文件Close关闭文件Search查询文件Copy拷贝文件Cut剪切文件二、开发环境Windows操作系统MicrosoftVisual C++三、分析设计(一)实验原理通过程序模拟Linux文件系统,用一个二进制文件(Fil

2、eSystem.disk)来模拟磁盘.设计一个多用户的二级文件系经统、实现一般的创建文件、目录,删除文件、目录,切换目录,打开、关闭文件、读写文件等操作。  文件系统,包含格式化,显示文件(目录),创建文件等几个简单命令的实现,而且能完成超级块的读写,节点的读写等过程.本文件系统采用两级目录,其中第一级对应于用户账号,第二级对应于用户账号下的文件。另外,为了简单本文件系统未考虑文件共享、文件系统安全以及管道文件与设备文件等特殊内容。1.程序执行流程图:开始初始化选择程序删除目录、文件查看目录、文件进入指定目录返回上一目录级查询创建目录、文件格式化结

3、束2.数据块的分配和回收开始系统是否有空块?返回当前空闲块地址;超级块空闲指针加1开启新的块组,将其地址信息读入超级块;返回该块组首地址结束超级块中是否有空块?(二)程序结构设计FileSystem类负责管理磁盘空间和磁盘内存I节点,负责对磁盘空间和磁盘数据进行优化管理。并提代接口言方法供用户或程序调用。内存System用户11磁盘用户21用户31用户n1(三)数据结构intphysic[100];//文件地址缓冲区intstyle=1;//文件的类型charcur_dir[10]="root";//当前目录intsearch_i=0;struct

4、command{charcom[10];}cmd[20];structblock{intn;//空闲的盘快的个数intfree[50];//存放空闲盘快的地址inta;//模拟盘快是否被占用}memory[20449];structblock_super{intn;//空闲的盘快的个数intfree[50];//存放进入栈中的空闲块intstack[50];//存放下一组空闲盘快的地址}super_block;structnode//i结点信息{intfile_style;//i结点文件类型intfile_length;//i结点文件长度intfi

5、le_address[100];//i结点文件的物理地址charfile_message[100];}i_node[640];structdir//目录项信息{charfile_name[10];//文件名inti_num;//文件的结点号chardir_name[10];//文件所在的目录}root[640];四.运行示例及结果分析菜单删除目录文件查询拷贝剪切五、程序实现详细程序请参见源文件,在此只列举3点1、剪切文件程序片段:voidcut(char*tmp,char*newname){inti;//,jchart[20];_strtime(t

6、);for(i=0;i<640;i++)if(strcmp(newname,root[i].file_name)==0){break;}if(i==640){printf("目录不存在,不能剪切!");return;}for(i=0;i<640;i++){if(strcmp(tmp,root[i].file_name)==0){strcpy(root[i].dir_name,newname);strcpy(i_node[root[i].i_num].change_t,t);//printf("剪切成功!");//return;}}if(i=

7、=640)printf("文件不存在,执行失败!");}2.无文件查询程序片段:voidsearch(char*filename){intsign=0;for(search_i=0;search_i<640;search_i++){if(strcmp(root[search_i].file_name,filename)==0)//查询文件中所在目录信息和当前目录信息相同的数据{sign=1;intk=root[search_i].i_num;printf("%st",root[search_i].file_name);//文件名printf(

8、"%dt",i_node[k].file_style);//文件的类型printf("%dtt",i_node[k]

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

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

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