欢迎来到天天文库
浏览记录
ID:53078941
大小:433.49 KB
页数:16页
时间:2020-04-01
《操作系统实验_最佳适应算法最坏适应算法.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、.学号P71514032专业计算机科学与技术姓名实验日期2017/11/23教师签字成绩实验报告【实验名称】基于顺序搜索的动态分区分配算法(二)【实验目的】理解在连续分区动态的存储管理方式下,如何实现贮存空间的分配与回收。采用可变式分区管理,使用最佳适应算法实现主存空间的分配与回收。采用可变式分区管理,使用最坏适应算法实现主存空间的分配与回收。【实验原理】C++语言程序设计数据结构最佳适应算法最坏适应算法..数据结构和符号说明1、boolROM[N];//定义主存信息,如果内存被占用,则标记为1,否则
2、标记为0,设置内存单元为10242、pcbnum[20];//定义作业数组,最大支持20个作业3、typedefstructPcb//定义作业结构体,包括名称,开始时间,大小,是否执行状态{charname[10];intstart;intsize;intstate=0;}pcb;主要函数:voidfind_free_rom();//寻找空闲区voidsort1();//对空闲区进行排序从小到大voidsort1();//对空闲区进行排序从大到小voidshow();//显示函数voidinsert_
3、pcb1(pcb&a);//最佳适应算法voidinsert_pcb2(pcb&a);//最坏适应算法voidinit();//初始化函数算法流程图:..最佳适应算法:..最坏适应算法:..#include#include#defineN1024boolROM[N];intp=0;intcount=0;intfree_rom_counter=0;//空闲区数目typedefstructPcb//进程结构体{charname[10];intstart;intsize
4、;//大小intstate=0;//状态}pcb;pcbnum[20];//进程数组typedefstructFree_rom//空闲区结构体{intnum;intstart;intend;intspace;//空闲区大小}Free_room;Free_romfree_rom[100];//空闲区数组voidshow()//显示空闲区信息{printf("****************************************************************");pri
5、ntf("空闲区名t开始地址tt大小tt结束地址tt");for(inti=1;i<=free_rom_counter;i++)printf("%dtt%dttt%dtt%dtt",free_rom[i].num,free_rom[i].start,free_rom[i].space,free_rom[i].end);printf("");printf("****************************************************
6、************");..}voidfind_free_rom()//寻找空闲区,更新空闲区数组{free_rom_counter=0;inti,j,p;for(i=0;i7、;free_rom[free_rom_counter].start=p;free_rom[free_rom_counter].end=j-1;free_rom[free_rom_counter].space=j-p;i=j+1;break;}}if(j==N&&ROM[j-1]==0)//对最后一个内存进行特殊处理{free_rom_counter++;free_rom[free_rom_counter].num=free_rom_counter;free_rom[free_rom_counter].8、start=p;free_rom[free_rom_counter].end=j-1;free_rom[free_rom_counter].space=j-p;}}}voidsort1()//最佳适应算法对空闲区从小到大排序{find_free_rom();Free_roma;for(inti=1;i
7、;free_rom[free_rom_counter].start=p;free_rom[free_rom_counter].end=j-1;free_rom[free_rom_counter].space=j-p;i=j+1;break;}}if(j==N&&ROM[j-1]==0)//对最后一个内存进行特殊处理{free_rom_counter++;free_rom[free_rom_counter].num=free_rom_counter;free_rom[free_rom_counter].
8、start=p;free_rom[free_rom_counter].end=j-1;free_rom[free_rom_counter].space=j-p;}}}voidsort1()//最佳适应算法对空闲区从小到大排序{find_free_rom();Free_roma;for(inti=1;i
此文档下载收益归作者所有