资源描述
______________________________________________________________________________________________________________
实 验 报 告
( 2012/ 2013 学年 第 一 学期)
课程名称
操 作 系 统A
实验名称
文件系统
实验时间
2012
年
12
月
26
日
指导单位
南京邮电大学
指导教师
黄刚
学生姓名
班级学号
学院(系)
计算机软件
专 业
软件工程
精品资料
实 验 报 告
实验名称
文件系统模拟设计
指导教师
黄刚
实验类型
验证
实验学时
2
实验时间
2012.10.15
一、 实验目的和要求
1.掌握文件系统的使用。
2.实现一个文本文件的某信息的插入和删除。
3.实现一个记录文件的某记录的插入和删除
设计一个多用户文件系统,模拟管理的工作过程,
二、实验环境(实验设备)
Windows 7
三、实验原理及内容
实验流程图
数据结构设计
用户结构:账号与密码结构
typedef struct users
{
char name[8];
char pwd[10];
}users;
本系统有8个默认的用户名,前面是用户名,后面为密码,用户登陆时只要输入正确便可进入系统,否则提示失败要求重新输入。
users usrarray[8] =
{
"usr1","usr1",
"usr2","usr2",
"usr3","usr3",
"usr4","usr4",
"usr5","usr5",
"usr6","usr6",
"usr7","usr7",
"usr8","usr8",
};
(3)数据结构说明
a)文件结构链表
struct fnode
{
char filename[FILENAME_LENGTH];
int isdir;
int isopen;
char content[255];
fnode *parent;
fnode *child;
fnode *prev;
fnode *next;
};
b)函数介绍
fnode *initfile(char filename[],int isdir);//初始化文件或目录
void createroot();//建立系统根目录
int run();系统运行
int findpara(char *topara);对参数进行处理
bool chklogin(char *users, char *pwd);检查账号与口令
void help();命令列表
int mkdir();建立目录
int create();建立文件
int read();读取文件
int write();写入文件
int del();删除文件
int cd();切换目录
int dir();文件与目录列表
模块设计
此课程设计把文本作为研究对象来模拟操作系统的文件系统工作过程。所以用一个字符串数组来模拟磁盘空间,顾名思义,模拟磁盘提供字符的存储服务。
所有用户构成一个数组,每个数组元素是一个结构体,每个结构体包括三部分,用户的用户名、用户密码和文件链表(由于模拟文件系统的文件数量不多,故文件表采用线性链表来存储。线性表每个结点放置一个文件的FCB,其中存储一个文件的信息,文件名、长度、类型、创建时间等);
磁盘空间分配表,采用链表结构,每个节点保存模拟磁盘的一个逻辑块的信息,包括块的最大长度,文件占用长度,占用标志。如果占用标志为0,即该空间可分配给文件。初始化磁盘空间分配表链表,首先把整个模拟磁盘作来一块,并置占用位为0。当有进程申请磁盘空间时,从头开始遍历,检查占用位,如果该块为可分配,则检查块大小,若块长度大于或等于申请空间大小,则把块的前一部分(等于申请大小)分配给文件,并置标志位为占用。剩下的大小作来一个新块,作来一个新节点插入到原节点的后边,标志位为可用。这样就实现了模拟磁盘的线性分配。
算法流程图
模拟二级文件系统
主界面
用户登录
切换目录
退出登录
建立目录
删除文件
写入文件
读取文件
建立文件
相关程序:
略,详见电子版附件。
系统运行图:
1. 首先登陆,输入用户名和密码
2. 输入help 获得命令帮助
4. 依次根据命令提示,建立文件目录makdir、查看目录dir、跳至新建目录cd、建立文档create、读取文档read、写文档write、删除文档del
5.退出登录logout
实 验 报 告
四、实验小结(包括问题和解决方法、心得体会、意见与建议等)
通过本次的课程设计,使我能够正确运用操作系统课程中所学的基本理论和知识,加深了对文件系统基本概念的理解,以及磁盘文件系统的文件操作。在设计过程中,查询了不少相关资料,不断的发现问题、提出问题、解决问题。在对自己所编写的源程序段的纠错的过程中,使我更好的理解了操作系统中文件系统的理论知识,同时在编程时用到了模块化的设计思想,这种编程方法可以使我们的编程变的更简单,可以使我们的查错与纠错变的更方便。总的来说通过这次的设计的学习使我学到了很多在平时的学习中学不到的很多东西,通过这次课程设计,使我对操作系统和编程产生兴趣,我想我会在这条路上继续前进下去。我相信,只要不断的严格要求自己,注意培养自己的思维能力,就一定会有更大更辉煌的发展和提高。
五、指导教师评语
成 绩
批阅人
日 期
Welcome To
Download !!!
欢迎您的下载,资料仅供参考!
精品资料
展开阅读全文