当前位置:嗨网首页>书籍在线阅读

33-投机性内存分配策略

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

9.10 投机性内存分配策略

Linux 使用了一种“投机性内存分配策略(opportunistic allocation strategy)”。当一个进程向内核请求额外的内存——如扩大它的数据段,或者创建一个新的内存映射——内核做出了分配承诺,但实际上并没有分给进程任何的物理存储。仅当进程对新“分配到”的内存区域执行写操作时,内核才履行承诺,分配一块物理内存。内核逐页完成上述工作,并在需要时进行请求页面调度和写时复制。

这样处理有如下几个优点。首先,延缓内存分配允许内核将大部分工作推迟到最后一刻——当确实需要进行分配时。其次,由于请求是根据需求逐页地分配,只有真正需要物理内存的时候才会消耗物理存储。最后,分配到的内存可能比实际的物理内存甚至比可用的交换空间多得多。最后这个特征叫做“超量使用(overcommitment)”。