欢迎来到天天文库
浏览记录
ID:41969543
大小:92.00 KB
页数:6页
时间:2019-09-05
《位示图实验报告》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、石油大学操作系统位示图磁盘管理一、实验目的怎样有效地管理磁盘存储空间是操作系统应解决的一个重要问题,通过本实习使学生掌握磁盘存储空间的分配和回收算法。二、实验内容模拟磁盘空闲空间的表示方法,以及模拟实现磁盘空间的分配和回收。木实习模拟用位示图管理磁盘存储空间的管理方法。设计中请一块磁盘空间和归述一块磁盘空间的程序。要求能显示或打印程序运行前和运行后的位示图;分配时把分配到的磁盘空间的物理地址显示或打印出来,归还时把归还块对应于位示图的字节号和位数显示或打印出来。假定己有如表1的磁盘空间被占用了,现在要中请五块磁盘空间,
2、运行分配程序,显示或打印运行的结果。然后再归还如表2的空间,运行回收程序,显示或打印运行结果。表1柱面号磁道号物理记录号001002010013100112表2柱面号磁道号物理记录号002010101三、实验步骤本实验在VisualC++6.0编程平台下进行编程实现,详见实验内容。1.算法设计流程,及源代码;算法思想,及算法流程:磁盘存储空间的分配有两种方式,一种是分配连续的存储空间,另一种是可以分配不连续的存储空间。为了表示哪些磁盘空间已被占用,哪些磁盘空间是空闲的,可用位示图来指岀。位示图由若干字节构成,每一位与磁
3、盘上的一块对应,“1”状态表示相应块已占用,“0”状态表示该块为空闲。当申请一块磁盘空间时,由分配程序查位示图,找岀一个为“0”的位,计算出这一位对应块的磁盘物理地址,且把该位置成占用状态“1”。假设现在有一个盘组共80个柱面,每个柱面有两个磁道,每个磁道分成4个物理记录。那么,当在位示图中找到某一字节的某一位为“0”吋,这个空闲块对应的磁盘物理地址为:柱面号二字节号磁道号二[位数/4]物理记录号二{位数/4}当归还一块磁盘空间时,由回收程序根据归述的磁盘物理地址计算出归述块在位示图屮的对应位,把该位置成“0”。归还块
4、在位示图屮的位置计算如下:字节号二柱面号位数二磁道号X4+物理记录号源程序:#include#include#include#defineA10#defineB2#defineC4intkoko[A][B][C];intM,N;inti,j,k;charch;voidi_koko(){for(i=0;ivA;i++){for(j=0;jvB;j++){for(k=0;k5、cout«n请输入字节号:cin»M;COUt«H请输入位数:”cin»N;i=M;j=N/4;k=N%4;koko[i][j][k]=0;cout«n是否继续输入(Y/N):,,«,t,;cin»ch;}while(ch=='Y'6、7、ch==,y,);}voidRecycle(){do{coutvv”请输入柱而号cin»i;cout«H请输入磁盘号cin»j;cout«u请输入逻辑记录号cin»k;koko[i]8、j][k]=l;cout«H是否继续输入(Y/N):n«,f;cin»ch;while(ch=='Y9、'10、11、ch==y);}voidDisplayO{inti,j,k;intflag=0;cout«"**位示图**"«endl;cout«"字位"«setw(3);for(i=0;i12、out«endl;cout«"**磁盘分配图**n«endl;cout«n柱面号磁道号n«,t,«"物理记录号n«endl;for(i=0;i13、”4.退出*M«endl;cout«H**********************************”vVendl•cout«n选择所要执行的功能:intx;cin»x;cout«endl;switch(x){casel:Dispense();break;case2:Recycle();break;case3:Display
5、cout«n请输入字节号:cin»M;COUt«H请输入位数:”cin»N;i=M;j=N/4;k=N%4;koko[i][j][k]=0;cout«n是否继续输入(Y/N):,,«,t,;cin»ch;}while(ch=='Y'
6、
7、ch==,y,);}voidRecycle(){do{coutvv”请输入柱而号cin»i;cout«H请输入磁盘号cin»j;cout«u请输入逻辑记录号cin»k;koko[i]
8、j][k]=l;cout«H是否继续输入(Y/N):n«,f;cin»ch;while(ch=='Y
9、'
10、
11、ch==y);}voidDisplayO{inti,j,k;intflag=0;cout«"**位示图**"«endl;cout«"字位"«setw(3);for(i=0;i
12、out«endl;cout«"**磁盘分配图**n«endl;cout«n柱面号磁道号n«,t,«"物理记录号n«endl;for(i=0;i13、”4.退出*M«endl;cout«H**********************************”vVendl•cout«n选择所要执行的功能:intx;cin»x;cout«endl;switch(x){casel:Dispense();break;case2:Recycle();break;case3:Display
13、”4.退出*M«endl;cout«H**********************************”vVendl•cout«n选择所要执行的功能:intx;cin»x;cout«endl;switch(x){casel:Dispense();break;case2:Recycle();break;case3:Display
此文档下载收益归作者所有