[13][19][单选]假设某计算机系统的内存大小为 16KB,在某一时刻内存的使用情况如下表所示。
起始地址 容量KB 状态
0KB 10KB 已用
10KB 2KB 未用
12KB 2KB 未用
14KB 2KB 未用
此时,若进程顺序请求 5KB、15KB 和 30KB 的存储空间,系统采用某种算法进行内存分配,分配后的内存情况如下表所示。
起始地址 容量KB 状态
0KB 10KB 已用
10KB 2KB 已用
12KB 2KB 已用
14KB 2KB 已用
那么,系统采用的是什么分配算法
最佳适配
首次适配
下次适配
正确答案
答案
最佳适配
解析
【解析】最佳适配算法首先是查找能满足申请要求的最小的空闲空间来分配内存,所以对于请求 9KB 内存空间,系统会查找当前最大的空闲空间:起始地址为 20KB、容量为 56KB 的空闲块,分配 5KB,分配后内存使用情况如下:
起始地址 容量KB 状态
0KB 10KB 已用
10KB 2KB 已用
12KB 2KB 已用
14KB 2KB 已用
20KB 5KB 已用
对于请求 15KB 的内存空间,系统会查找当前最大的空闲空间:起始地址为 25KB、容量为 51KB 的空闲块,分配 15KB,分配后内存使用情况如下:
起始地址 容量KB 状态
0KB 10KB 已用
10KB 2KB 已用
12KB 2KB 已用
14KB 2KB 已用
20KB 5KB 已用
25KB 15KB 已用
对于请求 30KB 的内存空间,系统会查找当前最大的空闲空间:起始地址为 40KB、容量为 36KB 的空闲块,分配 30KB,分配后内存使用情况如下:
起始地址 容量KB 状态
0KB 10KB 已用
10KB 2KB 已用
12KB 2KB 已用
14KB 2KB 已用
20KB 5KB 已用
25KB 15KB 已用
40KB 30KB 已用
所以系统采用的是最佳适配算法,答案为 A。
【涉及考点】
第 5 章 内存管理
转载请注明出处。