小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。
操作系统中存储管理的分区存储管理方式(上) - 掘金 (juejin.cn)
动态分区
课本定义
动态分区法在作业调度执行前并不建立分区,分区的建立是在作业的处理过程中进行的,且其大小可随作业或进程对内存的要求而改变。
课堂举例(形象思考)
说来,意思就是既然固定分区浪费空间啊啥的,那这次我们动态分区,你需要多大给你分多大。这里我们可以使用一些餐厅中用来划分包厢的屏风来思考这个动态分区方法。
动态分区的特点
动态分区的特点是动态创建分区:在装入程序时按其初始要求分配,或在其执行过程中通过系统调用进行分配或改变分区大小。与固定分区相比较其优点是:没有内碎片。但它却引入了另一种碎片——外碎片。
这里的意思是每次使用动态分区时,每个作业进入分区都会留下一个小的空间无法利用,当动态分区不断地进行时,作业进进出出,这种碎片就会逐渐增多(因为碎片与碎片之间没能整合成一整个大的空白分区,即使在位置上相邻),到最后程序一个作业都无法加载。
动态分区的分区分配就是寻找某个空闲分区,其大小需大于或等于程序的要求。若是大于要求,则将该分区分割成两个分区,其中一个分区为要求的大小并标记为“占用”,而另一个分区为余下部分并标记为“空闲”。分区分配的先后次序通常是从内存低端到高端。动态分区的分区释放过程中有一个要注意的问题是,将相邻的空闲分区合并成一个大的空闲分区。