c语言写操作系统的二级文件夹,操作系统: 二级目录文件系统的实现(c/c++语言)...

操作系统的一个课程设计,实现一个二级目录文件系统。

用disk.txt模拟磁盘,使用Help查看支持的命令及其操作方式,root为超级用户(写在disk.txt中) 文件的逻辑结构:流式文件。 物理结构:链接文件。 物理空间管理:空闲链法。 目录结构:二级目录结构。 目录搜索技术:线性搜索。 FCB:含文件相关的全部属性。

物理盘块的设计(disk.txt)

以一个文本文件disk.txt模拟硬盘,设定硬盘容量分为100个物理块,每个物理块的大小512字节,盘块之间用(‘\n’)分割。因此一个盘块:512字节数据+1字节(‘\n’)分割符=513字节,则disk.txt长度=51300(100×513)+1字节(文件结束符)=51301字节。

100块盘块的分布:

1#: MFD块,存放MFD信息;

2-17#: UFD块,存放UFD信息;

18-33#: UOF块,存放UOF信息;

其余物理块用于存放文件内容。

# MFD块的设计

硬盘的第1个物理块固定用于存放主文件目录MFD。MFD结构如下:

typedef struct mfd{

username ;//用户名 14B

userpwd ;//密码14B

link; //该用户的UFD所在的物理块号(4B)

}MFD;

每个MFD项占32字节,因此,1个物理块可存放512/32=16个MFD(用户),即本文件系统最多可管理16个用户。如下表1所示:

用户名

密码

用户文件目录地址

Peter

12345

3

Ben

Abc

5

表1文件系统用户目录信息表

2#-17# UFD块的设计

2#-17#物理块:固定用于存放用户文件目录UFD。假设一个用户需要一个UFD块,因此,16个用户共需要16个UFD块。UFD结构如下:

typedef struct {

filename //文件名14B;

mode; ///文件权限0-readonly;1-writeonly;2-read/write

length; ///文件长度(以字节数计算)

addr;//该文件的第1个文件块对应的物理块号

}UFD;

一个UFD项设为32 Bytes,一个块可存放16个UFD项。则一个用户最多可创建16个文件。如下表2所示:

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值