

下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、要求:模拟 UNIX 系统的空闲块成组链接法,实现磁盘存储空间的管理。提示:(1)假定磁盘存储空间已被划分成长度为 n 的等长块,共有 M 块可供使用。UNIX 系统中采用空闲块成组链接的方法 来管理磁盘存储空间, 将磁盘中的每 N 个空闲块(NM)分成一组,最后一组可以不足 N 块, 每组的第一块中登记了下一组空闲块的块数和块号,第一组的块数和块号登记在专用块中,登记的格式如下:0空闲块数 k1空闲块号 12空闲块号 2MMMMK空闲块号 kMMMM当第一项内容为“0”寸,则第二项起指岀的空闲块是最后一组。现模拟 UNIX 系统的空闲块成组链接,假定共有8 块可供使用,每 3 块为一组,则空
2、闲块成组链接的初始状态为:开始时, 空闲 块号是顺序排列的,但经若干次的分配和归还操作后,空闲块的链接就未必按序 排列了。用二维数组A:array 0M-1 of array 0n-1来模拟管理磁盘空间,用Ai表示第I块,第0块A0作为专用块。(3)成组链接的分组情况记录在磁盘物理块中,为了查找链接情况,必须把 它们读入主存,故当磁盘初始化后,系统先将专用块内容复制到主存中。 定义一 个数组MA存放专用块内容,即MA: =A0。申请一块磁盘空间时,查MA从中 找出空闲块号,当一组的空闲块只剩第一块时,则应把该块中指出的下一组的空 闲块数和块号复制到专用块中,然后把该块分配给申请者。当一组的空闲
3、块分配 完后则把专用块内容(下一组链接情况)复制到主存,再为申请者分配。分配算 法如下图。采用成组链接的分配算法(4)归还一块时给出归还的块号,若当前组不满规定块数时,将归还块登记 入该组;若当前组已满,则另建一新组,这时归还块作为新一组的第一块,应把 主存中登记的一组链接情况MA复制到归还块中,然后在MA重新登记一个新组 归还一块的算法如下图。采用成组链接的回收算法(5)设计分配和归还磁盘空间的程序,能显示或打印分配的磁盘空间的块号,在完成一次分配或归还后能显示或打印各空闲块组的情况(各组的空闲块数 和块号)。本实习省去了块号与物理地址之间的转换工作, 而在实际的系统中必 须进行块号与物理地
4、址的转换工作。(6)运行你所设计的程序,假定空闲块链接的初始状态如提示(2),现先分配4块,再依次归还第2块和第6块。把执行后分配到的块号依次显示或打印 出来,且显示或打印空闲块组的情况。实验报告设计者日期测试者日期功能描述模拟 UNIX 系统的空闲块成组链接法,实现磁盘存储空间的管理。算法描述或流程图1. 基本思想:首先定义磁盘分配数组并初始化,9 个一维数组分别表示 9 个空闲块,程序运行时,先将专用块 A0复制到内存中,然后进行功能选择,分配时,查MA,从中找岀空闲块号,当一组的空闲块只剩第一块时,应把该块中指岀的下一组的空闲块数和块号复制到专用块 这,然后把该块分配给申请者,当一组的空
5、闲块分配完后则把专用块内容(下一组链接情况)复制到内存,再为申请者分配。回收时,输入待回收的块号,查找该块是否已被分配,若未分配,退岀,否则,当前组不满规定块数时,将归还块登记入该组,若当前组已满,则另 建一新组,这时归还块作为新一组的第一块,应把内存中登记的一组链接情况MA 复制到归还块中,然后在 MA 这重新登记一个新组。显示分组情况。2. 程序流程:建立磁盘分配并初始化调用功能选择函数进行分配或回收操作。3. 数据结构及各子程序(1) int MA4;/*空闲块数组 */(2) int A94=3,1,2,3,3,4,5,6,0,0,0,0,0,0,0,0,3,0,7,8,0,0,0,0
6、,0,0,0,0,0,0,0,0,0,0,0,0;/*磁盘空间 */(3)int mark9;/*存放已分配的块*/int No=0;/*已分配的块数*/(4) void display():显示分组情况形参:无返回参数:无;(5) void assign():分配空闲块形参:无返回参数:无;(6) void callback():回收空闲块形参:无返回参数:无;(7) void menu():功能选择函数形参:无返回参数:无;附:源程序#includeint MA4;/* 空闲块数组 */int A94=3,1,2,3,3,4,5,6,0,0,0,0,0,0,0,0,3,0,7,8,0,0,
7、0,0,0,0,0,0,0,0,0,0,0,0,0,0; /* 磁盘空间 */int mark9;/* 存放已分配的块 */int No=0;/* 已分配的块数 */void display1() int i,j,temp,count;No=0;if(MA1!=0) i=MA0;printf(ngroup1:);for(j=1;j=i;j+) printf(%d ,MAj);mark+No=MAj;temp=MA1;count=2;while(Atemp1!=0) printf(ngroup%d:,count);i=Atemp0;for(j=1;j=i;j+) printf(%d ,Atemp
8、j);mark+No=Atempj;count+;temp=Atemp1;printf(ngroup%d:,count);i=Atemp0;for(j=2;j0) printf(%d ,Atempj);mark+No=Atempj;else i=MA0;if(i=1)printf(nThe blocks are all assigned);else printf(ngroup1:);for(j=2;j=i;j+) printf(%d ,MAj);mark+No=MAj;void display() /* 显示分组情况 */ int i,j;if(MA0!=0)display1();else i
9、=MA1;for(j=0;j1) /* 若该组不止一个空闲块 */ i=MA0;s=MAi;MA0-;printf(nnumber of the block:%d,s);else if(MA0=1) /* 只剩一个空闲块 */ if(MA1!=0)/* 还有其它空闲块组 */ s=MA1;for(i=0;i=3;i+)A0i=Asi;MA0-;printf(nnumber of the block:%d,s);else /* 没有其它空闲块组 */ printf(nThere isnt any space); return;else /* 当前组已分配完 */ for(i=0;i=3;i+)M
10、Ai=A0i;assign();display();/* 显示分组情况 */void callback() /* 回收空闲块 */ int i,j,temp;printf(ninput the No. of the block you want to callback:); scanf(%d,&j);getchar();/* 得到待回收的空闲块号 */for(temp=1;temp=No;temp+) if(marktemp=j) break;if(tempNo+1) /* 若该空闲块已在,退出 */ printf(nThe block is in the disk); return;
11、if(MA03)/*当前组不满 3 块*/ i=MA0;MAi+1=j;MA0+;else/*已有 3 块*/ for(i=0;i=3;i+)Aji=MAi;MA0=1;MA1=j;display();/*显示 */void menu() /* 功能选择函数 */ int choice;char judge;printf(ninput your choice:(1-assign,2-callback):); scanf(%d,&choice);getchar(); if(choice=1)assign();else if(choice=2) callback();elseprintf(ninvalid command!);printf(ncontinue or not?(y-Yes,n-Not):); scanf(%c,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 房地产合同管理论文
- 供应商品质协议书
- 敬老院入住协议书
- 人才服务招聘协议事项
- 辣椒订单农业合同协议
- 转租合作协议书合同
- 民诉管辖协议书
- 焊工就业协议书
- 泥巴堆放协议书
- 演员家长协议书
- 《高压输电线路巡检维护合同》
- 《中国古典文学中的咏鱼诗与生态文化》论文
- 商品混凝土管理制度
- 2025年中考数学几何模型综合训练专题16全等三角形模型之婆罗摩笈多模型解读与提分精练(教师版)
- 2025年浙江温州市公用事业发展集团有限公司招聘笔试参考题库附带答案详解
- 2025年天津市武清区国资产经营投资限公司面向社会公开选聘工作人员高频重点模拟试卷提升(共500题附带答案详解)
- 业主大会申请书
- 2025年八人合伙企业股权分配协议书
- (部编版)语文五年级上册“小古文”阅读理解训练82篇附参考答案
- 《应收款项减值专题》课件
- 农艺师常规知识培训课件
评论
0/150
提交评论