位示图管理磁盘存储空间用位示图管理磁盘存储空间用位示图管理磁盘存储空间用位示图管理磁盘存储空间

位示图管理磁盘存储空间用位示图管理磁盘存储空间用位示图管理磁盘存储空间用位示图管理磁盘存储空间

ID:38707673

大小:95.50 KB

页数:6页

时间:2019-06-18

位示图管理磁盘存储空间用位示图管理磁盘存储空间用位示图管理磁盘存储空间用位示图管理磁盘存储空间_第1页
位示图管理磁盘存储空间用位示图管理磁盘存储空间用位示图管理磁盘存储空间用位示图管理磁盘存储空间_第2页
位示图管理磁盘存储空间用位示图管理磁盘存储空间用位示图管理磁盘存储空间用位示图管理磁盘存储空间_第3页
位示图管理磁盘存储空间用位示图管理磁盘存储空间用位示图管理磁盘存储空间用位示图管理磁盘存储空间_第4页
位示图管理磁盘存储空间用位示图管理磁盘存储空间用位示图管理磁盘存储空间用位示图管理磁盘存储空间_第5页
资源描述:

《位示图管理磁盘存储空间用位示图管理磁盘存储空间用位示图管理磁盘存储空间用位示图管理磁盘存储空间》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、[键入文字]用位示图管理磁盘存储空间一、实习内容模拟磁盘空闲空间的表示方法,以及模拟实现磁盘空间的分配和回收。二、实习目的磁盘初始化时把磁盘存储空间分成许多块(扇区),这些空间可以被多个用户共享。用户作业在执行期间常常要在磁盘上建立文件或把已经建立在磁盘上的文件删去,这就涉及到磁盘存储空间的分配和回收。一个文件存放到磁盘上,可以组织成顺序文件(连续文件)、链接文件(串联文件)、索引文件等,因此,磁盘存储空间的分配有两种方式,一种是分配连续的存储空间,另一种是可以分配不连续的存储空间。怎样有效地管理磁盘存储空间是操作系统应解决的一个重要问题,通过本实习使学生掌握磁盘存储空间的分配和回收算法。

2、三、实验分析连续的磁盘存储空间的分配和回收。四、算法及说明(1)为了提高磁盘存储空间的利用率,可在磁盘上组织成链接文件、索引文件,这类文件可以把逻辑记录存放在不连续的存储空间。为了表示哪些磁盘空间已被占用,哪些磁盘空间是空闲的,可用位示图来指出。位示图由若干字节构成,每一位与磁盘上的一块对应,“1”状态表示相应块已占用,“0”状态表示该块为空闲。(2)申请一块磁盘空间时,由分配程序查位示图,找出一个为“0”的位,计算出这一位对应块的磁盘物理地址,且把该位置成占用状态“1”。假设现在有一个盘组共8个柱面,每个柱面有2个磁道(盘面),每个磁道分成4个物理记录。那么,当在位示图中找到某一字节的某

3、一位为“0”时,这个空闲块对应的磁盘物理地址为:柱面号=字节号磁道号=位数/4物理记录号=位数%4(3)归还一块磁盘空间时,由回收程序根据归还的磁盘物理地址计算出归还块在位示图中的对应位,把该位置成“0”。按照(2)中假设的盘组,归还块在位示图中的位置计算如下:字节号=柱面号位数=磁道号´4+物理记录号五、用到的数据结构及模块说明intarea[8][8];表示位示图,每一位与磁盘上的一块对应,“1”状态表示相应块已占用,“0”状态表示该块为空闲。intapply(){inti,j,need,num=0;printf("请输入需要分配的硬盘大小(以块为单位,不超过64块):");sca

4、nf("%d",&need);for(i=0;i<8;i++){for(j=0;j<8;j++)6[键入文字]if((area[i][j])==0)num++;}if(need

5、,硬盘空间不够!");}apply()模块的功能为分配外存。首先查找位示图,看是否磁盘空间够。如果够,则将空闲的块分配,分配的磁盘物理地址如下转化:柱面号=字节号,磁道号=位数/4,物理记录号=位数%4。voidreclaim(){inti,j,cylinder,track,record;printf("请输入需要回收的物理地址");printf("柱面号(0~7):");scanf("%d",&cylinder);printf("磁道号(0~1):");scanf("%d",&track);printf("物理记录号(0~3):");scanf("%d",&record);i=c

6、ylinder;j=track*4+record;area[i][j]=0;6[键入文字]printf("回收成功!");printf("回收的是第%d字节,第%d位",i,j);}reclaim()模块的功能是回收外存。归还块在位示图中的位置如下转化:字节号=柱面号,位数=磁道号´4+物理记录号。voidview(){printf("磁盘存储位示图");inti,j;for(i=0;i<8;i++){for(j=0;j<8;j++){printf("t%d",area[i][j]);}printf("");}printf("");}view()模块的功能是查

7、看磁盘存储位示图。主函数为:main(){inti,j,choice;for(i=0;i<8;i++){for(j=0;j<8;j++){area[i][j]=0;}}while(1){printf("^^^^请选择功能项^^^^");printf("1--分配外存");printf("2--回收外存");printf("3--查看位示图");printf("4--退出");printf("选

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。