文档介绍:甘肃政法学院
计算机操作系统课程设计
题目虚拟文件系统的实现
计算机科学学院计算机科学与技术专业
10 级计算科学与技术本科班
姓名:_ _
指导教师:_____ _
成绩:__________ __
完成时间:_2013 年 7 月
目录
第一章课程设计简介 1
课程设计的目的 1
课程设计内容 1
第二章数据结构的设计 2
预定义 2
结构体 2
全局变量和函数 4
5
第三章功能模块(或算法)描述 5
format 格式化 5
install 安装 6
login 登陆 6
ialloc 申请inode空间 6
balloc 申请block空间 6
create 创建文本文件 7
cdir 创建文件夹 7
edit –读取和追加文本文件 7
access(文件名) 权限判断 7
cd –进入子目录或上级目录 8
attr(文件名)查看文件或者文件夹的属性 8
del 删除文件或目录 8
第四章程序运行结果 8
8
ls命令---显示当前目录下的文件和目录 9
logout命令---注销用户 9
第五章心得体会 9
参考文献 10
附:源代码 11
第一章课程设计简介
课程设计的目的
课程设计目的使学生熟悉文件管理系统的设计方法;加深对所学各种文件操作的了解及其操作方法的特点。通过模拟文件系统的实现,深入理解操作系统中文件系统的理论知识, 加深对教材中的重要算法的理解。同时通过编程实现这些算法,更好地掌握操作系统的原理及实现方法,提高综合运用各专业课知识的能力。
课程设计内容
课程设计内容设计一个简单的多用户文件系统。即:
①在系统中用一个文件来模拟一个磁盘;
②此系统至少有:login、create、del、ls、cd、md、rd、write、rename、attr、relogin、close等和部分文件属性的功能。
③实现这个文件系统。
④能实际演示这个文件系统。基本上是进入一个界面(此界面就是该文件系统的界面)后,可以实现设计的操作要求。
1)设计一个10个用户的文件系统,每次用户可保存10个文件,一次运行用户可以打开5个文件。
2)程序采用二级文件目录(即设置主目录MFD)和用户文件目录(UFD)。另外,为打开文件设置了运行文件目录(AFD)。
3)为了便于实现,对文件的读写作了简化,在执行读写命令时,只需改读写指针,并不进行实际的读写操作。
4)因系统样,文件目录的检索使用了简单的线性搜索。
5)文件保护简单使用了三位保护码:允许读写执行、对应位为1,对应位为0,则表示不允许读写、执行。
6)程序中使用的主要设计结构如下:主文件目录和用户文件目录(MFD、UFD),打开文件目录(AFD)即运行文件目录,。
第二章数据结构的设计
预定义
#define BLOCKSIZ 512 //磁盘块的大样
#define DATABLKNUM 512 //数据块的数目
#define BLKGRUPNUM 50 //数据块组包含多少数据块
#define P_N_BLOCKS 15 //inode节点中指向数据块的指针个数
#define GROUPNUM DATABLKNUM/BLKGRUPNUM+1 //数据块组组数
#define DINODESIZ 512 //磁盘i结点区的大样(空间32×512)
#define DINODENUM 32 //磁盘i结点区的块数
#define SYSOPENFILE 40
#define DIRNUM 32 //一个目录下的最多目录和文件的总和数
#define DIRSIZ 14 //文件、目录名的长度(字节)
#define UPWDSIZ 15 //密码的长度
#define UNAMSIZ 15 //用户名的长度
#define PWDSIZ sizeof(struct pwd) //密码结构的长度
#define PWDNUM BLOCKSIZ/PWDSIZ //密码数据空间的大样(pwd为单位)
#define NOFILE 20 //一个用户最多可以打开的文件数目
#define DINODESTART 4*BLOCKSIZ
//i结点区的开始地址-inodes table ,1引导 2超块 3block bitmap 4inode bitmap
#define DATASTART