资源描述:
《实验报告三磁盘存储空间的分配和回收》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、《操作系统原理》实验报告学号姓名专业、班实验地点指导教师吋间2010.11.10实验序号:3实验项冃名称:磁盘存储空间的分配和回收一、实验目的磁盘存储空间的分配有两种方式,一种是分配连续的存储空间,另一种是可以分配不连续的存储空间。怎样有效地管理磁盘存储空间是操作系统应解决的一个重要问题,通过本实习使学生掌握磁盘存储空间的分配和回收算法。二、实验设备(环境)及要求微机、C++三、实验题目用位示图管理磁盘存储空间四、程序中使用的数据结构及符号说明程序中定义了3个函数:allocate(),参数为8*8二维数组,显示位示图reclaim(),参数为8*8回收空间I
2、nitbitmapO渗数为8*8分配存储空间五、源程序^include^includevoidInitbitmap(intmap[8][8]){intcylinder,track,sector;charchoice二'Y';printff初始化位视图…");while(choice"y'
3、
4、choice*Y')printfC柱面号:");scanf("%d",&cylinder);printf(z/磁道号:");scanf("%d",&track);printff物理记录号:");scanf("%d",§or
5、);map[cylinder][4*track+sector]=l;printf("contiune?");getchar();scanf("%c",&choice);}}voidallocate(intmap[8][8]){inti,j;intflag=0;intcylinder,track,sector;for(i=0;i<8;i卄){for(j=0;j<8;j++)if(map[i][j]=0){map[i][j]=l;flag=l;break;}if(flag==l)break;}if(flag==l){cylinder=i;track=j/4;sec
6、tor=j%4;printfC分配到的柱面号、磁道号、物理记录数");printf("%dt%dt%d",cylinder,track,sector);}elseprintf(z,空间不足,分配失败!");}voidreclaim(intmap[8][8]){intcylinder,track,sector;printfC柱面号:");scanf("%d",&cylinder);printfC磁道号:");scanf("%d",&track);printfC物理记录号:");scanf("%d",§or);if(map[cylinder][4*tr
7、ack+sector]==0){printf(-此块为未分配块!回收出错!");getchar();}else{map[cylinder][4*track+sector]=0;printf("回收块对应的字节号:%4dt位数:%4d",cylinder,4*track+sector);}}voidmain()intbitmap[8][8];inti,j;intchoice;for(i=0;i<8;i卄)for(j=0;j<8;j++)bitmap[i][j]=0;Initbitmap(bitmap);wh订e(l){printf("请输入选择:");
8、printf("l--分配,2回收,3--显示位示图,0--退出");scanf("%d",&choice);switch(choice){case1:allocate(bitmap);break;case2:reclaim(bitmap);break;case3:for(i=0;i<8;i++){for(j=0;j<8;j++)printf("%8d",bitmap[i][j]);printf("");}break;case0:exit(0);default:printf(,z错误选择!“);break;}六、运行调试结果初始界面:r・^C:Use
9、rsAdministratorDesktop®作浆统实验代码615455Disk减视图…输入柱面号,磁道号,物理记录号:•*C:UsersAdministratorDe5ktop®作系统实验代码615455Di5lcMemoryDkkMEmoryD已b...I袒始化位视图・・・柱南号询磁道号二0物理迫录号询contiune?请输入选择沁--分配,2---回收,3--显示位示图,0--退岀选3,显示位示图■wC:UsersAdministrato叭Desktop^作票统实釜代码615455DiskMemoryDislcMemory
10、Deb…L^_Lrz_请输入选择次一