结构推理
MS-DOS为什么是在“申请内存分区”系统调用中进行空闲分区的合并工作,而不是在“释放内存分区”系统调用中进行这项工作?
【正确答案】MS-DOS是通过“申请内存分区”系统调用来进行空闲分区合并的。之所以这样做,有如下几点理由。
第一,在进行存储分配时,MS-DOS总是沿着分区的MCB链去寻找一个满足条件的空闲分区加以分配。如果当前找到满足条件的分区,那么就可以立即将其分配出去,免去分区合并所需要的系统开销。
第二,如果当前空闲分区的尺寸不能满足要求,而后面是一个空闲分区,那么顺手将它们合并,既合乎情理,又节省时间。
第三,如果在“释放内存分区”系统调用中进行这项工作,无法解决与释放区前面的空闲分区进行合并的工作。所以,MS-DOS在“申请内存分区”系统调用中进行空闲分区的合并工作,这样的安排是非常正确的。
【答案解析】