编辑: 学冬欧巴么么哒 2019-07-07

1、在深入理解操作系统基本原理的基础上,对于选定的题目,以小组为单位,先确定设计方案;

2、设计系统的数据结构和程序结构,设计每个模块的处理流程.要求设计合理;

3、编程序实现系统,要求实现可视化的运行界面,界面应清楚地反映出系统的运行结果;

4、确定测试方案,选择测试用例,对系统进行测试;

5、运行系统并要通过验收,讲解运行结果,说明系统的特色和创新之处,并回答指导教师的提问;

6、提交课程设计报告. 3. 算法及数据结构 3.1算法的总体思想(流程) 3.1.1总体设计思想: 利用内存的一段空间模拟unix的文件系统的实现.设计结构体数组存放用户信息.设计文件和目录通用的结构体,用一个字段标识是文件或目录,每个文件均有一个字段对应其所占用的数据块.创建文件时通过搜索数据块位示图查找第一个空闲的数据块供文件使用.建立文件后对占用的数据块对应的位示图的位进行置位操作.删除文件时要释放对应的数据块,对数据块相应的位示图进行清零操作.对文件的内容的读写都是对该文件数据块对应的一段内存空间内容的读写. 文件卷的组织:将文件卷分块、用位示图来管理或成组块链;

块的大小可设成512字节,i节点区块数为32块;

数据区块数为512块.(如下图结构). 引导区:系统的引导位置,在此设计中没有设计对引导区的操作. 超级块:描述文件系统的状态,包括磁盘空闲块栈,空闲i结点栈.在程序设计中实质是存储一个数据结构的数据. i节点:存放文件说明信息,每项32字节,这个区域有32块,每块512字节,也就是可以存储512个i节点.在UNIX系统中,索引文件或是目录都是通过先索引i节点,通过i节点找到对应的目录或是文件数据块. 目录和文件:每个目录项16字节,文件名区分大小写. 3.1.2 总体实现算法: 进入模拟文件系统VFS;

格式化. 启动系统. 用户登陆,可以多用户同时登陆及用户之间的切换使用. 提示用户命令按要求输入命令并执行各种操作,包括:显示目录表,创建新目录,更改目录,创建文件,填写文件,读取文件,删除文件,更新文件. 用户操作完毕后,注销用户. 退出系统并执行退出后的保存工作. 3.2 i节点模块 3.2.1功能 i节点模块是是i节点的请求和释放操作.主要的函数有: struct inode * ialloc()从磁盘上申请一个i节点:当需要建立一个目录或是建立一个文件的时候需要新的i节点.一般会在这个时候调用. Void ifree(struct inode* pinode)从磁盘上释放一个i节点:当从文件系统中删除某个文件或是目录的时候,应首先删除它的磁盘i节点项. struct inode * iget (unsigned __int16 dinodeid)从磁盘上读i节点到内存. void iput(struct inode * pinode)从内存中释放掉i节点,不影响磁盘的i节点. 3.2.2 数据结构 /*内存i节点*/ struct inode{ struct inode *i_forw;

struct inode *i_back;

char i_flag;

unsigned int i_ino;

磁盘i节点标号*/ unsigned int i_count;

/*引用计数*/ unsigned short di_number;

/*关联文件,当为0时,则删除该文件*/ unsigned short di_mode;

/*存取权限*/ unsigned short di_uid;

/*磁盘i节点用户id*/ unsigned short di_gid;

/*磁盘i节点组id*/ unsigned short di_size;

文件大小*/ unsigned int di_addr[NADDR];

/*物理块号*/ };

/*磁盘i节点*/ struct dinode{ unsigned short di_number;

/*关联文件数*/ unsigned short di_mode;

下载(注:源文件不在本站服务器,都将跳转到源网站下载)
备用下载
发帖评论
相关话题
发布一个新话题