操作系统-2

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

操作系统设计与实现总结报告学号:201158501103姓名:肖祥炜班级:计111-1任课教师:翟一鸣一课程设计的目的通过课程设计,加深对操作系统各资源管理模块的理解,掌握操作系统的基本原理及功能,具有初步分析实际操作系统、设计、构造和开发现代操作系统的基本能力。(1)掌握linux文件系统的基本原理、结构和实现方法。(2)掌握linux文件系统中文件的建立、打开、读/写、执行、属性等系统调用的使用(3)学会设计简单的文件系统并实现一组操作(4)通过实验学习文件系统的系统调用命令,提高文件系统实现功能的理解和掌握。二课程设计的要求1.用户命令login用户登录usercreate创建用户userdelete删除用户dir列目录create创建文件delete删除文件open打开文件close关闭文件write写文件Read读文件2.列目录时要列出文件名,物理地址,保护码和文件长度,以及创建时间。3.源文件可以进行读写保护三设计思路1.磁盘大小为1M.1024*1024k2.块大小为k,共1024块.3.主要的子函数:login():登陆函数userCreate():用户创建函数userDelete():用户删除函数initDisk():初始化函数requestDist():分配空间函数Create():创建函数freeDisk():释放空间函数Del():删除函数read():读函数Write():写函数Dir():列表函数Close():关闭文件函数4.主要数据结构磁盘块结构体typedefstructdiskBlock//{intmaxlength;intstart;intuseFlag;//位示图useflag=0物理块为空,useflag=1物理块不空diskBlock*next;}diskNode;文件块结构体:structfileTable//{charfileName[10];intstrat;//文件在磁盘存储空间的起始地址intlength;//文件内容长度intmaxlength;//文件的最大长度charfileKind[3];//文件的属性——读写方式structtm*timeinfo;boolopenFlag;//判断是否有进程打开了该文件};两级目录结构体:typedefstructuser_file_directory//用户文件目录文件UFD{fileTable*file;user_file_directory*next;}UFD;typedefstructmaster_file_directory//主文件目录MFD{charuserName[10];charpassword[10];UFD*user;}MFD;图示:四程序流程图开始格式化创建删除写文件退出系统删除用户选择用户创建用户用户登录用户选择关文件退出列文件读文件五源代码部分代码:#defineMaxDisk512*512//模拟最大磁盘空间#defineCommandNumber8//对文件操作的指令数//存储空间管理有关结构体和变量chardisk[MaxDisk];//模拟512K的磁盘存储空间typedefstructdiskBlock//磁盘块结构体{intmaxlength;intstart;intuseFlag;//位示图useflag=0物理块为空,useflag=1物理块不空diskBlock*next;}diskNode;diskNode*diskHead;structfileTable//文件块结构体{charfileName[10];intstrat;//文件在磁盘存储空间的起始地址intlength;//文件内容长度intmaxlength;//文件的最大长度charfileKind[3];//文件的属性——读写方式structtm*timeinfo;boolopenFlag;//判断是否有进程打开了该文件};//两级目录结构体typedefstructuser_file_directory//用户文件目录文件UFD{fileTable*file;user_file_directory*next;}UFD;typedefstructmaster_file_directory//主文件目录MFD{charuserName[10];charpassword[10];UFD*user;}MFD;MFDuserTable[MaxUser];intused=0;//定义MFD目录中用已有的用户数//用户管理voiduserCreate();voiduserDelete();intlogin();intuserID=-1;//用户登录的ID号,值为-1时表示没有用户登录//文件管理voidcreate(charfileName[],intlength,charfileKind[]);//创建文件voidwrite(charfileName[]);//写文件voidread(charfileName[]);//读文件voiddir(charUserName[]);//显示某一用户的所有文件voidclose(charfileName[]);//关闭已打开的文件voiddel(charfileName[]);//删除文件intrequestDist(int&startPtion,intmaxLength);//磁盘分配查询voidinitDisk();//初始化磁盘voidfreeDisk(intstartPtion);//磁盘空间释放intmain(){cout~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~endl;cout*********************************************************endl;cout欢迎使用endl;cout1.格式化磁盘endl;cout2.退出endl;cout~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~endl;cout*********************************************************endl;cout请输入命令代码:endl;intisformat;cinisformat;if(isformat==1){initDisk();//初始化磁盘cout格式化成功.endl;}elseif(isformat==2){exit(0);}else{cout输入错误!endl;exit(0);}//连接系统intlogin(){charname[10],psw[10];charc;inti,times;printf(请输入用户名:);for(i=0;c=getch();i++){if(c==13)break;elsename[i]=c;printf(%c,c);}name[i]='\0';for(i=0;iuserDirNum;i++){if(!strcmp(userArr[i].userName,name))break;}if(i==userDirNum){printf(\n您输入的用户名不存在\n);system(pause);return-1;}for(times=0;times3;times++){memset(psw,'\0',sizeof(psw));printf(\n请输入密码:);for(i=0;c=getch();i++){if(c==13)break;elsepsw[i]=c;printf(*);}printf(\n);for(i=0;iuserDirNum;i++){if(!strcmp(psw,userArr[i].passWord)){printf(用户登录成功\n);system(pause);break;}}if(i==userDirNum){printf(您输入的密码错误,您还有%d次输入机会\n,2-times);if(times==2)exit(0);}elsebreak;}fflush(stdin);returni;}cout任意键继续endl;getchar();getchar();system(CLS);charorder[CommandNumber][10];strcpy(order[0],create);strcpy(order[1],rm);strcpy(order[2],read);strcpy(order[3],write);strcpy(order[4],dir);strcpy(order[5],close);strcpy(order[6],return);strcpy(order[7],exit);charcommand[50],command_str1[10],command_str2[10],command_str3[5],command_str4[3];inti,k,j;intselect;intlength;for(i=0;iMaxUser;i++)//初始化用户UFD目录文件的头指针{userTable[i].user=(UFD*)malloc(sizeof(UFD));userTable[i].user-next=NULL;}}六程序截图1.初始化磁盘2.操作用户界面3.用户界面4.创建文件:5.写入操作6.读文件7.列文件8.删除文件:文件未关闭删除失败关闭文件删除成功:七.设计总结:在课程设计的时候一开始完全不知道要从哪里入手,慢慢的从网络上找一些资料,一个模块一个模块的整理,发现其实这个课程设计其实不是很难,打开一个文件控制系统主要有用户的登入,创建,删除等功能。模仿一个文件系统慢慢的一个模块一个模块的弄出来了。虽然这只是一个简单的二级文件系统,但是它还是需要我们认真的去构思,去思考。通过本次实训我了解到了每一次的付出它都会有或多或少的收获。成功取决与细节,努力成就成败。

1 / 13
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功