某操作系统采用可变分区分配存储管理方法,用户区为512K且始址为0。若分配采用分配空闲区低地址部分的方案,对下述申请序列:
申请310K,申请100K,释放310K,申请150K,申请40K,申请30K。
分别采用首次适应算法、最佳适应算法,回答下列问题:
(1)给出每一步的已分配空间、空闲分区(给出始址,大小)?
(2) 若再申请120K,还能分配这120K存储空间吗?
答:首次适应算法:
操作: | 已分配空间 | 空闲块 |
---|---|---|
初始 | 无 | (0,512K) |
申请310K | (0,310K) | (310K,202K) |
申请100K | (0,310K)(310K,100K) | (410K,102K) |
释放310K | (310K,100K) | (0,310K)(410K,102K) |
申请150K | (0,150K)(310K,100K) | (150K,160K)(410K,102K) |
申请40K | (0,150K)(150K,40K)(310K,100K) | (190K,120K)(410K,102K) |
申请30K | (0,150K)(150K,40K)(190K,30K)(310K,100K) | (220K,90K)(410K,102K) |
如再申请空间120K空间,由上述结果可知,采用首次适应算法后剩下的空闲分区没有大于120K的空闲空间,不能满足这一申请要求。
最佳适应算法:
操作: | 已分配空间 | 空闲块 |
---|---|---|
初始 | 无 | (0,512K) |
申请310K | (0,310K) | (310K,202K) |
申请100K | (0,310K)(310K,100K) | (410K,102K) |
释放310K | (310K,100K) | (0,310K)(410K,102K) |
申请150K | (0,150K)(310K,100K) | (150K,160K)(410K,102K) |
申请40K | (0,150K)(310K,100K)(410K,40K) | (150K,160K)(450K,62K) |
申请30K | (0,150K)(310K,100K)(410K,40K)(450K,30K) | (150K,160K)(480K,32K) |
如再申请空间120K空间,由上述结果可知,采用最佳适应算法后剩下的空闲分区有大于120K的空闲空间(空闲块(150K,160K)),能满足这一申请要求。