动态不等长存储资源分配算法及回收内存.doc

动态不等长存储资源分配算法及回收内存.doc

  1. 1、本文档共20页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
动态不等长存储资源分配算法及回收内存

课 程 设 计 课程设计名称: 动态不等长存储资源分配算法及回收内存 专 业 班 级 : 计科0903 学 生 姓 名 : 王聪 ____ 学 号 : 200948140322 指 导 教 师 : 于俊伟 ___ 课程设计时间: 2011/06/14 计算机科学 专业课程设计任务书 学生姓名 王聪 专业班级 计科0903 学号 200948140322 题 目 动态不等长存储资源分配算法及回收内存 课题性质 其它 课题来源 自拟课题 指导教师 于俊伟 同组姓名 无 主要内容 (1)分析Unix最先适应(first fit,ff)存储分配算法。即map数据结构、存储分配函数ma lloc()和存储释放函数mfree(),找出与算法有关的成分。 (2)修改上述算法有关成分,使其分别体现BF(best fit,最佳适应)分配原则WF(worst fit,最坏适应)分配原则。 (3) 四种回收内存情况:1,无前空闲区,无后空闲区2,有前空闲区,无后空闲区,3,无前空闲区,有后空闲区4有前空闲区,有后空闲区 任务要求 理解动态异常存储分区资源管理,掌握所需数据结构和管理程序,了解各种存储分配算法的优缺点。 参考文献 任满杰等《操作系统原理实用教程》 电子工业出版社 2006 汤子瀛 《计算机操作系统》(修订版)西安电子科技大学出版社 2001 张尧学 史美林《计算机操作系统教程》实验指导 清华大学出版社 2000 罗宇等 《操作系统课程设计》机械工业出版社 2005 审查意见 指导教师签字: 教研室主任签字: 年 月 日 1 需求分析: 理解动态异常存储分区资源管理,掌握所需数据结构和管理程序,了解各种存储分配算法的优缺点。主要是动态分区的首次适应算法,最佳适应算法,最坏适应算法,以及回收算法。 2 概要设计: 本程序把所需算法利用模版集合在一个类中: class Malloc_and_Free, 有一个数据结构, struct Mem_Link { int beginmem;//初始地址 int length;//空闲区长度 Mem_Link *next;//下一个空闲区 };为了适应算法的把空闲区集合到一个分区链中 还有一个空闲分区表,也包括分配情况,利用数组 int M_mem[100];记录分配和回收内存情况,数值数值为0代表未分配,数值为1代表已分配,另付:从M_mem[1]开始处理。 用*Firsthead连接首次适应算法的空闲区,*Besthead连接最佳适应算法的空闲区,*Worsthead连接最坏适应算法的空闲区 主要有四大板块: 1.First_Fit()函数,把空闲区整合到链表中; 2. void First_Fit(int job), void Best_Fit(int job), void Worst_Fit(int job),结合链表对空闲分区表 (M_mem[100];)进行分配; 3. void Link_Best(), 首先调用First_Fit(),然后*Firsthead赋值于*Besthead,然后对*Besthead进行从小到大排序;void Link_Worst() ,首先调用First_Fit(),然后*Firsthead赋值于*Worsthead,然后对*Worsthead进行从大到小排序; 4. void putout();直观的查看分配内存情况和回收内存情况。 3 运行环境: 电脑型号 LENOVO 10018 操作系统 Microsoft Windows 7 旗舰版 (32位) CPU AMD Athlon(tm) II X2 250u Processor(1600 MHz) 主板 LENOVO LENOVO 内存 2.00 GB 4 开发工具和编程语言: 开发工具:Microsoft Visual C++6.0 编程语言:C/C++ 5 详细设计 #includeiostream using namespace std; struct Mem_Link { int beginmem; int length; Mem_Link *next; }; class Malloc_and_Free { public: //------------初始值设置一些数值,方便查看分配效果,未分配为0,分配后

文档评论(0)

yurixiang1314 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档