免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 765 | 回复: 0
打印 上一主题 下一主题

unix下动态分配内存时系统怎样管理 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-01-11 11:23 |只看该作者 |倒序浏览

如果进程A申请了100M内存,使用后free掉,但是进程A并不退出,那么这100M的状态是cache。这是后进程B再申请内存,系统的申请顺序是,首先查找属于Free状态的内存,即完全干净,没被任何进程使用过的内存。如果free的内存不够被分配,则查找处于cache状态的内存。也就是曾经被进程申请,而现在又是放掉的,而且申请这些内存的进程还没有退出。如果cache状态的内存也不够分配,则查找inactive队列里面的内存。inactive状态的内存是已经被某一进程申请,但是该进程暂时没有对该内存进行操作。这是后系统会把inactive状态内存中的数据先写在swap(也就是文件系统中)里,然后临时借给正在申请内存的进程B用。这时候进程B在操作这些借来内存,因为这些内存本来就是进程A 的,在进程B还为使用完之前,进程A也要使用了,系统就会把当前内存中的数据写入swap,然后再从swap中把刚才写入的进程A的数据重新调入到内存。这就是内存页面的换出和换入(page out/page in)。
所以一个系统是否繁忙,不能光看free状态的内存多少,而要看page out/page in的数值。如果页面交换的数值很高,说明系统当前内存是用非常紧张,系统需要临时借用其他进程的内存使用。

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u1/58137/showart_461464.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP