发明名称 | 一种内存池管理的方法 | ||
摘要 | 本发明提供一种内存池管理的方法,包括以下步骤:设置若干个子内存池,为每个子内存池申请一定数目大小相同的gen内存块,并将同一子内存池的gen进一步划分为若干个大小相同的mem内存块,将未被划分的内存设置为OS内存池;应用模块申请内存时,虚拟操作系统先判断其所申请内存的大小是否大于每个子内存池中mem的大小,如果是则直接从OS内存池中为该应用模块分配内存块,否则根据其申请的大小找到相应的子内存池,并判断该子内存池中是否有空闲的mem,如果是则直接将该子内存池中的空闲mem分配给应用模块;否则虚拟操作系统先为该子内存池从OS内存池中动态申请一个gen后,再将该gen中的空闲mem分配给应用模块,并将已分配的mem标为占用。 | ||
申请公布号 | CN1527206A | 申请公布日期 | 2004.09.08 |
申请号 | CN03105052.2 | 申请日期 | 2003.03.03 |
申请人 | 华为技术有限公司 | 发明人 | 石兴华 |
分类号 | G06F12/08 | 主分类号 | G06F12/08 |
代理机构 | 北京德琦知识产权代理有限公司 | 代理人 | 张颖玲 |
主权项 | 1、一种内存池管理的方法,其特征在于该方法包括以下步骤:a、设置一个以上子内存池,为每个子内存池从底层操作系统中申请一定数目大小相同的单位内存块,并将同一子内存池中的每个单位内存块进一步划分为至少一个以上大小相同的存贮内存块;然后将底层操作系统中未被划分的内存设置为操作系统内存池;b、当应用模块申请内存时,虚拟操作系统先判断所申请内存的大小是否大于每个子内存池所能提供的存贮内存块的大小,如果是,则进入步骤c,否则,进入步骤d;c、判断所申请内存的大小是否小于等于当前操作系统内存池所能提供的内存的大小,如果是,则虚拟操作系统直接从操作系统内存池中为该应用模块分配内存块,结束本流程,否则拒绝本次申请,结束本流程;d、虚拟操作系统根据所申请内存的大小找到存贮内存块的大小与之相匹配的子内存池,并判断该子内存池中是否有空闲的存贮内存块,如果是,则直接将该子内存池中的空闲存贮内存块分配给应用模块后,将已分配的存贮内存块标记为占用;否则,虚拟操作系统为该子内存池从操作系统内存池中动态申请一单位内存块后,再将该单位内存块中的空闲存贮内存块分配给应用模块,并将已分配的存贮内存块标记为占用。 | ||
地址 | 518057广东省深圳市科技园科发路华为用服大厦 |