成组链接模拟unix文件系统.doc
文本预览下载声明
问题描述]在任一OS下,建立一个大文件,把它假象成一张盘,在其中实现一个简单的 模拟UNIX文件系统 。[基本要求]???????????????????????? ?1.在现有机器硬盘上开辟20M的硬盘空间,作为设定的硬盘空间。???? 2.编写一管理程序对此空间进行管理,以模拟UNIX(linux)文件系统,具体要求如下:(1)?要求盘块大小1k
?(2) i? 结点文件类型 正规文件目录文件(共1byte)块设备 管道文件 ????????????????? 。物理地址(索引表)????????????????????? 共有13个表项,每表项2byte????????????????? 。文件长度???? 4byte????????????????? 。联结计数???? 1byte??????? (3)0号块? 超级块??? 栈长度50??????????? 空闲盘块的管理:成组链接?? ( UNIX)???????????????????????????????? 位示图法?? (Linux)? ??????? (4)每建一个目录,分配4个物理块?????????????????????????? 文件名?? 14byte??????? (5)目录项信息?????????????????????????? i 结点号? 2byte
(6)结构:? 0#: 超级块??????? 1#-20#号为 i? 结点区??????? 20#-30#号为根目录区(7)功能:? 1、初始化??????? 2、建立文件(需给出文件名,文件长度)??????? 3、建立子目录??????? 4、打开文件(显示文件所占的盘块)??????? 5、删除文件??????? 6、删除目录??????? 7、显示目录(即显示目录下的信息,包括文件、子目录等)??????? 8、显示整个系统信息 2、模拟文件系统[问题描述]???? 在任一OS下,建立一个大文件,把它假象成一张盘,在其中实现一个简单的小型文件系统。[基本要求]该小型文件系统没有子目录机制,文件连续分配,不考虑分区。做一个简单的 操作界面,提供四条简单的命令:简单的ls、cat、cp、rd.进一步增强:上题中的文件系统功能:文件系统不连续分配,可以有子目录 机制,(如两级子目录机制)。附录??? 课程设计报告内容一.实验题目与要求。二.总的设计思想及环境说明、工具等。三.本题所需数据结构与模块说明。四.运行结果与运行情况。五.自我评析与总结。1.?你认为你完成的哪些比较好或比较出色;2.?差距与局限,什么做的不太好或什么地方可以做的更好以待改进;3.?从本作业得到的收获:对编写与调试过程中经验教训的总结;4.?完成本题的其他方法或你的设想;5.?对本实验题的评价和改进意见。
#include stdio.h #include stdlib.h #include conio.h #include string.h??int physic[100];????//文件地址缓冲区int style=1;?????//文件的类型char cur_dir[10]=root;??//当前目录? ?? struct command{?char com[10];}cmd[12];
struct block{?int n;??????//空闲的盘快的个数?int free[50];????//存放空闲盘快的地址?int a;??????//模拟盘快是否被占用}memory[20449];
struct block_super{?int n;??????//空闲的盘快的个数?int free[50];????//存放进入栈中的空闲块?int stack[50];????//存放下一组空闲盘快的地址}super_block;
struct node??????//i结点信息{?int file_style;????//i结点 文件类型?int file_length;???//i结点 文件长度?int file_address[100];??//i结点 文件的物理地址}?i_node[640];
struct dir??????//目录项信息{?char file_name[10];???//文件名?int? i_num;?????//文件的结点号?char dir_name[10];???//文件所在的目录}?root[640];
void format()?????//格式化{?int i,j,k;?super_block.n=50;?for
显示全部