1 / 30
文档名称:

磁盘存储空间模拟管理系统 位示图方向.docx

格式:docx   大小:142KB   页数:30页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

磁盘存储空间模拟管理系统 位示图方向.docx

上传人:pppccc8 2022/7/8 文件大小:142 KB

下载得到文件列表

磁盘存储空间模拟管理系统 位示图方向.docx

文档介绍

文档介绍:《操作系统原理》课程设计任务书
题目:磁盘空间管理模拟实验
学生姓名: 学号:13740114 班级:13级软件工程(1)班
题目类型:软件工程(R) 指导教师:
一、 设计目的
学生通过该题目的设计过程,掌握磁盘存储管理的原理、3设计内容
模拟磁盘空闲空间的表示方法,以及模拟实现磁盘空间的分配和回收。
本实****模拟用位示图管理磁盘存储空间的管理方法。设计申请一块磁盘空间 和归还一块磁盘空间的程序。要求能显示或打印程序运行前和运行后的位示 图;分配时把分配到的磁盘空间的物理地址显示或打印出来,归还时把归还 块对应于位示图的字节号和位数显示或打印出来。
假定已有如表1的磁盘空间被占用了,现在要申请五块磁盘空间,运行 分配程序,显示或打印运行的结果。然后再归还如表2的空间,运行回收程 序,显示或打印运行结果。
柱面号
磁道号
扇区号
0
0
1
0
0
2
0
1
0
0
1
3
1
0
0
1
1
2
表1-1
柱面号
磁道号
扇区号
0
0
2
0
1
0
1
0
1
表1-2

在Windows XP, Windows 7等操作系统中对磁盘存储空间的管理是位示图法, 位示图法:一个简单的管理方法,是用一张位示图(简称位图)来指示磁盘存储 空间的使用情况。一个盘组的分块确定后,根据分配的总块数决定位图由多少个 字组成,建筑位图中的每一位与盘组分块1-1对应,“1”状态表示相应块已占用,“0” 状态表示该块空闲。在分配时先查看要分配的位置的数值,若其值为0,则分配, 否则不予分配,输出此空间已被占用;在释放时分别找到柱面号,磁道号和扇区 号所对应的在位示图中的位置,进行释放,若其值为0,则表示为分配,若其值为 1,则变为0,回收完成。

概要设计

用位示图表示的磁盘空间可以很形象的反映出磁盘中空间的利用情况, 不足之处在于每次分配与回收只可以对单一的分块进行操作,不能同时进行 几个块的分配与回收,要进行多个块的分配时,只能单独分配,且块之间没 有相互链接,对于大的空间分配只能在连续空间进行。采用简单的位示图法 管理磁盘存储空间,本系统总共调用了 4个函数,分别是:
void out()/*输出位示图函数*/
形参:无
返回参数:无;
void callback。/*回收函数*/
形参:无
返回参数:无;
void assign()/*分配函数*/
形参:无
返回参数:无;
void menu():功能选择函数
形参:无
返回参数:无;
具体情况如下图所示:
图2-1函数调用关系图
位示图是一张可以反映磁盘空间是否被占有的模拟图,用一个二维数组 表示磁盘的空间,数组内每一个元素表示磁盘内相应的分块,数组元素为“1” 表示该块已被占,“0”表示该块为空。数组元素位置与磁盘分块一一对应,即 可描述出磁盘空间的利用情况。
详细设计
:
磁盘存储空间的分配有两种方式,一种是分配连续的存储空间,另一种 是可以分配不连续的存储空间。为了表示哪些磁盘空间已被占用,哪些磁盘 空间是空闲的,可用位示图来指出。位示图由若干字节构成,每一位与磁盘 上的一块对应,“1”状态表示相应块已占用,“0”状态表示该块为空闲。
当申请一块磁盘空间时,由分配程序查位示图,找出一个为“0”的位,计 算出这一位对应块的磁盘物理地址,且把该位置成占用状态“1”。假设现在有 一个盘组共80个柱面,每个柱面有两个磁道,每个磁道分成4个物理记录。 那么,当在位示图中找到某一字节的某一位为“0”时,这个空闲块对应的磁盘 物理地址为:
柱面号=字节号
磁道号=[位数/4]
物理记录号={位数/4}
当归还一块磁盘空间时,由回收程序根据归还的磁盘物理地址计算出归 还块在位示图中的对应位,把该位置成“0”。归还块在位示图中的位置计算如 下:
字节号=柱面号
位数=磁道号x4 +物理记录号

数据结构如下:
unsigned int size[5]=( 1,1,1,1,1) ;/*保存位示图 */
算法流程图如下:
N+l=l
图2-2分配磁盘空间程序流程图
回收空间流程图如下:
开始
图2-3回收磁盘空间程序流程图

#include<stdio. h>
unsigned int size[5]=( 1,1,1,1,1) ;/*保存位示图 */
vo