《实验四、文件系统原理与模拟实现》由会员分享,可在线阅读,更多相关《实验四、文件系统原理与模拟实现(2页珍藏版)》请在金锄头文库上搜索。
1、实验四、文件系统原理与模拟实现实验目的:了解操作系统中文件系统的结构和管理过程,掌握经典的算法:混合索引与成组链接法等方法。实验内容:编程模拟实现混合索引和成组链接法算法;实验步骤:l 模拟混合索引的原理;假设每个盘块16字节大小,每个盘块号占2字节:设计支持混合索引算法的索引节点的数据结构;编程模拟实现混合索引算法。测试:输入一个文件的长度,给出模拟分配占用的磁盘块的情况;输入一个需要访问的地址,计算该地址所在的盘块号。代码:#include #include void main()int file,count,bsize,bnsize;printf(请输入每个盘块的大小:n);scanf(
2、%d,&bsize);printf(请输入每个盘块号占的空间大小n);scanf(%d,&bnsize);printf(请输入文件的大小:n);scanf(%d,&file);if(file(10+bsize/bnsize+(bsize/bnsize)*(bsize/bnsize)+(bsize/bnsize)*(bsize/bnsize)*(bsize/bnsize)*bsize) printf(文件长度太大n);exit(0);elsecount=(file+bsize-1)/bsize;if (count10&count10+bsize/bnsize&count=10+bsize/bns
3、ize+(bsize/bnsize)*(bsize/bnsize) printf(该文件启动了二级索引n);printf(该文件占了直接索引,一级索引和二级索引的从第一块到%d块,count-10-bsize/bnsize);/*if(file%bsize=0)printf(若为地址则块内地址为%dn,bsize);else*/printf(若为地址则块内地址为%dn,file/bsize-1);elseprintf(该文件启动了三级索引n);printf(该文件占了三级索引的从第一块到%块n,count-10-bsize/bnsize-(bsize/bnsize)*(bsize/bnsize);/*if(file%bsize=0)printf(若为地址则块内地址为%dn,bsize);else*/printf(若为地址则块内地址为%dn,file/bsize-1);