- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
2021年动态分区分配算法实验报告
2021年动态分区分配算法实验报告
PAGE / NUMPAGES
2021年动态分区分配算法实验报告
操作系统试验汇报
试验二: 动态分区分配算法 .
学 生:
学 号:
学 院:
系 别:
专 业:
试验时间:
汇报时间:
一、 试验内容
编写一个内存动态分区分配模拟程序, 模拟内存分配和回收完整过程。
一个好计算机系统不仅要有一个足够容量、 存取速度高、 稳定可靠主存放器, 而且要能合理地分配和使用这些存放空间。当用户提出申请存放器空间时, 存放管理必需依据申请者要求, 按一定策略分析主存空间使用情况, 找出足够空闲区域分配给申请者。看成业撤离或主动归还主存资源时, 则存放管理要收回作业占用主存空间或归还部分主存空间。主存分配和回收实现与主存放器管理方法相关, 经过本试验帮助学生了解在可变分区管理方法下应怎样实现主存空间分配和回收。
三、 试验原理
模拟在可变分区管理方法下采取最先适应算法实现主存分配和回收。
(1)可变分区方法是按作业需要主存空间大小来分割分区。当要装入一个作业时, 依据作业需要主存量查看是否有足够空闲空间, 若有, 则按需要量分割一个分区分配给该作业; 若无, 则作业不能装入。伴随作业装入、 撤离, 主存空间被分成很多个分区, 有分区被作业占用, 而有分区是空闲。比如:
05k
0
5k
10k
14k
26k
32k
512k
作业1
作业3
空闲区
作业2
空闲区
为了说明哪些区是空闲, 能够用来装入新作业, 必需要有一张空闲区说明表, 格式以下:
起 址
长 度
状 态
第一栏
14 K
12 K
未 分 配
第二栏
32 K
96 K
未 分 配
M
M
M
M
其中, 起址——指出一个空闲区主存起始地址。
长度——指出从起始地址开始一个连续空闲长度。
状态——有两种状态, 一个是“未分配”状态, 指出对应由起址指出某个长度区域是空闲区。
(2) 当有一个新作业要求装入主存时, 必需查空闲区说明表, 从中找出一个足够大空闲区。有时找到空闲区可能大于作业需要量, 这时应把原来空闲区变成两部分: 一部分分给作业占用; 另一部分又成为一个较小空闲区。为了尽可能降低因为分割造成空闲区, 而尽可能保留高地址部分有较大连续空闲区域, 以利于大型作业装入。为此, 在空闲区说明表中, 把每个空闲区按其地址次序登记, 即每个后继空闲区其起始地址总是比前者大。
(3) 采取最先适应算法(次序分配算法)分配主存空间。
根据作业需要量, 查空闲区说明表, 次序查看登记栏, 找到第一个能满足要求空闲区。当空闲区大于需要量时, 一部分用来装入作业, 另一部分仍为空闲区登记在空闲区说明表中。
因为本试验是模拟主存分配, 所以把主存区分配给作业后并不实际开启装入程序装入作业, 而用输出“分配情况”来替换。
(4) 当一个作业实施结束撤离时, 作业所占区域应该归还, 归还区域假如与其它空闲区相邻, 则应合成一个较大空闲区, 登记在空闲区说明表中。
(5) 请按最先适应算法设计主存分配和回收程序。假设初始时主存中没有作业, 现按下面序列进行内存申请与释放:
作业1申请300K, 作业2申请100K, 作业1释放300K, 作业3申请150K,
作业4申请30K, 作业5申请40K, 作业6申请60K, 作业4释放30K。
请你为它们进行主存分配和回收, 把空闲区说明表初值以及每次分配或回收后改变显示出来或打印出来。
四、 试验汇报
(1) 画出最先适应分配算法步骤图、 归还主存时回收算法步骤图。
最先适应分配算法步骤图:
输入作业对象
输入作业对象
改变
改变空闲区块队列+改变作业队列
次序遍历
次序遍历空闲区块队列
输出结果
输出结果
是否有
是否有足够空间空闲区块
N
Y
归还主存时回收算法步骤图:
输入作业对象
输入作业对象
改变空闲区块队列+
改变空闲区块队列+改变作业队列
是否存在该作业
是否存在该作业?
N
输出结果
输出结果
Y
(2) 程序中使用数据结构及符号说明。
答: 本程序用c++语言编写, 其中用到了class{}类、 指针, 利用指针将class Table{}(空闲表类)和class Pro{}(作业类)用链式存放方法进行插入、 删除、 新建、 排序等工作。
(3) 打印一份源程序并附上注释。
#includeiostream.h
#includestring.h
cla
文档评论(0)