- 1、本文档共13页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
PAGE
PAGE 1
实验报告
专业 网络工程 班级 08102班 学号 01号 姓名 胡双双
课程名称 操作系统 学年2010-2011 学期 下
课程类别 专业必修 ■限选□任选□实践□ 实验时间 2010年12 月9 日
实验名称
实验三:内存分区与回收
实验目的和要求
全面理解内存分配的三种方法及回收,掌握解决该问题的算法思想。
实验软硬件要求
Pentium(R) Dual-Core CPU 3.2M内存
WINDOWS XP Professional
Visual C++6.0
实验内容、方法和步骤
问题描述:初始化一内存空间,要求用最先适应算法、最优适应算法及最坏适应算法实现动态分配内存,并可进行回收。
功能要求:可对内存进行分区,回收及打印,用户可选择最先适应算法、最优适应算法及最坏适应方法三种算法对内存进行分配。
实验结果:
见截图
小结
此次实验的难点是内存的回收及动态分配问题,三个分区的算法相对来说简单一点,设计者必须考虑内存回收时,上为空闲区,下为空闲区,上下都为空闲区及上下都不为空闲区四种情况。
动态分区的基本思想是先初始化一空闲内存空间为1024,然后动态对其进行分区,分区的过程中可选择是按首次适应算法、最优适应算法或者最坏适应算法进行分配,动态分区过程中,可以边分配边回收。
在设计过程中,还要注意一些细节问题,比如在分配内存时,工作名不能重复,否则可能导致打印时混淆重复的内存区,所以,本实验中,用pdname()函数来进行判定是否重名。
评定成绩: 批阅教师: 年 月 日
一、问题概述
初始化一内存空间,要求可对内存进行分区,回收及打印,用户可选择最先适应算法、最优适应算法及最坏适应方法三种算法对内存进行分配。
二、设计流程图
(1)首次适应算法(first_fit)流程图
开
开 始
比size大的空内存
结 束
Y
i没有超过终值
Y
待进入的内存进入空内存区
将剩下的内存独立为空内存块
N
N
没有找到比要分配的大的内存快,分配失败
(2)最优适应算法(best_fit)流程图
开 始
查找大于size的空闲空间
将其分区号存入id大小存入min
空闲区大小小于min
将空闲区分割,一部分分配给size,一部分为空闲区
结 束
Y
i没有超过极值
寻找比size大的空闲区
Y
Y
空闲区空间=申请空间
将空闲区直接分配给size
N
N
N
(3)最坏适应算法(worst-_fit)流程图与最佳适应算法类似
(4)内存回收流程图
开 始
开 始
判断空闲区上下内存情况
上为空
将上面的空闲区合并,并回收
下为空
将下面的空闲区合并,并回收
上下都为空
将上下的空闲区合并,并回收
上下都不为空
直接将其回收
结 束
三、数据定义
struct used_table
{
int ID;//分区号
char WorkName;//工作名
int WorkSize;//工作空间
int address;//开始地址
bool state;//状态0表示未分配 1表示已分配
}J[100];
void Init();
int search();
int pdname(char c);
void print();
void begin();
int first_fit(char c,int i);
int best_fit(char c,int i);
int worst_fit(char c,int i);
void reclaim();
int free(char c);
四、源程序
#include iostream.h
void Init();
int search();
int pdname(char c);
void print();
void begin();
int first_fit(char c,int i);
int best_fit(char c,int i);
int worst_fit(char c,int i);
void reclaim();
int free(char c);
struct used_table
{
int ID;//分区号
char WorkName;//工作名
int WorkSize;//工作空间
int address;//开始地址
bool state;//状态0表示未分配 1表示已分配
}J[100];
void Init() //主存表的初始化
{
J[0].ID=1; //分区号
J[0].address =0;
您可能关注的文档
- 某危桥改造工程施工组织设计.doc
- 某污水管网改造工程投标用施工组织设计_secret.doc
- 某县环灵峰山休闲度假区控制性详细规划.ppt
- 某县民政局救灾物资储备仓库可行性研究报告.doc
- 某县水资源保护规划.doc
- 某县污水处理一期工程北门河污水管道工程开工报告.doc
- 某项目安全管理策划书.doc
- 某项目测量放线监理细则.doc
- 某小区房地产项目可行性研究报告.doc
- 某小区观光电梯玻璃幕墙施工组织设计.doc
- 2025年全球氢能产业发展报告.pptx
- 2025年的全球核聚变产业(英).pptx
- 港口无人驾驶行业深度报告:奇点已至,蓝海启航.pptx
- 全球及中国电动缸(电动执行机构)行业运营现状及需求潜力预测报告2025-2030年.docx
- 全球及中国电力机器人行业发展格局与前景动向研究报告2025-2030年.docx
- 全球及中国生物科研试剂行业发展趋势及前景规模预测报告2025-2030年.docx
- 全球及中国机场特种车辆行业现状调查与投资方向分析报告2025-2030年.docx
- 全球及中国三氟化氮(NF3)行业发展趋势与投资前景策略分析报告2025-2030年.docx
- 中国CCS集成母排行业发展形势与前景动态研究报告2025-2030年.docx
- 全球及中国加固计算机行业发展格局与投资前景策略分析报告2025-2030年.docx
文档评论(0)