已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验三 文件系统空闲空间管理模拟一、实验内容及要求要求打印或显示程序运行前和运行后的位示图,以及分配和回收磁盘的物理地址过程;二、基本原理用数组表示位示图,其中的每一位对应磁盘一个物理块的状态,0表示空闲,1表示分配;当请求分配一个磁盘块时,寻找到数组中为0的位,计算相对磁盘块号,并计算其在磁盘中的物理地址(柱面号、磁道号、物理块号),并将其状态由0变到1。当释放某一物理块时,已知其在磁盘中的物理地址,计算其相对磁盘块号,再找到位示图数组中的相应位,将其状态由1变为0。三、实验相关公式: 计算公式如下:(1) 已知位示图中的下标i , j, 计算相对块号 Block= I * sizeof( int )+j (2)已知相对块号计算柱面、磁道、物理块号如下: 柱面号 C= 相对块号/(每柱面磁道数*每磁道物理块数) 磁道号 H= 相对块号%(每柱面磁道数*每磁道物理块数)/ 每磁道物理块数 物理块号 R= 相对块号%每磁道物理块数 4. 提出申请磁盘块或释放磁盘块的要求,根据要求完成操作。若申请盘块,则在位示图中找到为0的位,计算相对磁盘块号,再计算相应具体物理设备的柱面号C、磁道号H和物理块号R,计算方法如步骤3;输出分配的CHR地址,并将位示图相应位由0变为1,输出位示图;若释放盘块,则从已分配磁盘块表中随机选择一个盘块释放,此时,已知CHR地址,计算该盘块的相对磁盘块号,再计算其相应信息在位示图中的位置( i,j)。计算过程如下:相对磁盘块号 = 柱面号*每柱面磁道数*每磁道物理块数+ 磁道号*每磁道物理块数+ 物理块号i = 相对磁盘块号/ sizeof(int)j = 相对磁盘块号% sizeof(int)四、实验程序清单:#include #include #include #include #define COUNT 1024int size; int *bitmap;char filename32;int zhumianhao;int cidaohao;int shanquhao;struct bitmapinfo int bitmapstoreCOUNT; /内存映射状态 char filenameCOUNT32; int need;bitmapinfo info;int fenpei()/计算位示图的大小srand(unsigned)time(NULL);int total;printf(请输入柱面个数:n);scanf(%d,&zhumianhao);printf(请输入柱面磁道个数:n);scanf(%d,&cidaohao);printf(请输入每个磁道扇区个数:n);scanf(%d,&shanquhao);total = zhumianhao*cidaohao*shanquhao;if(0 =total%(sizeof(int)*8)size = total/(sizeof(int)*8);printf(数组的大小为:%dn,size);return size;elsesize = total/(sizeof(int)*8)+1;printf(数组的大小为:%dn,size);return size;int showbitmap(int n)/显示位示图信息int i;int count = 0;for(i=0;in;i+)bitmapi = (rand()16|rand();/产生随机数/显示随机数字for(i=0;in;i+)printf(%dt,bitmapi);printf(n);for(i=0;in;i+)/数字分离int j;int t;int m = 0x00000001;for(j = 0;j j)&m);if( t= 0)count+=1;if(j+1)%8 = 0)printf(n);printf(=map%d=n,i);/printf(%dn,count);printf(空闲块有:%dn,count);return count;void disklocal(int number,int n) /由用户输入需要的物理块数: int i; int j; int y;/计数 int neednum; printf(输入需要分配的块数:n); scanf(%d,&neednum);info.need = neednum; printf(输入文件名:n); scanf(%s,&filename); if( numberneednum ) printf(没有足够的空闲磁盘,分配失败!n); else for(i=0;in;i+)int t;int m = 0x00000001;for(j = 0;j j)&m);if(t = 0)bitmapi = (bitmapi|(mj);y = i*32+j;info.bitmapstorey = 1;strcpy(info.filenamey , filename);printf(%d,%s:,info.bitmapstorey,info.filenamey);printf(分配块物理地址为:第%d个柱面,t第%d个磁道,t第%d个扇区n,y/(cidaohao*shanquhao),y%(cidaohao*shanquhao)/cidaohao,y%shanquhao);neednum-;printf(分配成功n);for(i=0;in;i+)/打印分配后位示图信息int t;int m = 0x00000001;for(j = 0;j j)&m);if(j+1)%8 = 0)printf(n);printf(=map%d= =n,i); system(pause); void diskreturn(int n) char filereturn32; int i; int j; int y; int m = 0x00000001; printf(输入要回收的文件名n); scanf(%s,filereturn); for( i =0;in;i+) for( j=0;j32;j+) if(info.need = 0)break;y = i*32+j;if(!strcmp(info.filenamey,filereturn) bitmapi = (bitmapi(mj);printf(回收块物理地址为:第%d个柱面,t第%d个磁道,t第%d个扇区n,y/(cidaohao*shanquhao),y%(cidaohao*shanquhao)/cidaohao,y%shanquhao); info.need-; for(i=0;in;i+)/打印分配后位示图信息int t;int m = 0x00000001;for(j = 0;j j)&m);if(j+1)%8 = 0)printf(n);printf(=map%d= =n,i); system(paus
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 旺季促销活动执行标准商洽联系函7篇
- 2026年物流专线货运合同(1篇)
- 八年级语文下册 中国文化 第七课 龙的传人 第五课时 自读课文教学设计 新教版(汉语)
- 第3节 液压传动与曲柄连杆传动教学设计高中物理鲁科版选修2-2-鲁科版2004
- 高精度行业的智能制造工厂方案
- 2026年幼儿园河流主题
- 人教版七年级上学期历史与社会教学设计:2.2.3 众多的河湖学
- 新疆维吾尔自治区克拉玛依市2026年高三3月份模拟考试物理试题(含答案解析)
- 2026年幼儿园小班晒太阳
- 第19 クレーム教学设计新版标准日本语中级下册-新版标准日本语
- 2026年国企法务岗位招聘面试案例分析与实务考核含答案
- 福建省房屋建筑和市政基础设施工程概算编制规程(2026版)
- 2025年大学机械设计制造及其自动化(机械制造技术)试题及答案
- DB13∕T 6056-2025 涉路工程技术评价规范
- TCECS10011-2022聚乙烯共混聚氯乙烯高性能双壁波纹管材
- 工程款催收合同范本
- 室内水箱拆除施工方案
- 河南建院考试单招题目及答案
- 盐城广播电视总台招聘3人笔试模拟试题附答案详解
- 2025年入党积极分子培训考试试题库及答案
- 快速康复在骨科护理中的应用
评论
0/150
提交评论