某计算机系统的内存大小为256KB,在分配完P5进程后,内存的使用情况如下表所示。
起始 | 0 | 5 | 10 | 40 | 90 | 110 | 145 | 155 | 160 | 225 | 245 |
大小 | 5KB | 10KB | 25KB | 50KB | 20KB | 35KB | 10KB | 5KB | 65KB | 20KB | 11KB |
标记 | 空 | P1 | P2 | 空 | P3 | 空 | P4 | P5 | 空 | P6 | 空 |
此时,有新的进程请求20KB和5KB的内存空间,系统分配后如下表所示
起始 | 0 | 5 | 15 | 40 | 60 | 90 | 110 | 145 | 155 | 160 | 225 | 245 |
大小 | 5KB | 10KB | 25KB | 20KB | 30KB | 20KB | 35KB | 10KB | 5KB | 65KB | 20KB | 11KB |
标记 | P8 | P1 | P2 | P7 | 空 | P3 | 空 | P4 | P5 | 空 | P6 | 空 |
那么,系统采用的是什么分配算法
最先适应算法
下次适应算法
最优适应算法
最坏适应算法
答案
最先适应算法
解析
最先适应算法是将空闲分区按起始地址递增的次序排列,每次分配总是从空闲分区表或空闲分区链首开始查找,并从第一个能满足要求的空闲分区中划分出作业所要求的空间分配出去。
由两张内存使用表看出为新进程分配的空闲分区总是从低地址开始搜索,当搜索到第一个能满足要求的空闲分区时就分配给进程,符合最先适应算法。