操作系统文件系统实验报告后附源代码Word文档下载推荐.docx

上传人:b****6 文档编号:19313117 上传时间:2023-01-05 格式:DOCX 页数:10 大小:21.19KB
下载 相关 举报
操作系统文件系统实验报告后附源代码Word文档下载推荐.docx_第1页
第1页 / 共10页
操作系统文件系统实验报告后附源代码Word文档下载推荐.docx_第2页
第2页 / 共10页
操作系统文件系统实验报告后附源代码Word文档下载推荐.docx_第3页
第3页 / 共10页
操作系统文件系统实验报告后附源代码Word文档下载推荐.docx_第4页
第4页 / 共10页
操作系统文件系统实验报告后附源代码Word文档下载推荐.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

操作系统文件系统实验报告后附源代码Word文档下载推荐.docx

《操作系统文件系统实验报告后附源代码Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《操作系统文件系统实验报告后附源代码Word文档下载推荐.docx(10页珍藏版)》请在冰豆网上搜索。

操作系统文件系统实验报告后附源代码Word文档下载推荐.docx

④能实际演示这个文件系统。

基本上是进入一个界面(此界面就是该文件系统的界面)后,可以实现设计的操作要求。

1)设计一个10个用户的文件系统,每次用户可保存10个文件,一次运行用户可以打开5个文件。

MFD)和用户文件目录(UFD)。

另外,为打开

2)程序采用二级文件目录(即设置主目录文件设置了运行文件目录(AFD)。

3)为了便于实现,对文件的读写作了简化,在执行读写命令时,只需改读写指针,并不进行实际的读写操作。

4)因系统小,文件目录的检索使用了简单的线性搜索。

1,对应位为0,则表示不允

5)文件保护简单使用了三位保护码:

允许读写执行、对应位为许读写、执行。

MFD、UFD),打开文

6)程序中使用的主要设计结构如下:

主文件目录和用户文件目录(件目录(AFD)即运行文件目录,如图所示。

maa;

1登录严63111«

0:

&

\派阖\蕨苗¥

紈1;

^任贾、1Vinuxni^iTuesys.exe格申请k个bock空间ins输入用^名

rndnln#adnln否

^■BioJCk位图是否加锁

la查找是否有改,,..,.,nSEi*用户加锁嗣run否

TkAf£

?

uf1爭Hfiin

#defir

Inode位图是否加锁

否,加锁

Inode空间是否已满

是否有密严gt喑桌面2数据结构的设护核n曲*

>

'

oat\etc

密码是否正确按照分找不到请失败定义找空闲白%

是,登录成功J.

e找到返回SlZ^ki地址12

PO束c>

logout

lAser■结束ie=XHaDl)os£

wd;

xi吕aloginsuccess*Trodt\etc\xiAo>

<

iir

在ionde位图顺序查

dir>

mode找空闲的inode

dij*>

inode0

passud>

ino(l找到返回iTOde地址<

dii'

inode3

inodeIrOde位图解锁

结束

申请失败

找不到审

poot\etc'

wiHao>

<

inolieinode

后在连续

出版物:

[序号]主要责任者.文献题名[J].

刊名,

出版年份,

卷号(期号):

起止页码)

[2]刘国钧,王连成.图书馆史研究[M].北京:

高等教育出版社,

1979:

15-18,

31.(专著:

[序号]主要责任者.文献题名[M].出版地:

出版者,出版

年:

起止页码.)

[3]孙品一.高校学报编辑工作现代化特征[C].中国高等学校自然科学学报研

究会.

科技编辑学论文集

(2).北京:

北京师范大学出版社,1998:

10-22.(论

文集:

[序号]主要责任者.文献题名[C]//主编.论文集名.出版地:

版者,

出版年:

附:

源代码

#include<

#include<

#defineBLOCKSIZ512

\n"

);

login();

showhelp();

printf("

%s>

"

cmdhead);

while

(1)

{

scanf("

%s"

&

str);

if(strcmp(str,"

exit"

)==0)

fclose(fd);

}else

return;

dir"

{showdir();

}

elseif(strcmp(str,"

bit"

showbitmap();

help"

logout"

logout();

if(Iscmd(str))

strname);

cmd_Up(str,strname);

else

{printf("

错误命令!

}printf("

s_r_blocks_count=0;

/*保留的blocks计数*/filsys.s_free_blocks_count=DATABLKNUM-5;

/*空闲的blocks计数*/[0]=50-5;

_name,"

."

dir_buf[0].d_ino=0;

_name,"

.."

dir_buf[1].d_ino=0;

etc"

dir_buf[2].d_ino=1;

dir_buf[0].d_ino=1;

strcpy(dir_buf[1].d_name,"

dir_buf[1].d_ino=0;

strcpy(dir_buf[2].d_name,"

passwd"

dir_buf[2].d_ino=2;

strcpy(dir_buf[3].d_name,"

admin"

dir_buf[3].d_ino=3;

strcpy(dir_buf[4].d_name,"

xiao"

dir_buf[4].d_ino=4;

fseek(fd,DATASTART+BLOCKSIZ,SEEK_SET);

fwrite(dir_buf,BLOCKSIZ,1,fd);

dir_buf[0].d_ino=3;

strcpy(dir_buf[1].d_name,"

dir_buf[1].d_ino=1;

fseek(fd,DATASTART+BLOCKSIZ*3,SEEK_SET);

dir_buf[0].d_ino=4;

fseek(fd,DATASTART+BLOCKSIZ*4,SEEK_SET);

_uid=1;

passwd[0].p_gid=GRUP_0;

sername,"

strcpy(passwd[0].password,"

passwd[1].p_uid=2;

passwd[1].p_gid=GRUP_1;

strcpy(passwd[1].username,"

strcpy(passwd[1].password,"

for(i=2;

i<

PWDNUM;

i++){

passwd[i].p_uid=0;

passwd[i].p_gid=GRUP_4;

strcpy(passwd[i].username,"

nothisuser"

strcpy(passwd[i].password,"

fseek(fd,DATASTART+BLOCKSIZ*2,SEEK_SET);

fwrite(passwd,BLOCKSIZ,1,fd);

ininode->

di_ino=2;

.\n"

fd=fopen(fsystemname,"

rb+"

_uid!

=0){

sername,&

pwd[i].password);

inodetemp=read_inode(0);

t\t\t<

\tinode%d\n"

dir_buf[i].d_ino);

elseif(i==1)

\t..\t\t\t<

}else

inodetemp=read_inode(dir_buf[i].d_ino);

if((inodetemp->

di_mode&

DIMODE_DIR)==DIMODE_DIR)

\t%s\t\t\t<

dir_buf[i].d_name,dir_buf[i].d_ino);

elseif((inodetemp->

DIMODE_FILE)==DIMODE_FILE)

%d

file>

\tsize

block%d\n"

dir_buf[i].d_name,inodetemp->

di_size,inodetemp->

di_block[0]);

passwd>

inode

dir_buf[i].d_name,dir_buf[i].d_ino,inodetemp->

intEnterdir(char*namestr),namestr)==0){

i=0;

break;

if(strcmp("

namestr)==0)

i=1;

if(strcmp(dir_buf[i].d_name,namestr)==0)

if(dir_buf[i].d_ino!

=-1)

_ino);

break;

i++;

}while(i<

cur_inode->

di_number);

if(i==cur_inode->

di_number)

intIscmd(charcmd[10]){

del"

if(strcmp(cmdhead,"

root"

)!

=0)

while(cmdhead[i]!

='

\0'

if(cmdhead[i]=='

\\'

){

itemp=i;

}i++;

cmdhead[itemp]='

;

elseif(strcmp(strname,"

strcat(cmdhead,"

\\"

strcat(cmdhead,strname);

进入目录失败!

create"

{if(creat(strname))

{del_ino=inum;

_name,strname);

fseek(fd,DATASTART+BLOCKSIZ*cur_inode->

di_block[0],SEEK_SET);

buf[0].d_ino=inum;

buf[1].d_ino=cur_inode->

di_ino;

fseek(fd,DATASTART+BLOCKSIZ*bnum,SEEK_SET);

_ino=inum;

di_block[0],

SEEK_SET);

_name,strname)!

for(;

i<

di_number;

i++)

strcpy(dir_buf[i].d_name,dir_buf[i+1].d_name);

dir_buf[i].d_ino=dir_buf[i+1].d_ino;

_name,strname)==0)

已经找到%s,inode=%d\n"

strname,dir_buf[i].d_ino);

printf("

请输入新的文件名:

fflush(stdin);

temp);

if(strlen(temp)>

=14)

新文件名过长!

重命名失败!

return-1;

if(Fd_dirfile(temp)!

=-1)_name,temp);

sername);

if(strcmp(pwd[i].username,str)==0)

str)==0)

exit(0);

if(i!

=PWDNUM)

}while

(1);

passwd:

scanf("

str);

if(strcmp(pwd[i].password,str)==0){

cur_user=&

pwd[i];

elseif(inodetemp->

di_gid==1)

由%s创建,属于普通用户组\n"

pwd[inodetemp->

di_uid-1].username);

}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 环境科学食品科学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1