用可变分区方式管理主存时,假定主存中按地址顺序依次有五个空闲区,空闲区的大小依次为32KB,10KB,5KB,228KB,100KB。现有五个作业J1、J2、J3、J4和J5,它们各需主存lKB,10KB,108KB,28KB和115KB。试用最先适应算法,能否将五个作业全部装入主存?
【正确答案】:不能。 按最先适应算法的要求,每次分配时总是顺序查找空闲区表,找到第一个能满足作业长度要求的,分割这个找到的空闲区,一部分分给作业,另一部分仍为空闲区。分配前情况如下图所示: 空闲区表 作业队列 始址 长度 标志 J2要求1KB A 32KB 空闲 J2要求10KB D 10KB 空闲 J3要求108KB G 5KB 空闲 J4要求28KB K 228KB 空闲 J5要求115KB N 100KB 空闲 J1分配到第一个能满足该作业长度的空闲区(起始地址为A,长度为32 KB);J2分 配到第一个能满足该作业长度的空闲区(起始地址为D,长度为10KB); J3分配到第一个能满足该作业长度的空闲区(起始地址为K,长度为228 KB); J4分配到第一个能满足该作业长度的空闲区(起始地址为N,长度为l OoKB); 依此类推,分配情况如下所示: 已分配表 作业队列 始址 长度 剩余空间 标志 J5要求11 5 KB A 1KB 31KB J1 D 10KB 0KB J2 K 108KB 120KB J3 N 28KB 72KB J4 由此可知,按最先适应算法无法同时给J5作业分配存储空间,只能等其他作业运行完毕、归还存储空间后才能再做分配。