- 1、本文档共20页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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)