文件系统存储空间管理模拟实验报告要点

上传人:jiups****uk12 文档编号:90631678 上传时间:2019-06-14 格式:DOC 页数:17 大小:946.50KB
返回 下载 相关 举报
文件系统存储空间管理模拟实验报告要点_第1页
第1页 / 共17页
文件系统存储空间管理模拟实验报告要点_第2页
第2页 / 共17页
文件系统存储空间管理模拟实验报告要点_第3页
第3页 / 共17页
文件系统存储空间管理模拟实验报告要点_第4页
第4页 / 共17页
文件系统存储空间管理模拟实验报告要点_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《文件系统存储空间管理模拟实验报告要点》由会员分享,可在线阅读,更多相关《文件系统存储空间管理模拟实验报告要点(17页珍藏版)》请在金锄头文库上搜索。

1、课程名称 计算机操作系统 实验名称 文件系统存储空间管理模拟 姓 名 学 号 专业班级 实验日期 成 绩 指导老师 1、 实验目的 根据提出的文件分配和释放请求,动态显示磁盘空闲空间的态以及文件目录的变化,以位示图和索引分配为例:每次执行请求后要求显示或打印位示图的修改位置、分配和回收磁盘的物理块地址、更新的位示图、目录。2、 实验原理 用数组表示位示图,其中的每一位对应磁盘一个物理块的状态,0表示、空闲,1表示分配;当请求分配一个磁盘块时,寻找到数组中为0的位,计算相对磁盘块号,并计算其在磁盘中的物理地址(柱面号、磁道号、物理块号),并将其状态由0变到1。当释放某一物理块时,已知其在磁盘中的

2、物理地址,计算其相对磁盘块号,再找到位示图数组中的相应位,将其状态由1变为0。3、 主要仪器设备 PC机(含有VC)4、 实验内容与步骤实验内容:1. 模拟文件空间分配、释放过程,可选择连续分配、链式分配、 索引分配方法;2. 文件空闲空间管理,可采用空白块链、空白目录、位示图方法;步骤如下:1. 输入磁盘基本信息参数,计算位示图大小,并随机初始化位示图;(1)磁盘基本信息:磁盘柱面数m, 每柱面磁道数p, 每磁道物理块数q;(2)假设采用整数数组存放位示图,则数组大小为:Size= ceil(柱面数*每柱面磁道数*每磁道物理块数)/(sizeof(int)*8) (3)申请大小为size的整

3、数数组map,并对其进行随机初始化。 例如:假设m=2, p=4, q=8, 共有64个磁盘块, 若sizeof(int)=2, 则位示图大小为4,map4如下: 1514131211109876543210map00011010011001010map11010110000110000map2011001110011001map31000100001100110位示图中每一位对应的相对磁盘块号如下图,磁盘块号由小到大对应于数组的低地址到高地址位上。即map0的第0位到第15位分别对应0号磁盘块到15号磁盘块的状态,map1的第0位到第15位对应16号磁盘块到31号磁盘块的状态,以此类推。15

4、14131211109876543210map01514131211109876543210map131302928272625242322212019181716map247464544434241403938373635343332map363626160595857565554535251504948如上表所示, 29号磁盘的状态存在map1中,对应于第13位;2. 输出初始位示图信息;3. 输入文件分配或释放请求, (1)格式:“+ 文件名 申请块数” 或 “ - 文件名 ” “+”表示申请文件分配,“-”表示删除文件 如: + F1 54. 根据请求完成相应操作。 (1)若为分配申请

5、x个盘块,则在位示图中找到x个为0的位,将其修改为“1”,计算相应具体物理设备的柱面号C、磁道号H和物理块号R,并将CHR地址或相对磁盘块号记录在文件目录中。输出位示图修改位置、分配的磁盘块CHR地址、修改后的目录和位示图信息。否则,空间不够,退出执行下一条请求; l 计算公式如下:a. 已知位示图中的下标i , j, 计算相对块号 Block= i*sizeof( int )*8+j b. 已知相对块号计算柱面、磁道、物理块号如下: 柱面号 C= 相对块号/(每柱面磁道数*每磁道物理块数) 磁道号 H= 相对块号%(每柱面磁道数*每磁道物理块数)/ 每磁道物理块数 物理块号 R= 相对块号%

6、每磁道物理块数l 文件目录如下(以索引表分配为例):文件名首个物理块CHR地址块个数索引表beta(0,0,0)2(0,0,0)(0,0,1)Alpha(2,3,0)3(2,3,0)Toyota43(4 9 12)(Sony文件名首个物理块地址(相对)块个数索引表beta02(0,2,3)Alpha33(3,6,7)Toyota83(8, 9,12)(2)若为删除申请,则从目录中找到要删除的文件所在的目录项,读取索引表,依次读取文件相应的盘块CHR地址, 计算该盘块的相对磁盘块号,再计算其相应信息在位示图中的位置( i,j),将位示图中的相应位有“1”改为“0”, 并从目录中删除该目录项。输出

7、删除的磁盘块CHR地址、相应位示图修改位置、修改过的位示图和目录。计算过程如下:相对磁盘块号 = 柱面号*每柱面磁道数*每磁道物理块数+ 磁道号*每磁道物理块数+ 物理块号i = 相对磁盘块号/ (sizeof(int)*8)j = 相对磁盘块号% (sizeof(int)*8)5、 实验流程图图一 文件空闲区分配算法图二 文件空闲区回收算法6、 实验代码#include stdio.h #include #include #include int physic100; /文件地址缓冲区int style=1; /文件的类型char cur_dir10=root; /当前目录 struct c

8、ommandchar com10;cmd13;struct block int n; /空闲的盘快的个数 int free50; /存放空闲盘快的地址 int a; /模拟盘快是否被占用memory20449;struct block_superint n; /空闲的盘快的个数 int free50; /存放进入栈中的空闲块 int stack50; /存放下一组空闲盘快的地址super_block;struct node /i结点信息int file_style; /i结点 文件类型 int file_length; /i结点 文件长度 int file_address100; /i结点 文

9、件的物理地址 i_node640;struct dir /目录项信息char file_name10; /文件名 int i_num; /文件的结点号 char dir_name10; /文件所在的目录 root640;void format() /格式化int i,j,k; super_block.n=50; for(i=0;i50;i+) /超级块初始化 super_block.freei=i; /存放进入栈中的空闲块 super_block.stacki=50+i; /存放下一组的盘块 for(i=0;i640;i+) /i结点信息初始化 for(j=0;j100;j+) i_nodei

10、.file_addressj=-1;/文件地址 i_nodei.file_length=-1; /文件长度 i_nodei.file_style=-1; /文件类型 for(i=0;i640;i+) /根目录区信息初始化 strcpy(rooti.file_name,); rooti.i_num=-1; strcpy(rooti.dir_name,); for(i=0;i20449;i+) /存储空间初始化 memoryi.n=0; /必须有这个 memoryi.a=0; for(j=0;j50;j+) memoryi.freej=-1; for(i=0;i20449;i+) /将空闲块的信息

11、用成组链接的方法写进每组的最后一个块中 /存储空间初始化 if(i+1)%50=0) k=i+1; for(j=0;j50;j+) if(k20450) memoryi.freej=k;/下一组空闲地址 memoryi.n+; /下一组空闲个数 注意在memoryi.n+之前要给其赋初值 k+; else memoryi.freej=-1; memoryi.a=0; /标记为没有使用 continue; /处理完用于存储下一组盘块信息的特殊盘块后,跳过本次循环 for(j=0;j50;j+) memoryi.freej=-1; memoryi.n=0; printf(已经初始化完毕n); pr

12、intf(进入UNIX文件模拟.nn); void write_file(FILE *fp) /将信息读入系统文件中int i; fp=fopen(system,wb); for(i=0;i20449;i+) fwrite(&memoryi,sizeof(struct block),1,fp); fwrite(&super_block,sizeof(struct block_super),1,fp); for(i=0;i640;i+) write(&i_nodei,sizeof(struct node),1,fp); for(i=0;i640;i+) fwrite(&rooti,sizeof(struct dir),1,fp);

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 其它中学文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号