假设某计算机系统的内存大小为256K,在某一时刻内存的使用情况如下表所示。
起始地址 | 0K | 10K | 25K | 45K | 95K | 100K | 130K | 155K | 190K | 200K |
状态 | 已用 | 未用 | 已用 | 已用 | 未用 | 已用 | 未用 | 已用 | 已用 | 未用 |
容量 | 10K | 15K | 20K | 50K | 5K | 30K | 25K | 35K | 10K | 56K |
此时,若进程顺序请求20K、10K和30K的存储空间,系统采用某种算法为进程分配内存,分配后的内存情况如下表所示。
起始地址 | 0K | 10K | 20K | 25K | 45K | 95K | 100K | 130K | 150K | 155K | 190K | 200K | 230K |
状态 | 已用 | 已用 | 未用 | 已用 | 已用 | 未用 | 已用 | 已用 | 未用 | 已用 | 已用 | 已用 | 未用 |
容量 | 10K | 10K | 5K | 20K | 50K | 5K | 30K | 20K | 5K | 35K | 10K | 30K | 26K |
那么,系统采用的是什么分配算法
最佳适配
最差适配
首次适配
下次适配
答案
首次适配
解析
最先适应算法,又称顺序分配算法。
在这种分配算法中,当接到内存申请时,顺序查找分区说明表,找到第一个满足申请长度的空闲区,将其分割并分配。
系统采用首次适配算法,则分配如下:第1次从起始地址为130K处分配20K,然后在起始地址为150K处剩余5K,第2次分配则从起始地址10K处分配10K,在起始地址为20K处剩余5K空间,第3次分配从起始地址200K处分配30K空间,在起始地址为230K处剩于26K,与题目分配后情况一致。
为什么不选择最佳适配算法,主要的原因是最佳适配算法一般不分割大的空闲区,所以这一题综合来看,最佳适配算法不是最佳答案