- 1、本文档共24页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验4主存空间分配与回收
实验四 主存空间的分配和回收
目的和要求
实验目的
用高级语言完成一个主存空间的分配和回收程序,以加深对动态分区分配方式及其算法的理解。
实验要求
采用连续分配方式之动态分区分配存储管理,使用首次适应算法、最佳适应算法2种算法完成设计。
(1)**设计一个作业申请队列以及作业完成后的释放顺序,实现主存的分配和回收。采用分区说明表进行。
(2)或在程序运行过程,由用户指定申请与释放。
(3)设计一个空闲区说明表,以保存某时刻主存空间占用情况。把空闲区说明表的变化情况以及各作业的申请、释放情况显示。
[提示]:
(1)? 动态分区(可变分区方式)是按作业需要的主存空间大小来分割分区的。当要装入一个作业时,根据作业需要的主存容量查看是否有足够的空闲空间,若有,则按需分配,否则,作业无法装入。假定内存大小为256KB,空闲区说明表格式为:
·起始地址——指出空闲区的起始地址;
·长度——一个连续空闲区的长度;
·状态——有两种状态,一种是“已分配”状态;另一种是“空表目”状态,表示该表项目前没有使用。
(2)? 采用首次适应算法分配回收内存空间。运行时,输入一系列分配请求和回收请求。
要求能接受来自键盘的空间申请及释放请求,能显示分区分配及回收后的内存布局情况。
2、源程序代码
#include stdio.h
#include stdlib.h
#include conio.h
#include iostream.h
#define getjcb(type) (type*)malloc(sizeof(type))
#define getsub(type) (type*)malloc(sizeof(type))
#define NULL 0
int num,num2; //要调度的作业数和要回收的区域数
int m=0; //已分配作业数
int flag; //分配成功标志
int isup,isdown; //回收区域存在上邻和下邻的标志
int is=0;
struct jcb{
char name[10];
char state;
int ntime; //所需时间
int size; //所需空间大小
int addr; //所分配分区的首地址
struct jcb *link;
} *ready =NULL, *p,*q,*as=NULL;
//作业队列ready,已分配作业队列as
typedef struct jcb JCB;
struct subarea{ //分区块
char name[10];
int addr; //分区首地址
int size; //分区大小
char state;
struct subarea *link;
} *sub=NULL,*r,*s,*cur;
//空闲分区队列sub,当前分区指针cur
typedef struct subarea SUB;
void sort_sub() /*对空闲分区按从小到大排序*/
{ SUB *first,*second;
int insert=0;
if((sub==NULL)||((s-size)(sub-size))) /*插在队列之首*/
{s-link=sub;
sub=s;
}
else{first=sub; /*寻找适当的位置插入*/
second=first-link;
while(second!=NULL)
{
if((s-size)(second-size))
{
s-link=second;
first-link=s;
second=NULL;
insert=1;
}
else
{
first=first-link;
second=second-link;
}
}
if(insert==0)first-link=s; /*插在队尾*/
}
}
void sort_sub() /*对空闲分区按从小到大排序*/sort*/
{
JCB *first;
if(ready==NULL) ready=p;
else{
first=ready;
while(first-link!=NU
您可能关注的文档
- 如何将你的孩子养成大用之才.doc
- 如何建立根据地场.ppt
- 如何开展图书馆情报学研究.ppt
- 如何开展危险废专项执法检查.ppt
- 如何开发车险场.ppt
- 如何成为1个成功的职业经理人-试题集(全).doc
- 如何快速让你的站被google收录.doc
- 如何把握商务公的送礼时机.doc
- 如何拆卡西欧表格带.doc
- 如何搞好企业的部控制(PPT69页).ppt
- 小学科学:ESP8266智能插座电路原理与动手实践研究教学研究课题报告.docx
- 《金融开放浪潮下我国多层次监管体系构建与创新研究》教学研究课题报告.docx
- 区域教育质量监测中人工智能应用的数据质量分析与优化策略教学研究课题报告.docx
- 《金融科技监管中的数据治理与合规性要求》教学研究课题报告.docx
- 《3D打印技术在航空航天领域中的多材料制造与复合材料应用》教学研究课题报告.docx
- 《绿色金融发展中的政府职能与市场机制研究》教学研究课题报告.docx
- 《植物工厂多层立体栽培光环境调控技术对植物生长发育节律的调控机制探讨》教学研究课题报告.docx
- 销售团队年度业绩总结.docx
- 银行风险管理与金融危机防范.docx
- 银行网络攻击预警与快速响应机制.docx
最近下载
- 云南西部沿边高校边境缅甸语人才培养的校政企合作模式探索.docx VIP
- 《固定式钢梯及平台安全要求 第2部分:钢斜梯》GB 4053.2-2009.docx VIP
- 幼小科学衔接视角下家校社协同共育现状及对策研究.pdf VIP
- 2025中国中信金融资产管理股份有限公司甘肃分公司招聘笔试备考题库及答案解析.docx VIP
- 旅游警务服务规范.pdf
- 2025凉山州继续教育公需科目满分答案-深入学xi关于发展新生产力的重要论述.docx VIP
- 第三章 教育目的.ppt VIP
- 乳腺癌脑转移瘤护理查房.pptx VIP
- 眼科专科护理操作风险防范.pptx VIP
- 真菌镜检报告.pptx VIP
文档评论(0)