好文档 - 专业文书写作范文服务资料分享网站

操作系统实验报告文件管理

天下 分享 时间: 加入收藏 我要投稿 点赞

. . .

理工大学信息工程与自动化学院学生实验报告

( 201 —201 学年 第 二 学期 )

课程名称:操作系统 开课实验室: 年 月 日 年级、专业、班 实验项目名称 教师评语 教师签名: 年 月 日 一、实验目的

用C或C++语言编写和调试一个简单的文件系统,模拟文件管理的基本功能。从而对各种文件操作命令的实质容和执行过程有比较深入的了解。

二、实验原理及基本技术路线图(框原理图)

用C模拟实现文件系统的管理;要求设计一个多级目录结构的文件系统,能正确描述文件控制块,采用合理的外存分配式,能实现基本的目录及文件的操作,包括创建、删除、重命名、复制、移动等功能,并对文件有一定的存取权限控制。

学号 文件管理 姓名 指导教师 成绩 功能设计 :

z

Help dir exit create [文件名] cdir [目录名] read [文件名] close[文件名] edit [文件名] cd [目录名] attr [文件名] del [文件名] rename [文件名] 显示命令帮助

显示当前目录下的文件和文件夹 退出系统 创建文本文件 创建文件夹

读取一个文件最多可同时读取五个 关闭一个文件 编辑一个文件

进子目录或者上级目录 显示该文件的属性 删除文件 重命名

. . .

z

. . .

编辑功能流程图

删除文件流程图

创建文件流程图

核心算法:

z

bool Format(void); //格式化

bool install(void); //装载虚拟硬盘的数据

. . .

void login(void); /用户登陆

void showMenu(void);//显示功能菜单 bool onAction(void);//用户选择功能并执行 void createFile(string str);//创建文件 bool read(string str);//读取文件 void editFile(string str);//编辑文件 void Delete(string str);//删除一个文件

数据结构:

始地址

/*inode结构体*/ struct inode{

unsigned short di_tag; /*inode标识*/ const unsigned int ACCOUNT_NUM=10;

//用户数量

/*---------常变量------*/

const unsigned int BLOCK_SIZE=512;

//块长

const unsigned int DATA_BLOCK_NUM=512; //数据块数量 const unsigned int DINODE_START=4*BLOCK_SIZE; const unsigned int DINODE_SIZE=512; const unsigned int DINODE_NUM=32;

//inode起始位置

//inode大小 //inode数量

const unsigned int DATASTART=(2+DINODE_NUM)*BLOCK_SIZE; //数据区的开

unsigned short di_number; /*关联文件数,当为0时表示删除文件,如一个目录至少

z

包含两个文件:\和\

. . .

unsigned short di_mode; /*存取模式:0为目录,1为文件*/

/*当前inode所属用户 0为根目录ID,一次下去是管理

录、用户目录*/

unsigned short di_userID; 员目

};

/**超级块***/ struct super_block{ };

/**账户信息**/ struct user{

z

unsigned short di_access;

/*访问权限 0为不允普通用户访问(公共目录),1为允普通用户访问*/

unsigned short di_size; /*文件大小,目录没有大小,值为0*/ unsigned short di_ctime; /* 创建时间 */ unsigned short di_mtime; /* 最后一次修改时间*/

unsigned short di_block[DATA_BLOCK_NUM]; /* 数据块块地址编号 */

unsigned short s_inodes_count; /* 文件系统中inode的总数 */ unsigned short s_blocks_count; /* 数据块总数 */ unsigned short s_r_blocks_count; /* 保留块总数 */ unsigned short s_free_blocks_count; // 空闲块总数

unsigned short s_free_inodes_count; /* 空闲的inode总数 */ unsigned short s_log_block_size; /* block 的大小 */

unsigned short user_id; //用户ID

unsigned short user_access; //权限 string username; string password;

//用户名 //密码

操作系统实验报告文件管理

...理工大学信息工程与自动化学院学生实验报告(201—201学年第二学期)课程名称:操作系统开课实验室:
推荐度:
点击下载文档文档为doc格式
10hq64ij3q0fvam2gyzr6h1tx45d76007je
领取福利

微信扫码领取福利

微信扫码分享