全文预览

操作系统第六次 内存分配与回收模拟

上传者:徐小白 |  格式:doc  |  页数:8 |  大小:255KB

文档介绍
.address_of_start;j<Not_Empty[del-48].address_of_start+Not_Empty[del-48].size_of_notempty;j++)Р ram[j]='o';Р printnow(ram);Р printfree(ram);Р Not_Empty[del-48].delete_or_not=1;}//标记已经销毁Р elseР printf("进程不存在或已销毁!\n");Р?} Р?if(what==3)Р?printnow(ram);Р?printf("1,分配; 2,回收;\n3,内存占用情况图; 4,退出;\n"); Р?}Р}Р实验过程中遇到的问题解决办法与实验体会Q4(10分)Р得分:Р代码没有实现搜索平均空闲区间的功能,因为这功能的描述不足够清楚,但是感觉影响不大。构思了两天,用了将近一小时就完成了两个算法。Р(1)first fit算法。使用该算法进行内存分配时,从空闲分区链首开始查找,直至找到一个能满足其大小要求的空闲分区为止。然后再按照作业的大小,从该分区中划出一块内存分配给请求者,余下的空闲分区仍留在空闲分区链中。Р 该算法倾向于使用内存中低地址部分的空闲分区,在高地址部分的空闲分区很少被利用,从而保留了高地址部分的大空闲区。显然为以后到达的大作业分配大的内存空间创造了条件。缺点在于低址部分不断被划分,留下许多难以利用、很小的空闲区,而每次查找又都从低址部分开始,这无疑会增加查找的开销。Р (2)next fit算法。该算法是由首次适应算法演变而成的。在为进程分配内存空间时,不再每次从链首开始查找,而是从上次找到的空闲分区开始查找,直至找到一个能满足要求的空闲分区,并从中划出一块来分给作业。该算法能使空闲中的内存分区分布得更加均匀,但将会缺乏大的空闲分区。Р评阅教师特殊评语:Р评阅教师: Р日期:

收藏

分享

举报
下载此文档