毕业论文论文范文课程设计实践报告法律论文英语论文教学论文医学论文农学论文艺术论文行政论文管理论文计算机安全
您现在的位置: 毕业论文 >> 课程设计 >> 正文

多用户多级目录文件系统的实现-操作系统 第3页

更新时间:2010-4-20:  来源:毕业论文
多用户多级目录文件系统的实现-操作系统 第3页
3.3.6用户结构
 typedef struct
{
 char *UserName;     //用户名称
 UserType ut;     //用户类型
} User;
4.各主要模块的算法流程图
4.1整体思路概述
首先系统要完成初始化的任务,建立一个系统,并等待用户登录使用文件系统,用户登录系统时,系统对用户的用户名和密码进行验证(允许用户用限次的尝试,多最多尝试五次),如果用户登录成功,则系统进入命令提示符状态,等用户输入指令后,系统得用一个解释程序按照指定方式处理用户请求,用户退出后,系统转入登录模块,等待下一位用户的登录。
4.1.1login (用户登录)
内置9个用户名和密码,用来验证登录用户的身份,用户登录成功后会初始化当前用户等一系列的系统当前信息,默认用户的类型为普通用户,如果用户未能通过身份验证,提示用户登录失败,退出整个系统。
 用户登录流程图
4.1.2系统初始化
系统的初始化要完成文件系统的建立,包括以下几部分:请求内存、设置位示图、初始化文件索引、初始化文本块链表、初始化系统的当前状态、创建一个根目录做为系统的根。
4.1.3文件的创建: create
只支持在当前目录创建文件,根据位示图找到一个未使用的文件块用来存放用户的文件信息,根据系统当前状态来构建一个文件系统元素放入到找到的文件块中,新创建的文件状态为关闭,同时更新位示图和文件索引。
 
文件创建流程图
void Create(char *filename)
{
 if (strcmp(filename, "") == 0)
 {
  printf("对不起,文件名不能为空。\n");
 }
 else
 {
  CreateFileElement(protect, filename, file, NULL, CS.CurrParent);
 }
 printf("[%s@localhost %s]$", CS.CurrentUser.UserName, CS.CurrentPath);
}
4.1.4文件的打开:open
只支持在当前目录进行操作,通过用户给定的文件名在文件索引中搜索到文件的物理文件块ID,找到该文件元素后,将文件当前状态置为打开。
打开文件流程图
void Open(char *path)
{
 char display[100];
 for (unsigned i = 0; i < FS.FI.FICount; i++)
 {
  if (!strcmp(FS.FI.FIStart[i].ParentName, CS.CurrParent->FileName)
&&  FS.FI.FIStart[i].FileLevel == CS.FileLevel
&& FS.FI.FIStart[i].effect == 1
&& strcmp(FS.FI.FIStart[i].FileName, path) == 0)
  {
   FSElement *fselem = (FSElement *)
FindBlankFileBlock(FS.FI.FIStart[i].FileBlockId);
   fselem->fileStu = opened;
   strcpy(display, "文件已打开完毕。\n");
   break;  } }
 if (strcmp(display, "") == 0)
 {
  strcpy(display, "当前目录下没有您要打开的文件。\n");
 }
 printf("%s\n", display);
 printf("[%s@localhost %s]$", CS.CurrentUser.UserName, CS.CurrentPath);
}
4.1.5文件的读:read
只支持在当前目录进行操作,前提是用户已执行文件打开的命令,否则会提示用户先打开文件。通过类似的查找方式,找到文件的数据部分,将数据显示到界面。

上一页  [1] [2] [3] [4] [5] [6] 下一页

多用户多级目录文件系统的实现-操作系统 第3页下载如图片无法显示或论文不完整,请联系qq752018766
设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©751com.cn 辣文论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。