操作系统二级文件管理课程设计课程设计名称:二级文件管理系统专 业 班 级 : 软件工程计 083-1 学 生 姓 名 : 李晓斌学号 : 20082553103 指 导 教 师 : 任满杰设计目的: 通过具体的文件存储空间的管理、文件的物理结构、 目录结构和文件操作的实现,加深对文件系统内部功能和实现过程的理解。设计内容:为Linux 系统设计一个简单二级文件管理系统一、实验内容描述1 实验目标本实验的目的是通过一个简单多用户文件系统的设计,加深理解文件系统的内部功能及内部实现 . 2 实验要求为 linux 系统设计一个简单的二级文件系统.要求做到以下几点:①可以实现下列命令:login 用户登录dir 列文件目录create 创建文件delete 删除文件open 打开文件close 关闭文件read 读文件write 写文件②列目录时要列出文件名、物理地址、保护码和文件长度. ③源文件可以进行读写保护. 程序设计(1) 设计思想本文件系统采用两级目录,其中第一级对应于用户账号,第二级对应于用户账号下的文件。 另外,为了简便文件系统未考虑文件共享,文件系统安全以及管理文件与设备文件等特殊内容。(2) 主要数据结构A 磁盘块结构体:typedef struct distTable { int maxlength; int start; int useFlag; distTable *next; }diskNode; diskNode *diskHead; B 文件块结构体:struct fileTable //文件块结构体{ char fileName[10]; int strat; //文件在磁盘存储空间的起始地址 int length; //文件内容长度 int maxlength; //文件的最大长度 char fileKind[3]; //文件的属性——读写方式 struct tm *timeinfo; bool openFlag; //判断是否有进程打开了该文件 //fileTable *next; }; C 两级目录结构体typedef struct user_file_directory //用户文件目录文件UFD { //char fileName[10]; fileTable *file; user_file_directory *next; }UFD; //UFD *headFile; typedef struct master_file_directory //主文件目录 MFD { char userName[10]; char password[10]; UFD *user; }MFD; (3)函数如下;void userCreate() { char c; char userName[10]; int i; if(used