计算机操作系统课程设计

上传人:壹****1 文档编号:487252913 上传时间:2024-01-16 格式:DOC 页数:11 大小:203.50KB
返回 下载 相关 举报
计算机操作系统课程设计_第1页
第1页 / 共11页
计算机操作系统课程设计_第2页
第2页 / 共11页
计算机操作系统课程设计_第3页
第3页 / 共11页
计算机操作系统课程设计_第4页
第4页 / 共11页
计算机操作系统课程设计_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《计算机操作系统课程设计》由会员分享,可在线阅读,更多相关《计算机操作系统课程设计(11页珍藏版)》请在金锄头文库上搜索。

1、WENJIMfi COLLEGE. tAhTAi UHrVERS-llTY操作系统课程设计题 目:设计一个简单二级文件系统专 业:计算机科学与技术年级:文计091-1名:学号:200990514103指导教师:任满杰时间:2011-2012第二学期2012年9月1日、设计内容1、可以实现下列几条命令。Format格式化Dir列文件目录Create创建文件Delete删除文件Deldir删除目录Open打开文件Close关闭文件Search查询文件Copy拷贝文件Cut剪切文件二、开发环境Windows操作系统Microsoft Visual C+三、分析设计(一)实验原理通过程序模拟Linux

2、文件系统,用一个二进制文件(FileSystem.disk)来模拟磁盘.设计一个多用户的二级文件系经统、实现一般的创建文件、目录,删除文件、目录,切换 目录,打开、关闭文件、读写文件等操作。文件系统,包含格式化,显示文件(目录),创建文件等几个简单命令的实现,而且能完 成超级块的读写,节点的读写等过程.本文件系统采用两级目录,其中第一级对应 于用户账号,第二级对应于用户账号下的文件。另外,为了简单本文件系统未考 虑文件共享、文件系统安全以及管道文件与设备文件等特殊内容。1.程序执行流程图:2.数据块的分配和回收超级块中是否有空块?系统是否有空块?开启新的块组,将其地址信息读入超级块; 返回该块

3、组首地址返回当前空闲块地址; 超级块空闲指针加1开始结束(二)程序结构设计FileSystem类负责管理磁盘空间和磁盘内存I节点,负责对磁盘空间和磁盘 数据进行优化管理。并提代接口言方法供用户或程序调用。三)数据结构int physic100; /文件地址缓冲区int style=1; /文件的类型char cur_dir10=root; /当前目录int search_i=0;struct commandchar com10;cmd20;struct blockint n;/空闲的盘快的个数int free50; /存放空闲盘快的地址int a;/模拟盘快是否被占用memory20449;s

4、truct block_superint n; /空闲的盘快的个数int free50; /存放进入栈中的空闲块int stack50; /存放下一组空闲盘快的地址super_block;st rue t node/i 结点信息int file_style;/i结点 文件类型int file_length;/i结点 文件长度int file_address100; /i结点 文件的物理地址ehar file_message100; i_node640;struet dir /目录项信息ehar file_name10; /文件名int i_num; /文件的结点号ehar dir_name10

5、; /文件所在的目录 root640;四. 运行示例及结果分析菜单騎I入您要操作的CommKnd0初始I 查晝当前目录文件列表dir2查看文件Qt3 刨建目 md *剖建文5 -删雾文件 de 16 - 目ldir?进入指定目录cd遮回_一级自录 cd-_9 -文件童询 seapch12. 就示帮曲命令meniJi13. 屋贝爻件 cop/14. 前炳文ffcutcart not open File 输/Vfl de nin 1st iat a 岂经初始化完毕Hello Uorld删除目录文件root/deIdir a目录不为空不能直接删除i*oot/cd ai*oot/a/de 1 aa 丈

6、件删除成功? tooi/a/cd .root/deIdir a目录删除成功辛査询root/a/search aa ka1 i*oot/a/search bb岸找到该文件!III拷贝rflDt/nd! a 廊It馳L-aotynwl b 目就燧蜩 roDt/cd!且 root/a/ui aa 12 文杵建誠& ro=Dt7a/Dopy aa b 耗贝威助 曰口t/a/cd. ruot/cd bMQtybi/dir文件騁 史侮 删機 文件濮邨 文杵龈帼 所属目敲 u11211-22 ? 27口:拍:却b剪切poot/cd a poot/a/ui aa 4倒建文件成功ido 七/h/c ia七 aa

7、 b剪切成功Inoot/a/dir文件修改时间所属目录文件修改时间所属目录09=56=55b氏件名字文件类型文件长度文件刨建时间p*oot/a/cd b*oot/b/dip反件名字文件类型文件长度文件刨建时间La1409=56 = 51五、程序实现详细程序请参见源文件,在此只列举3点1、剪切文件程序片段: void cut( char *t mp,char * newname) int i; /,jchar t 20;strti me( t);for(i=0;i640;i+)if(strcmp(newname,rooti.file_name)=0)break;if(i=640)printf(目

8、录不存在,不能剪切! n);return;for(i=0;i640;i+)if(strcmp(tmp,rooti.file_name)=0)strcpy(rooti.dir_name,newname); strcpy(i_noderooti.i_num.change_t,t);/ printf(剪切成功! n);/ return;if(i=640)printf(文件不存在,执行失败! n);2.无文件查询程序片段: void search(char* filename)int sign=0;for(search_i=0;search_i640;search_i+)if(strcmp(roots

9、earch_i.file_name,filename)=0) /查询文件 中 所在目录信息和当前目录信息相同的数据sign=1;int k=rootsearch_i.i_num;printf(%st,rootsearch_i.file_name); /文件名printf( %dt,i_nodek.file_style); /文件的类型printf( %dtt,i_nodek.file_length); /文件的 长度printf(%sn,rootsearch_i.dir_name); /文件所在的目录if (sign=0)printf(%sn,未找到该文件!);六、心得与体会这次设计中遇到最难

10、的问题就是拷贝功能的实现,由于之前没有接触过拷贝的原理,所以 通过和同伴的讨论和试验,终于突发奇想的运用改变文件路径的源代码和创建文件相结合, 终于实现了拷贝功能,能够将一个文件从一个目录拷贝到另一目录(即先移动过去然后再在 原位置创建一个原文件),可是却无法拷贝到root根目录,为了解决这个问题,又在创建 文件的程序里添加了一个判断是否为根目录的语句,可是后来又发现了真个系统存在重命名 的问题。设计在逐步深入,功能在逐渐健全,可是问题也就随之暴露的更多,逐步的解决问 题,我想,这才是我们课程设计的意义吧。主要解决了拷贝问题,剪切问题和无文件查询问题。可是由于C+编程语言掌握的不是很 好,程序

11、编写的很普通,而且很多不足,例如:查询的编写过程中没有做出模糊查询,只做 到了精确查询,而且是用了将全部磁盘块查询一遍的方法;拷贝中文件可以重名,无法提示 用户文件重名;剪切无法做到从一子目录剪切到根目录。这些问题还有待深入学习和探讨。通过几天来的设计和学习,真的学习到了很多东西。通过这次的操作系统的课程设计,在 老师的细心指导和同学的积极讨论下,终于做出了模拟Linux二级文件系统,能够简单得实 现目录的创建和删除,文件的建立和删除,文件的读写等这些基本操作,并且着重改编了拷 贝、剪切和查询的功能,了解二级目录的有关内容,并且通过编写的模拟Lunix下的操作环 境有了更进一步的了解。最后,感谢老师的指导。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 建筑资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号