[发明专利]提高系统内存利用率的方法有效
申请号: | 201510638512.5 | 申请日: | 2015-09-29 |
公开(公告)号: | CN105354079B | 公开(公告)日: | 2019-06-07 |
发明(设计)人: | 李小庆 | 申请(专利权)人: | 上海斐讯数据通信技术有限公司 |
主分类号: | G06F9/46 | 分类号: | G06F9/46 |
代理公司: | 杭州千克知识产权代理有限公司 33246 | 代理人: | 周希良 |
地址: | 201616 *** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 提高 系统 内存 利用率 方法 | ||
1.一种提高系统内存利用率的方法,其特征在于,应用于Linux系统中,所述方法包括:
步骤S1,缓存释放线程中增加堆栈收缩函数的调用;
步骤S2,创建新进程后,在所述新进程的数据结构中添加一定时器,并将所述定时器的到期函数设置为堆栈收缩函数;
步骤S3,当所述Linux系统的内存不足时,所述定时器开始计时;
步骤S4,在所述定时器计时期间,所述Linux系统中的所有用户进程调用所述堆栈收缩函数,以释放所有所述用户进程堆栈中的内存;
步骤S5,在所述定时器到期时,所述Linux系统的CPU执行所述堆栈收缩函数,以释放所述新进程堆栈中的内存;
其中,所述步骤S4中的所述所有用户进程不包括所述新进程。
2.根据权利要求1所述的提高系统内存利用率的方法,其特征在于,所述方法中:
所述定时器的定时时间为1-10秒。
3.根据权利要求1所述的提高系统内存利用率的方法,其特征在于,所述步骤S1具体包括:
步骤S11,在所述堆栈收缩函数中,增加对所述所有用户线程调用所述堆栈收缩函数的代码。
4.根据权利要求1所述的提高系统内存利用率的方法,其特征在于,所述步骤S2具体包括:
步骤S21,在Linux进程数据结构中增加堆栈时间域,Linux内核创建所述新进程时,在所述堆栈时间域上添加所述定时器。
5.根据权利要求1所述的提高系统内存利用率的方法,其特征在于,所述步骤S2具体包括:
步骤S22:通过addtimer函数添加所述定时器。
6.根据权利要求1所述的提高系统内存利用率的方法,其特征在于,所述提高系统内存利用率的方法还包括:
步骤S6:于所述步骤S5之后,所述缓存释放线程运行后,对所述所有用户进程的用户态堆栈内存情况进行检查并调用所述堆栈收缩函数,以释放所述用户态堆栈内存。
7.根据权利要求6所述的提高系统内存利用率的方法,其特征在于,所述提高系统内存利用率的方法还包括:
步骤S7:于所述步骤S6之后,当堆栈指针连续N次向上穿过页边界地址时,所述CPU中断并执行所述堆栈收缩函数,以释放当前运行进程堆栈的内存;
其中,所述N为预设值,同时所述N为正整数并且大于1。
8.根据权利要求7所述的提高系统内存利用率的方法,其特征在于,所述步骤S7还包括:
在系统初始化函数trapinit中,通过settrapgate函数设置所述堆栈收缩函数的封装函数为中断处理函数。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海斐讯数据通信技术有限公司,未经上海斐讯数据通信技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510638512.5/1.html,转载请声明来源钻瓜专利网。