操作系统课程设计-基于java二级文件系统.doc
文本预览下载声明
操作系统课程设计报告
题 目: 文件系统的模拟设计
姓名:崔峰海
学号:200925501132
指导老师:翟一鸣
学校:烟台大学
时间一、设计目的学习完操作系统课程后进行的一次全面的综合训练,加深操作系统基础理论和的理解,加强学生的动手能力。设计内容(1)概述为Linux系统设计一个简单的二级文件系统。要求做到以下几点:
1.可以实现下列几条命令:
login 用户登录
dir 列目录
create 创建文件
delete 删除文件
open 打开文件
close 关闭文件
read 读文件
write 写文件2.列目录时要列出文件名,物理地址,保护码和文件长度
3.源文件可以进行读写保护(2)设计原理文件系统
(3)详细设计
文件创建函数
算法:查找当前目录下是否有同名文件,是则退出,否则让用户输入文本文件内容,以‘###’结束。申请inode空间(ialloc函数),申请硬盘block空间(balloc函数),申请失败则结束。将文件内容写入inode空间和block空间。修改当前目录的结构,修改inode位图,block位图,写入模拟硬盘。详细过程如流程图1.2所示:
③、打开文件函数
对文件进行关闭操作,若此时文件不存在或处于读状态或写状态,则返回关闭失败信息;若此时文件处于空闲状态,则调用Close函数进行关闭操作。流程图如图1.3所示:
④、关闭文件系统函数
对文件进行打开操作,若此时文件不存在或已处于打开状态或读状态或写状态,则返回打开失败信息;若此时文件处于空闲状态,则调用Open函数进行打开操作。流程图如图1.4所示:
(4) 程序结果如图1.5-1.7所示
图1.5
图1.6
图1.7
()操作系统课程设计是本课程重要的实践教学环节。课程设计的目的,一方面使学生更透彻地理解操作系统的基本概念和原理,使之由抽象到具体;另一方面,通过课程设计加强学生的实验手段与实践技能,培养学生独立分析问题、解决问题、应用知识的能力和创新精神。与本课程的实验教学相比,课程设计独立设课,具有更多的学时,给学生更多自行设计、自主实验的机会,充分放手让学生真正培养学生的实践动手能力,全面提高学生的综合素质。()参考文献
12、显示列表函数dir( )和目录创建函数mkdir( )等(文件名dir.c)
#include stdio.h
#include string.h
#include filesys.h
_dir( ) /*dir*/
{ unsigned int di_mode;
int i,j,one;
struct inode *temp_inode;
printf(\nCURRENT DIRECTORY:\n);
for(i=0;iDIRNUM;i++)
{if(!(strcmp(dir.direct[i].d_name,))(dir.direct[i].d_ino==0))
{ dir.size = i;break; }}
for(i=0;idir.size;i++)
{if (dir.direct[i].d_ino!=DIEMPTY)
{ printf(%14s ,dir.direct[%d].d_ino = %d, 属性:,dir.direct[i].d_name,i,dir.direct[i].d_ino);
temp_inode=iget(dir.direct[i].d_ino);
di_mode=temp_inode-di_mode;
for(j=0;j12;j++)
{ one=di_mode%2;
di_mode=di_mode/2;
if (one)
printf(x);
el
显示全部