实验五: 磁盘管理 一、实验目的 怎样有效地管理磁盘存储空间是操作系统应解决的一个重要问题,通过本实习使学生掌握磁盘存储空间的分配和回收算法
二、实验内容 模拟磁盘空闲空间的表示方法,以及模拟实现磁盘空间的分配和回收
本实习模拟用位示图管理磁盘存储空间的管理方法
设计申请一块磁盘空间和归还一块磁盘空间的程序
要求能显示或打印程序运行前和运行后的位示图;分配时把分配到的磁盘空间的物理地址显示或打印出来,归还时把归还块对应于位示图的字节号和位数显示或打印出来
假定已有如表 1 的磁盘空间被占用了,现在要申请五块磁盘空间,运行分配程序,显示或打印运行的结果
然后再归还如表 2的空间,运行回收程序,显示或打印运行结果
表 1 柱面号 磁道号 物理记录号 0 0 1 0 0 2 0 1 0 0 1 3 1 0 0 1 1 2 表 2 柱面号 磁道号 物理记录号 0 0 2 0 1 0 1 0 1 三、实验步骤 本实验在Visual C++ 6
0 编程平台下进行编程实现,详见实验内容
1 . 算法设计流程,及源代码; 算法思想,及算法流程: 磁盘存储空间的分配有两种方式,一种是分配连续的存储空间,另一种是可以分配不连续的存储空间
为了表示哪些磁盘空间已被占用,哪些磁盘空间是空闲的,可用位示图来指出
位示图由若干字节构成,每一位与磁盘上的一块对应,“1”状态表示相应块已占用,“0”状态表示该块为空闲
当申请一块磁盘空间时,由分配程序查位示图,找出一个为“0”的位,计算出这一位对应块的磁盘物理地址,且把该位置成占用状态“1”
假设现在有一个盘组共80 个柱面,每个柱面有两个磁道,每个磁道分成4 个物理记录
那么,当在位示图中找到某一字节的某一位为“0”时,这个空闲块对应的磁盘物理地址为: 柱面号=字节号 磁道号=[位数/4] 物理记录号={位数/4} 当归还一块磁盘空间时,