免费预览已结束,剩余10页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
/该文件所含代码是课设需要学生自己写的代码和补充的代码,包含部分需要修改的课程设计指导书中的代码,不包含不需修改的代码/1.显示空闲区表void display_freearea_list() FREEAREA *p;char buffer20; p=p_free_area_list;printf(|-|-|n);printf(| start_address(kB) | size(KB) |n);printf(|-|-|n);while(p!=NULL)printf(| %d,p-start_address);itoa( p-start_address, buffer, 10 );print_space(19-strlen(buffer);printf(| %d,p-size);itoa(p-size, buffer, 10 );print_space(17-strlen(buffer);printf(|n);p=p-next; printf(|-|-|nn);/2.最先适应分配法:内存释放函数void FF_release_memory(int start_address,int size)EnterCriticalSection(&CS_FREEAREA_LIST);_int64 t1, t2;/记录该算法起止时间t1 = GetCycleCount();/记录起始时间FREEAREA *temp,*p,*pp;/将空闲区按start_address由小到大排序,以便整合相邻空闲区while(1)int change = 0;p = p_free_area_list;if(p-next != NULL)if(p-start_address p-next-start_address)pp = p-next;p-next = pp-next;pp-next = p;p_free_area_list = pp;change = 1;if(p-next != NULL)while(p-next-next != NULL)if(p-next-start_address p-next-next-start_address )pp = p-next-next;p-next-next = pp-next;pp-next = p-next;p-next = pp;change = 1;p = p-next ;if(change = 0)break;/插入空闲区temp = new FREEAREA;p = new FREEAREA;temp-start_address = start_address;temp-size = size;temp-next = NULL;p-next = p_free_area_list;while(p-next != NULL)if(p-next-start_address temp-start_address)temp-next = p-next ;p-next = temp;break;elsep = p-next ;if(p-next = NULL)p-next = temp;else if(temp-next = p_free_area_list)p_free_area_list = temp;/整合碎片while(1)int change = 0;p = p_free_area_list;if(p = NULL)break;while(p-next != NULL)if(p-start_address + p-size) = (p-next-start_address)p-size = p-next-size + p-size;change = 1; if(p-next-next = NULL)free(p-next);p-next = NULL;elsep-next = p-next-next;if(p-next = NULL)break;elsep = p-next ;if(change = 0)break;/整理线程结束后的驻留链表THREAD_RESIDENCE_MEMORY *q;q = p_thread_residence_memory_list;if(q-start_address = start_address)p_thread_residence_memory_list = p_thread_residence_memory_list-next ;elsewhile(q-next != NULL)if(q-next-start_address = start_address)if(q-next = tail_thread_residence_memory_list)tail_thread_residence_memory_list = q;q-next = q-next-next ;break;q = q-next;/记录结束时间,并将运行时间存入对应数组t2 = GetCycleCount();if(time00 t2 - t1)time00 = t2 - t1;if(time01 next != NULL)if(p-start_address p-next-start_address)pp = p-next;p-next = pp-next;pp-next = p;p_free_area_list = pp;change = 1;if(p-next != NULL)while(p-next-next != NULL)if(p-next-start_address p-next-next-start_address )pp = p-next-next;p-next-next = pp-next;pp-next = p-next;p-next = pp;change = 1;p = p-next ;if(change = 0)break;/插入空闲区temp = new FREEAREA;p = new FREEAREA;temp-start_address = start_address;temp-size = size;temp-next = NULL;p-next = p_free_area_list;while(p-next != NULL)if(p-next-start_address temp-start_address)temp-next = p-next ;p-next = temp;break;elsep = p-next ;if(p-next = NULL)p-next = temp;else if(temp-next = p_free_area_list)p_free_area_list = temp;/整合碎片while(1)int change = 0;p = p_free_area_list;if(p = NULL)break;while(p-next != NULL)if(p-start_address + p-size) = (p-next-start_address)p-size = p-next-size + p-size;change = 1; if(p-next-next = NULL)free(p-next);p-next = NULL;elsep-next = p-next-next;if(p-next = NULL)break;elsep = p-next ;if(change = 0)break;/将空闲区按SIZE由小到大排序,以便符合BF算法while(1)int change = 0;p = p_free_area_list;if(p-size p-next-size)pp = p-next;p-next = pp-next;pp-next = p;p_free_area_list = pp;change = 1;while(p-next-next != NULL)if(p-next-size p-next-next-size )pp = p-next-next;p-next-next = pp-next;pp-next = p-next;p-next = pp;change = 1;p = p-next ;if(change = 0)break;/整理线程结束后的驻留链表THREAD_RESIDENCE_MEMORY *q;q = p_thread_residence_memory_list;if(q-start_address = start_address)p_thread_residence_memory_list = p_thread_residence_memory_list-next ;elsewhile(q-next != NULL)if(q-next-start_address = start_address)if(q-next = tail_thread_residence_memory_list)tail_thread_residence_memory_list = q;q-next = q-next-next ;break;q = q-next;/记录结束时间,并将运行时间存入对应数组t2 = GetCycleCount();if(time10 t2 - t1)time10 = t2 - t1;if(time11 next != NULL)if(p-start_address p-next-start_address)pp = p-next;p-next = pp-next;pp-next = p;p_free_area_list = pp;change = 1;if(p-next != NULL)while(p-next-next != NULL)if(p-next-start_address p-next-next-start_address )pp = p-next-next;p-next-next = pp-next;pp-next = p-next;p-next = pp;change = 1;p = p-next ;if(change = 0)break;/插入空闲区temp = new FREEAREA;temp-start_address = start_address;temp-size = size;temp-next = NULL;p = new FREEAREA;p-next = p_free_area_list;while(p-next != NULL)if(p-next-start_address temp-start_address)temp-next = p-next ;p-next = temp;break;elsep = p-next ;if(p-next = NULL)p-next = temp;else if(temp-next = p_free_area_list)p_free_area_list = temp;/整合碎片while(1)int change = 0;p = p_free_area_list;if(p = NULL)break;while(p-next != NULL)if(p-start_address + p-size) = (p-next-start_address)p-size = p-next-size + p-size;change = 1; if(p-next-next = NULL)free(p-next);p-next = NULL;elsep-next = p-next-next;if(p-next = NULL)break;elsep = p-next ;if(change = 0)break;/将空闲区按SIZE由大到小排序,以便符合WF算法while(1)int change = 0;p = p_free_area_list;if(p-size next-size)pp = p-next;p-next = pp-next;pp-next = p;p_free_area_list = pp;change = 1;while(p-next-next != NULL)if(p-next-size next-next-size )pp = p-next-next;p-next-next = pp-next;pp-next = p-next;p-next = pp;change = 1;p = p-next ;if(change = 0)break;/整理线程结束后的驻留链表THREAD_RESIDENCE_MEMORY *q;q = p_thread_residence_memory_list;if(q-start_address = start_address)p_thread_residence_memory_list = p_thread_residence_memory_list-next ;elsewhile(q-next != NULL)if(q-next-start_address = start_address)if(q-next = tail_thread_residence_memory_list)tail_thread_residence_memory_list = q;q-next = q-next-next ;break;q = q-next;/记录结束时间,并将运行时间存入对应数组t2 = GetCycleCount();if(time20 t2 - t1)time20 = t2 - t1;if(time21 t2 - t1)time21 = t2 - t1; LeaveCriticalSection(&CS_FREEAREA_LIST);/5.二维数组,用于存放各种算法所需的最长时间和最短时间_int64 time32 = 99999999,0,99999999,0,99999999,0;/6.显示程序运行时间void display_time(int n)EnterCriticalSection(&CS_SCREEN);printf(最短时间:%ld纳秒n,timen0);printf(最长时间:%ld纳秒n,timen1);LeaveCriticalSecti
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 南充市高坪区2025年面向“三支一扶”人员考核招聘卫生事业单位工作人员历年真题汇编及答案解析(夺冠)
- 2025年阜阳市肿瘤医院(阜阳市颍东区人民医院)招聘劳务派遣人员34名备考公基题库带答案解析
- 2025贵州高速公路集团有限公司第二批次招聘6人(第二轮)历年真题汇编附答案解析
- 2026年初级经济师之初级经济师财政税收考试题库300道附答案(轻巧夺冠)
- 2026中国储备粮管理集团有限公司湖北分公司招聘参考题库附答案解析
- 浙江银行招聘-金华银行金东支行招聘5人笔试模拟试卷附答案解析
- 2025海南三亚市卫生健康委员会招聘下属事业单位工作人员(第8号)笔试模拟试卷附答案解析
- 2025河南安阳林州红旗渠医院招聘临床医生5人历年真题汇编附答案解析
- 2025年天津中煤进出口有限公司招聘第五批电力人才55名参考题库带答案解析
- 2025广州银行人才招聘6人历年真题库带答案解析
- 个人求职简历模版(三页)带封面(可编辑)含实践经历下载
- 河北开放大学2025年《大众传播学》形考作业1-5答案
- 招投标开标评标相关表格及应用范例
- 产科新技术球囊放置临床应用汇报
- 冬天双壁波纹管施工方案
- 高中化学学习方法分享
- (2025年)一级建筑师继续教育试题及答案
- 2025水果供货合同范本
- cnas文件管理培训
- 2025年安徽省蚌埠市辅警人员招聘考试题库及答案
- 2025年医疗健康行业智能医疗设备市场前景分析研究报告
评论
0/150
提交评论