下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实验五 可变分区存储管理方式的内存分配和回收一实验目的通过编写和调试存储管理的模拟程序以加深对存储管理方案的理解,熟悉可变分区存储 管理的内存分配和回收。二实验属性设计三实验内容1确定内存空间分配表;2采用最优适应算法完成内存空间的分配和回收; 3编写主函数对所做工作进行测试。四实验背景材料实现可变分区的分配和回收,主要考虑的问题有三个:第一,设计记录内存使用情况的 数据表格,用来记录空闲区和作业占用的区域;第二,在设计的数据表格基础上设计内存分 配算法;第三,在设计的数据表格基础上设计内存回收算法。首先,考虑第一个问题,设计记录内存使用情况的数据表格,用来记录空间区和作业占 用的区域。由于可
2、变分区的大小是由作业需求量决定的,故分区的长度是预先不固定的,且分区的 个数也随内存分配和回收变动。总之,所有分区情况随时可能发生变化,数据表格的设计必 须和这个特点相适应。由于分区长度不同,因此设计的表格应该包括分区在内存中的起始地 址和长度。由于分配时空闲区有时会变成两个分区:空闲区和已分分区,回收内存分区时, 可能会合并空闲分区,这样如果整个内存采用一张表格记录己分分区和空闲区,就会使表格 操作繁琐。分配内存时查找空闲区进行分配,然后填写己分配区表,主要操作在空闲区;某 个作业执行完后,将该分区变成空闲区,并将其与相邻的空闲区合并,主要操作也在空闲区。 由此可见,内存的分配和回收主要是对
3、空闲区的操作。这样为了便于对内存空间的分配和回 收,就建立两张分区表记录内存使用情况,一张表格记录作业占用分区的“己分分区表”; 一张是记录空闲区的“空闲区表”。这两张表的实现方法一般有两种:一种是链表形式,一 种是顺序表形式。在实验中,采用顺序表形式,用数组模拟。由于顺序表的长度必须提前固 定,所以无论是“已分分区表”还是“空闲区表”都必须事先确定长度。它们的长度必须是 系统可能的最大项数。“已分分区表”的结构定义#define n 10 /假定系统允许的最大作业数量为 nstruct float address; /已分分区起始地址float length; /已分分区长度、单位为字节in
4、t flag; /已分分区表登记栏标志,“0”表示空栏目,实验中只支持一个字符的作业 名used_tablen; /已分分区表“空闲区表”的结构定义#define m 10 /假定系统允许的空闲区最大为 mstruct float address; /空闲区起始地址float length; /空闲区长度、单位为字节int flag; /空闲区表登记栏标志,“0”表示空栏目,“1”表示未分配free_tablen; /空闲区表 第二,在设计的数据表格基础上设计内存分配。装入一个作业时,从空闲区表中查找满足作业长度的未分配区,如大于作业,空闲区划 分成两个分区,一个给作业,一个成为小空闲分区。实
5、验中内存分配的算法采用“最优适应”算法,即选择一个能满足要求的最小空闲分区 可变分区方式的内存分配流程如图。第i栏标志为、 未分配”且满足 、作业需求xk?/是否找到满足需 、求的分区k? 主存分配失败第i栏标志为、 未分配”且满足 、作业需求xk?/是否找到满足需 、求的分区k? 主存分配失败/第k栏、长度-作业需求 Wminsize?结束/第i栏空闲区为、第一个满足需求的或第i栏空闲区长度、小于第k栏空闲区z长度? /分配整个分区:第k栏状态为“空” ad=鎗k档趙始地址 xk=宙k栏长应切割空闲区:第k栏长度减去xk ad=第k栏起始地址- 第k栏长度开始作业J申请xk大小的内存空间i是
6、空闲区表中 一栏(i=m) ?空闲区表状 态未分配空闲区表第空闲区表状 态未分配空闲区表第k 栏状态为空?i=0i=i+:栏是己分配区表旷W栏且笫i栏状态不为空2填写已分分区表: 第j栏起始地址=ad 鎗j栏长度=xk 第j栏状态=作业名J空闲区表第k栏长度加xk已分分区表长度不足,分配失败第三,在设计的数据表格基础上设计内存回收问题内存回收时若相邻有空闲分区则合 并空闲区,修改空闲区表。.可变分区方式的内存回收流程如图。开始NYi=0NNNNYt=0NYNN结束未找到作业 回收失败第i栏为回收 分区的上邻?回收分 区有上邻?和上邻合并: 第k栏长度= 第k栏长度+L回收分 区有下邻3二为已分配 区表中一栏? t栏、 是空闲表中区有下邻?第i栏为回收 分区的下邻j第i栏状态为 二未分配”7咗栏,已分分区表第s栏4T 态为作业J (s=n) ?/第i栏不是空闲、Y 区表中一栏或回收分区一 、上下邻空闲区均/才 找到?S=已分分区表第s栏起始地址 L=已分分区表第s栏长度 已分分区表第s栏状态为空已分分区表第Ns栏状态为J: 空闲区表长度不 足,回收失败归还分区填入空闲区 表.第t栏起始地址=S第t栏长度=L第t栏状态=未分配和上下邻三项合并: 第k栏长度=第丘栏 长度+第j栏长度+L 第j栏状走=空和下邻合并:第j栏长度=第)栏
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年辽宁省新民市高二生物下册期末考试模拟卷附答案(研优卷)
- 2025年浙江省东阳市高二生物下册期末考试模拟卷附完整答案【全优】
- 2026年福建省长乐市高二生物下册期末考试测试卷附参考答案(突破训练)
- 2026年湖南省武冈市高二生物下册期末考试模拟卷及完整答案【必刷】
- 2026年山东省蓬莱市高二生物下册期末考试考试卷附答案(黄金题型)
- 2026年山东省安丘市高二生物下册期末考试测试卷含答案【满分必刷】
- 2026年广东省普宁市高二生物下册期末考试模拟卷附完整答案【夺冠】
- 企业技术改造方案
- 2026年福建省建瓯市高二生物下册期末考试考试卷及答案(历年真题)
- 企业环境管理提升方案
- 2026年病案编码考试真题及答案
- 生物接触氧化池运行管理规程培训课件
- 建筑施工扣件式钢管脚手架安全技术规范JGJ-130-2026
- 2026年上半年数据库系统工程师考试基础知识真题(专业解析+参考答案)
- 血浆置换操作规程及评分标准
- 2026中国集装箱式数据中心市场需求与部署模式报告
- 2025年陕西榆林市初二学业水平地理生物会考真题试卷(含答案)
- 厦门大学《数字贸易学》2025-2026学年期末试卷
- 锂电池储能电站调试方案
- 新版国家建筑工程施工质量验收规范目录(2026年更新)
- 部编版道德与法治三年级下册第四课《致敬劳动者》第二课时 课件
评论
0/150
提交评论