052 bing操作系统_模拟文件系统的管理
                    联系方式 Email: lw510@qq.com      QQ: 497053418       MSN: lw510@qq.com
以下仅为该设计的基本说明介绍,若需要完整的设计和论文,建议您购买本设计.
052 bing操作系统_模拟文件系统的管理样本
(样本只提供该系统的基本情况介绍,若需要完整的设计和论文,建议您购买本系统,凡是购买本站系统的,本站均根据您的要求,把系统上的开发信息,题目等修改成符合您的要求)
 

本设计包含内容:源代码+毕业论文
论文大概:
 
 
 
 
 
 
 

目录

一、设计思想说明 3
二、文件系统结构的说明 4
三、数据结构的说明 5
四、算法流程图 6
五、程序清单 7
六、用户手册 44

七、体会与建议 45

 
 
 
 
 
 
 
 
2 一、设计思想说明
1、 用户管理
     模拟unix多个登录界面(八个用户),在系统出现登录模块(输入旧用户或新增用户)后 ,输入用户与口令,在用户登录后进行系统初始化,建文件卷、将用户和口令信息保存在假定的磁盘空间里,同时备份到几个指定的文件中,供下次启动此系统时恢复用。
2.模拟磁盘:
申请1M内存空间,供最多8个用户,并对用户的模拟磁盘的目录结构,文件全部存入文件中,在下次启动时恢复到系统的目录树及相应的链表中。
3.模拟unix文件系统的命令与其命令的具体实现:
(1) login:用户登录;
(2) logout: 用户退出系统
(3) canceluser:取消一个用户
(4) modifypsw:修改用户的密码
(5) format:初始化用户卷
(6) dir:列出当前目录下的所有文件及子目录
(7) cd:显示当前的目录名
(8) cdback:退到上一级目录
(9) cdfore: 进入下一级子目录
(10) cdroot:回到根目录
(11) mkdir:新建一个子目录
(12) my_deletedir:删除一个子目录
(13) my_create:新建一个文件
(14) my_deletefile:删除一个文件
(15) clear:清屏
此模拟系统共提供了上述命令,并根据命令的含义与要求,用C++编程来完成所有具体操作。
3 二、文件系统结构的说明
    目录结构用树来实现;块的空闲/占用1/0来标识;空闲块用双向链表来实现查找;占用块用单链表来实现查找;所有操作全在目录树上完成;文件/目录的加与删全是对树与链表操作。
1. 块管理层:
(1) 块回收:
inode[dir_inode[top]].b_addr[i]=-1;
int no=inode[dir_inode[top]].b_addr[i]       
freebmap(inode[no].b_addr[j]);
ifree(no); freeimap(no); iput(no);
(2)块分配/块写:
int col=findcol(inode_i,inode_j, imap);
 imap[row][col]=1;
 int position=row*inode_i+col;
 inode[dir_inode[top]].b_addr[addr]=position;
 inode[dir_inode[top]].i_count++;
 inode[position].i_no=position;
 inode[position].i_flag=0;
 inode[position].i_count++;
 strcpy(inode[position].uname, uname);
 inode_name * temp=new inode_name;
 temp->i_no=inode[position].i_no;
 strcpy(temp->d_name, filename);
 temp->next=NULL;
 insert(temp);
2.文件控制块层:
用n=inode[k].b_addr[i]记录目前目录级数;用findin_name(n)记录文件名或目录名;用inode[n].i_flag识别是目录或文件。
如显示文件列表:int n=inode[k].b_addr[i];if(n!=-1){cout<< findin_name(n) <<" ";
if (inode[n].i_flag ==1) cout<<"<dir>"<<endl; else cout<<"<file>"<<endl;
<dir>:表示找到目录,<file>表示找到文件;
3.文件管理层:(1)目录管理:cd,cdfore,cdback,mkdir,cdroot,my_deletedir, dir
(2)文件管理: my_create,my_deletefile,
4.命令解释层:命令输入,解释,执行,都在函数shell()中完成。根据输入的命令,调用相应的函数,并按事先规定好的流程执行。
5.用户管理层:用login,logout,canceluser来决定哪些用户在系统中。
3.1.1 三、  数据结构的说明
模拟文件系统,用记录数组表示每个节点,组成树状结构,且按下面结构组织:
(1)目录结构
struct inode_name
{
 int i_no;//号
 char d_name[name_size];//名称
 inode_name * next;//节点的后向指针
};
(2)FCB结构
struct inode
 {
  int i_no;
  int i_flag;
  int i_count;
  char uname[name_size];
  int b_addr[addr_size];
 };
(3)打开文件结构:
struct usr_ofile
{
 int fi_no;
 int di_no;
 int openmode;
 char uname[name_size];
};
(4)用户结构:
struct usr
 {
  char name[name_size];//用户名
  char password[psw_size];//用户密码
 };
 
4 四、算法流程图
1、 用户登录,建立文件系统
 

2、 对文件的操作(读、写、删除、DIR、CD等功能):
3.logout,canceluser:释放占用的内存空间,且退出系统。
   shell():login-->等待输入命令—>根据命令转相应的函数按一定的步骤运行;
052 bing操作系统_模拟文件系统的管理
 

关闭窗口

与本站联系的时候,为了提高效率,请告诉本站您需要的设计编号与题目。如:001VBAC人事管理系统
编码说明:001VBAC人事管理系统,其中001VBAC 为该毕业设计的编号,VB代表开发语言,AC代表数据库(ACCESS)
版权所有:510计算机论文网:http://www.lw510.com/程序制作:510论文
Email: LW510@QQ.COM  QQ: 497053418   MSN: LW510@QQ.COM