一.题目:存储管理
---
动态分区分配算法的模拟
二.任务
+
:设计主界面以灵活选择某算法,且以下算法都要实现:首次适应
算法、循环首次适应算法、最佳适应算法;?/p>
三.思想:对任务进行构思和设想?/p>
?/p>
1
)首次适应算法?/p>
FF
算法要求空闲分区链以地址递增的次序链接。在分配内存时,?/p>
链首开始顺巡查找,直到找到一个大小能够满足要求的空闲分区?/p>
止;
然后再按照作业的大小?/p>
从该分区中划出一块内存空间分配给?/p>
求者,
余下的空闲区间仍留在空闲链中?/p>
若从链首直至链尾都不能找
到一个能满足要求的分区,则此次内存分配失败,返回。该算法倾向
于优先利用内存中低址部分的空闲分区,
从而保留了高址部分的大?/p>
闲区。这给为以后到达的大作业分配大的内存空间创造了条件?/p>
?/p>
2
)循环首次适应算法
该算法是由首次适应算法演变而成的。在为进程分
配内存空间时?/p>
不再是每次都从链首开始查找,
而是从上次找到的?/p>
闲分区的下一个空闲分区开始查找,
直至找到一个能满足要求的空?/p>
分区?/p>
从中划出一块的请求大小相等的内存空间分配给作业?/p>
为实?/p>
该算法,
应设置一起始查找指针?/p>
用于指示下一次起始查询的空闲?/p>
区,并采用循环查找方式,即如果最后一个(链尾)空闲分区的大小