(完整word版)模拟UNIX系统成组链接法实现磁盘存储空间的管理

上传人:tu****8 文档编号:57936601 上传时间:2022-02-25 格式:DOC 页数:9 大小:60KB
收藏 版权申诉 举报 下载
(完整word版)模拟UNIX系统成组链接法实现磁盘存储空间的管理_第1页
第1页 / 共9页
(完整word版)模拟UNIX系统成组链接法实现磁盘存储空间的管理_第2页
第2页 / 共9页
(完整word版)模拟UNIX系统成组链接法实现磁盘存储空间的管理_第3页
第3页 / 共9页
资源描述:

《(完整word版)模拟UNIX系统成组链接法实现磁盘存储空间的管理》由会员分享,可在线阅读,更多相关《(完整word版)模拟UNIX系统成组链接法实现磁盘存储空间的管理(9页珍藏版)》请在装配图网上搜索。

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;if(M

11、A03)/*当前组不满 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,&judge);getchar();if(judge=y) menu();else printf(nNow the graph is:); display();printf(npress any key to quit); getch();main() int i;for(i=0;i=3;i+)MAi=A0i;display();menu();

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!