[發明專利]提高系統內存利用率的方法有效
| 申請號: | 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.szxzyx.cn/pat/books/201510638512.5/1.html,轉載請聲明來源鉆瓜專利網。





