ImageVerifierCode 换一换
格式:DOCX , 页数:13 ,大小:75.15KB ,
资源ID:22097940      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/22097940.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(操作系统文件系统设计文档Word下载.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

操作系统文件系统设计文档Word下载.docx

1、 dir 列文件目录 create 创建文件 delete 删除文件 open 打开文件 close 关闭文件 read 读文件 write 写文件 (2)列目录时要列出文件名、物理地址、保护码和文件长度; (3)源文件可以进行读写保护。提示: (1)首先应确定文件系统的数据结构:主目录、子目录及活动文件等。主目录和子目录都以文件的形式存放于磁盘,这样便于查找和修改。 (2)用户创建的文件,可以编号存储于磁盘上。如file0,file1,file2.并以编号作为物理地址,在目录中进行登记1.3 系统开发 运行环境 Windows XP 系统, Visual C+ 6.0二 系统分析设计 2.2

2、 基本原理本系统是模拟实现多用户多的文件系统,在系统出现登录后 ,输入用户与口令,在用户登录系统后,可以添加2个普通用户。普通用户的命令与系统管理员的系统命令具体实现是一样的。此模拟系统提供了10个命令,并根据命令的含义与要求,用C/C+编程来完成所有具体操作。该系统可以模拟完成用户的登陆和验证,新建文件,打开文件,读文件,写文件,关闭文件,删除文件,查看文件,退出系统,注销用户,切换用户等系统功能。2.3 数据结构设计 系统管理员typedef struct user /系统管理员 char name5 ; / 登录用户名 char password10 ; / 登录密码user;用户文件目

3、录struct UFD char fname5;/文件名 char proper2;/文件属性 ,R或RW int length;/记录长度 int addr;/文件地址 ;用户已打开文件表struct UOF char fname5; char proper2;/文件属性,r或rw int length; char state5; /状态: new, open int read; /读指针 int write; /写指针 主文件目录struct MFD char Username5;/用户名 struct UFD UserDirecL;/用户文件目录 struct UOF OpenUserS

4、;/已打开文件目录 int count; /每个用户拥有的存在的文件计数 MFDN;2.4 程序流程图 失败 重新登录成功 用户命令三 程序代码以及运行结果系统管理员登陆以及验证:bool login(char *name, char *pwd ) if( (strcmp(name, admin.name)=0) & (strcmp(pwd, admin.password)=0) return true; return false;创建新用户bool NewUser(char user) int i=0; while(strcmp(MFDi.Username,)!=0&(i=N) /如果用户数

5、已满 cout用户数已满. 你必须删除一个用户才继续新建用户endl; return 0; else /如果用户数未满,则建立新用户 strcpy(MFDi.Username,user); NOU+;/用户数加1 用户 user 创建成功 ./提示当前用户创建成功 系统现有的用户数 : NOU/显示系统现有的用户数 return 1; 注销用户void Logout(int a) /注销用户,清除所有文件的登记栏 string str; char temp5=; for(int i=0;iL;i+) /对 UFD中的文件名MFDa.UserDireci.fname进行处理 str=static

6、_cast(MFDa.UserDireci.fname); strcpy(MFDa.UserDireci.fname,str.substr(0,4).c_str(); for(int j=0;jS;j+) /如果UFD中的文件名与UOF中的文件名相同 /对UOF中的文件名UOFi.fname进行处理 (MFDa.OpenUserj.fname); strcpy(MFDa.OpenUserj.fname,str.substr(0,4).c_str(); /清除UOF中信息 if(strcmp(MFDa.UserDireci.fname,MFDa.OpenUserj.fname)=0) strcp

7、y(MFDa.OpenUserj.fname,); /清除UOF中文件名 strcpy(MFDa.OpenUserj.proper,/清除UOF中文件属性 MFDa.OpenUserj.length=0; /清除UOF中记录长度 strcpy(MFDa.OpenUserj.state, /清除UOF中文件状态 MFDa.OpenUserj.read=0; /清除UOF中读指针 MFDa.OpenUserj.write=0; /清除UOF中写指针 /清除UFD中信息 strcpy(MFDa.UserDireci.fname,/清除UFD中文件名 strcpy(MFDa.UserDireci.pr

8、oper,/清除UFD中文件属性 MFDa.UserDireci.length=0;/清除UFD中记录长度 MFDa.UserDireci.addr=0; /清除UFD中文件地址 strcpy(temp, MFDa.Username); strcpy(MFDa.Username,/清除MFD中的用户名 MFDa.count=0; /该用户下的文件数清零 NOU-;/用户数减1 tempfilename; if(strlen(filename)4) goto Re;/如果文件名长度不符合要求,则要求重新输入 loop:文件属性(r,rw) :/输入文件属性,读或是读写 property; str

9、cpy(temp,property);/将属性字符串 赋值给temp if(!(strcmp(temp,rw)=0|strcmp(temp,r)=0)/检查属性是否正确 cout=L)/如果用户文件目录UFD已满,则提示文件满的信息 cout 用户MFDa.Username 文件目录UFD已满. /当用户文件目录UFD未满时 else int j=0; int k=0; while(strcmp(MFDa.UserDirecj.fname,(jL) /*在UFD中寻找空登记栏,并登记*/ j+; MFDa.count+; /用户的文件计数器加1 strcpy(MFDa.UserDirecj.f

10、name,filename); /UFD中登记文件名 MFDa.UserDirecj.length=Record;/UFD记录长度 strcpy(MFDa.UserDirecj.proper,temp);/UFD中文件属性 srand(unsigned)time(NULL); /产生随机数 i=rand()%100;/ 找一磁盘空闲块并赋值给i MFDa.UserDirecj.addr=i;/在UFD登记栏中置文件地址为i /提示文件在UFD中建立成功 文件:filename 已经成功建立 n 文件数量:MFDa.count/显示建立成功 while(strcmp(MFDa.OpenUserk

11、.fname,(kS) /*在UOF中寻找空登记栏*/ k+; /如果用户已打开文件表UOF未满 if(kS) /在UOF中登记文件的相关信息 strcpy(MFDa.OpenUserk.fname,filename); /UOF中文件名 MFDa.OpenUserk.length=Record;/UOF中记录长度 strcpy(MFDa.OpenUserk.proper, temp);/UOF中文件属性 strcpy(MFDa.OpenUserk.state,new/修改状态为建立 MFDa.OpenUserk.write=i;/修改写指针为i /提示文件在UOF中建立成功 / cout 已

12、经成功打开 n /如果用户已打开文件表UOF已满,提示文件满的信息 else / 用户已打开文件表UOF已满. else /提示文件同名,不能建立 文件同名 不能建立打开文件写文件读文件删除文件系统帮助命令四 实习心得体会 这次操作系统实习为期三周的学习时间,虽然时间比较短,但是还是有点收获的。实习之前,是操作系统课程学习,学习的都是课本的理论知识。在没有接触操作系统课程之前,个人的见识真是少啊。 我以为操作系统就是 Windows XP 这么一种操作系统,还没想到操作系统竟然还有这么多的呢。课堂上讲的操作系统就是Linux 操作系统,可是课本的理论知识学习的比较模糊,很多概念都不理解。经过这

13、次操作系统实习之后,个人在虚拟机里 不断的练习 Linux系统各种命令。由于个人这次实习,所选的题目是:文件系统模拟设计,所以个人在这方面操作比较多,经常动手练习那些Linux系统常用的文件系统命令,逐渐熟悉理解了这个文件系统的各种命令。不过,对于Linux系统 还有很多知识是不懂的,如果将来打算从事Linux系统软件开发的哇,那么还是需要慢慢学习Linxu系统的。 通过这次实习,促使个人开始接触了解这个Linux系统,也对Linux系统有了一点兴趣。五 参考文献现代操作系统 (第2版)作者: (荷)Andrew S. Tanenbaum 作译者介绍 译者: 陈向群 马洪兵 出版社:机械工业出版社

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1