人人范文网 范文大全

操作系统实验十

发布时间:2020-03-01 20:24:39 来源:范文大全 收藏本文 下载本文 手机版

试验十

文件系统设计

数计学院教师实验教案

(实验十)

实验项目名称:文件系统设计 教师评分:

一、实验项目名称:

文件系统设计

二、实验目的和要求:

目的:通过一个简单多用户文件系统的设计,加深理解文件系统的内部功能及实现。

任务:首先确定文件系统的数据结构,然后利用C语言编写相应的程序,并在计算机上进行调试,得出相应的结果。

三、实验内容

用高级语言编写和调试一个简单的文件系统,模拟文件管理的工作过程。要求设计一个 10 个用户的文件系统,每次用户可保存 10 个文件,一次运行用户可以打开5 个文件。要求做到以下几点:

①可以实现下列几条命令 LOGIN 用户登陆 DIR 列文件目录 CREATE 创建文件 DELETE 删除文件 OPEN 打开文件 CLOSE 关闭文件 READ 读文件 WRITE 写文件

②列目录时要列出文件名,物理地址,保护码和文件长度。 ③源文件可以进行读写保护。

四、实验原理:(设计思想)

- 19

试验十

文件系统设计

息。该结构需支持以下操作:在尾部插入,查找,修改,在任意位置删除。

ⅲ.物理设计

char UserName[SizeOfUser][SizeOfUserName];//用户ID long User;//当前用户标志 struct InfoOfFile { char Name[SizeOfFileName];//文件名 bool safe[3];//Read,Write,Execute long status;//ready,open; }UFD[SizeOfUser][SizeOfFile]; long num[SizeOfUser];//保存文件数 long num_open[SizeOfUser];//打开文件数 char z[4]=\"rwe\";//保护标记的显示形式

五、参考源代码

#include #include

#define SizeOfUserName 255 #define SizeOfUser 10 #define SizeOfFile 10 #define SizeOfCommand 255 #define SizeOfFileName 255

char UserName[SizeOfUser][SizeOfUserName]; long User; struct InfoOfFile { char Name[SizeOfFileName]; bool safe[3];//Read,Write,Execute

- 21

试验十

文件系统设计

tmp[3]=\'\\0\'; printf(\"%20s\",tmp); if (UFD[User][i].status) { printf(\"%20s\\n\",\"Opened\"); } else { printf(\"%20s\\n\",\"Ready\"); } }

printf(\"%ld file(s) in total\\n\",num[User]); }

long login()//切换用户 { long i; char NameInput[SizeOfUserName]; do { printf(\"Please input your ID:\"); scanf(\"%s\",NameInput); i=0; while (i

- 23

试验十

文件系统设计

for (i=0;i

void create()//创建文件

- 25

试验十

文件系统设计

UFD[User][num[User]].safe[i]=0; } else { UFD[User][num[User]].safe[i]=1; } }

UFD[User][num[User]].status=0; ++num[User]; printf(\"Succe!\\n\"); }

void open()//打开文件 { long i; char filename[SizeOfFileName];

if (num_open[User]==5) { printf(\"Failed...You have already opened 5 files\\n\"); //打开文件数已到上限 return ; } printf(\"Input filename>\"); scanf(\"%s\",filename); for (i=0;i

- 27

试验十

文件系统设计

for (i=0;i

void read()//读文件 { long i; char filename[SizeOfFileName];

printf(\"Input filename>\"); scanf(\"%s\",filename);

- 29

试验十

文件系统设计

printf(\"Input filename>\"); scanf(\"%s\",filename); for (i=0;i

void mydelete()//删除文件 {

- 31

试验十

文件系统设计

void save()//保存本 { FILE *fp=fopen(\"D:\\123\\record.txt\",\"w\"); long i,j,k; char tt[4]=\"rwe\"; char tmp[4];

//保存用户列表

for (i=0;i

for (i=0;i

- 33

试验十

文件系统设计

if (strcmp(command,\"bye\")==0) { printf(\"Byebye.\\n\"); over=1; continue; } if (strcmp(command,\"ls\")==0 || strcmp(command,\"dir\")==0) { ls(); continue; } if (strcmp(command,\"create\")==0) { create();

continue; } if (strcmp(command,\"delete\")==0) { mydelete(); continue; } if (strcmp(command,\"open\")==0) { open(); continue; }

- 35

试验十

文件系统设计

work(); return 0; }

六、结果显示

1.LOGIN 用户登陆

2.CREATE 创建文件

3.DIR 列文件目录

4.DELETE 删除文件

- 37

操作系统实验

操作系统实验体会

《操作系统》实验指导书

操作系统实验六

操作系统实验总结

网络操作系统实验教案

山大操作系统实验3

西工大操作系统实验2

操作系统实验教学大纲(新)

操作系统进程调度实验

操作系统实验十
《操作系统实验十.doc》
将本文的Word文档下载到电脑,方便编辑。
推荐度:
点击下载文档
点击下载本文文档