如题:2020年10月

分析:这个题挺唬人的,什么低地址?《操作系统考点之存储管理》也只是说明了下可变分区的原理,只说是回收依靠的是两个表,已分配表和空闲表,没有涉及到具体的回收算法。两个关键数据结构分别的作用如下:
- 已分配区表:记录已装入的程序在内存中占用分区的起始地址和长度,用标志位指出占用分区的程序名。
- 空闲区表:记录内存中可供分配的空闲区的起始地址和长度,用标志位指出该分区是未分配的空闲区
- 另外,由于已分区与空闲区个数不定,所有很多空栏

具体的回收算法:回收时,先将使用完毕的分区,记录在空闲区表中,检查相邻空闲区表中的“未分配”栏目,有,应该合并成一个空闲区,这样空闲区个数其实是没变,除非合并两个原有的分区,才会出现空闲区数减1的情形。所以答案选D.
假设:归还分区在空闲表中的起始地址是S,长度为L
1、回收分区的上邻分区(地址是从低到高增长的)空闲,需要合并.
如果空闲表中的第i号“未分配栏”的 起始地址+长度 = S,就说明有上邻的分区,合并也很简单,只要第i栏起始地址不变,长度为 未分配区长度+L就可以了。可见,脑补内存情形还是很重要的,写C时也是重要的基本

本文解析了2020年10月关于操作系统存储管理中的回收算法,涉及已分配表、空闲表的运作,并详细介绍了分区合并策略,包括合并上邻、下邻和相邻空闲区的情况。
最低0.47元/天 解锁文章
5835





