- 1、本文档共7页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
伙伴系统算法
#includestdio.h
#includestdlib.h
#includemalloc.h
#includemath.h
# define M 21 //宏定义,最大可分配空间为1M字节,最小为1字节
//定义数据结构:用二叉树结点结构
struct buddynode
{
char name; //占用该空间的进程名称
int level; //表示等级数,即空间大小,用其幂级数表示,level表示2^(level)大小的空间
int idle; //空闲标志位,1表示空闲,0表示已分配
int lorr; //标志位(left or right):0表示该结点是左孩子,1表示该结点是右孩子
//后继(用于空闲队列指针的操作);左右孩子,双亲用于二叉树存储
buddynode *next;
buddynode *lchild;
buddynode *rchild;
buddynode *parent;
};
buddynode *idlepres[M]; //空间大小为2^M的空闲队列,相当于尾指针,指向空闲队列最后一个空闲区
buddynode *idlehead[M]; //各空闲队列头指针,与上面M个空闲队列相对应
buddynode *bs; //初始化时令其指向根结点,为每次遍历时使用
buddynode *bsp; //暂存结点信息
buddynode *bt;
//定义初始化函数:0~M-2队列都为空,而M-1队列初始化为最大空间,即2^M
void init_space()
{
int i;
for(i=0;iM-1;i++)
{
idlehead[i]=(buddynode*)(malloc(sizeof buddynode));
idlepres[i]=NULL;
idlehead[i]-next=NULL;
}
idlepres[M-1]=(buddynode*)(malloc(sizeof buddynode));
idlepres[M-1]-name=NULL;
idlepres[M-1]-level=M-1;
idlepres[M-1]-idle=1;
idlepres[M-1]-lorr=NULL; //表示根结点
idlepres[M-1]-next=NULL;
idlepres[M-1]-lchild=NULL;
idlepres[M-1]-rchild=NULL;
idlepres[M-1]-parent=NULL;
idlehead[M-1]=(buddynode*)(malloc(sizeof buddynode));
idlehead[M-1]-next=idlepres[M-1];
bs=idlepres[M-1];
} //根结点作为源头,遍历的起始
//为进城分配空间函数,以进程名称和空间大小为行参
void req_space(char na,int m)
{
int k,sj,si;
buddynode *pav;
buddynode *pde; //delete,空闲区结点删除后暂存入pde
k=m;
si=0;
//while循环,找到满足条件的si使得2^(si-1)m2^(si),si是需要分配的空间大小等级
while(k0){
k=k/2;
si=si+1;
}
//判断是否存在大小为si的空闲区,若有si空闲区,分配给进程
if((idlehead[si]-next!=NULL)(idle
您可能关注的文档
- 幼师英语 Unit 2 教案.doc
- 0389 高三英语-苏州中学2015届高三上学期期中考试英语试题.doc
- 实验报告C程序的运行环境.doc
- 压力容器基本英汉对照.docx
- markdown语法.docx
- 定语从句练习 3 (有答案).docx
- 牛津英语9AU7试卷.doc
- KPMG 实习简历.docx
- 课程与教学论期末考试题.doc
- 2015-2016学年高中英语(外研版必修五)课时作业:Module4 Period Three.docx
- 2023-2024学年广东省深圳市龙岗区高二(上)期末物理试卷(含答案).pdf
- 2023-2024学年贵州省贵阳市普通中学高一(下)期末物理试卷(含答案).pdf
- 21.《大自然的声音》课件(共45张PPT).pptx
- 2023年江西省吉安市吉安县小升初数学试卷(含答案).pdf
- 2024-2025学年广东省清远市九校联考高一(上)期中物理试卷(含答案).pdf
- 广东省珠海市六校联考2024-2025学年高二上学期11月期中考试语文试题.pdf
- 2024-2025学年语文六年级上册第4单元-单元素养测试(含答案).pdf
- 2024-2025学年重庆八中高三(上)月考物理试卷(10月份)(含答案).pdf
- 安徽省安庆市潜山市北片学校联考2024-2025学年七年级上学期期中生物学试题(含答案).pdf
- 贵州省部分校2024-2025学年九年级上学期期中联考数学试题(含答案).pdf
最近下载
- 基于Android开发的购物商城App的设计与实现-毕业设计.pdf VIP
- 测绘中级工程师职称答辩题库.pdf
- 办公大楼供电设备管理维护方案.docx VIP
- 学习小组组织与管理小组组织与管理实施计划.docx
- 2024年中考物理二轮题型(全国通用)压轴题:含压强、浮力、杠杆、滑轮的机械效率的综合计算(解析版).pdf VIP
- 高校学生工作案例分析的方法与技巧.pdf VIP
- 基于Android的网上商店商城购物系统app的设计与实现毕业论文.docx
- 地理学概论地理科学研究的基本方法.ppt
- 八年级上册英语完形填空、阅读理解专题100题(含参考答案).pdf VIP
- 2023年肺癌脑转移中国治疗指南.docx
文档评论(0)