利索能及
我要发布
收藏
专利号: 2015106385125
申请人: 上海斐讯数据通信技术有限公司
专利类型:发明专利
专利状态:已下证
更新日期:2025-10-27
缴费截止日期: 暂无
联系人

摘要:

权利要求书:

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:通过add timer函数添加所述定时器。

6.根据权利要求1所述的提高系统内存利用率的方法,其特征在于,所述提高系统内存利用率的方法还包括:步骤S6:于所述步骤S5之后,所述缓存释放线程运行后,对所述所有用户进程的用户态堆栈内存情况进行检查并调用所述堆栈收缩函数,以释放所述用户态堆栈内存。

7.根据权利要求6所述的提高系统内存利用率的方法,其特征在于,所述提高系统内存利用率的方法还包括:步骤S7:于所述步骤S6之后,当堆栈指针连续N次向上穿过页边界地址时,所述CPU中断并执行所述堆栈收缩函数,以释放当前运行进程堆栈的内存;

其中,所述N为预设值,同时所述N为正整数并且大于1。

8.根据权利要求7所述的提高系统内存利用率的方法,其特征在于,所述步骤S7还包括:在系统初始化函数trap init中,通过set trap gate函数设置所述堆栈收缩函数的封装函数为中断处理函数。