内存的管理方案:
分区:固定分区:操作系统启动时将内存分配完成
大小相等的固定分区:将内存分配成大小相等的区块,会产生内部碎片
放置策略:为每一个区块维护一给队列,为整体维护一个等待队列
大小不等的固定分区:将内存分配成大小不等的区块,会产生内部碎片
放置策略:将程序放到能够容纳的最小分区,放到当前能够容纳的最小空闲分区
动态分区:进程执行时,才会动态分配内存,会产生外部碎片, 动态分区的三种方式
首次适配:按分区在内存的先后次序,从上次分配的分区起找到合适的第一个
临近适配: 从上一次放置的地方开始扫描,找下一个合适的空闲分区
最佳适配:按分区在内存的次序从头查找,找到相差最小的空闲分区
分页:在大小相等的固定分区上的扩展,操作系统会为每一个进程维护一个页表,一个进程可以占有多个页帧,同一个进程的加载空间可以不连续
分段:动态分区上的扩展,操作系统为每一个进程维护一个段表,一个进程可以占有多个段表,同一个进程的所有段可以不连续,段号、基地址、段大小
伙伴系统:分配内存时,如果可用的内存空间较大,则将其一分为二,直到分配的空间不能再次分割(再分割会小于申请空间),就将其中一个分配给申请的进程
虚拟内存技术:
交换分区:
放置策略:
为每一个区块维护一个等待队列
整体维护一个等待队列
进程的4G虚拟地址空间布局
来源:https://blog.csdn.net/Duc_Duke/article/details/98970194