[發明專利]線程棧的處理方法及系統有效
| 申請號: | 201710001925.1 | 申請日: | 2017-01-03 |
| 公開(公告)號: | CN106648549B | 公開(公告)日: | 2019-03-19 |
| 發明(設計)人: | 宋曉眉;李海翔 | 申請(專利權)人: | 北京華勝信泰數據技術有限公司;華勝信泰信息產業發展有限公司 |
| 主分類號: | G06F9/30 | 分類號: | G06F9/30 |
| 代理公司: | 北京華進京聯知識產權代理有限公司 11606 | 代理人: | 王程 |
| 地址: | 100192 北京市海淀區學*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 線程 處理 方法 系統 | ||
本發明提供一種線程棧的處理方法及系統。其中處理方法包括:根據線程調用的調用函數獲得調用函數對應的函數數據;將函數數據寫入線程棧,并獲取函數數據在寫入線程棧時在所述線程棧中的棧頂地址;判斷棧頂地址是否位于線程棧的棧保護區之內;如果棧頂地址位于棧保護區內,則擴展線程棧的內存空間,并在擴展后的線程棧的內存空間中根據棧保護區的內存空間大小重新設置線程棧的棧保護區,使棧頂地址位于重設的棧保護區之外。其通過獲取函數數據在線程棧中的棧頂地址來實時有效地監控函數數據對線程棧的使用情況,并通過在線程棧中設置棧保護區來防止線程棧的溢出。
技術領域
本發明涉及計算機的線程技術領域,特別是涉及一種線程棧的處理方法及系統。
背景技術
線程技術是計算機軟件領域中并發處理業務的核心技術,其與CPU(CentralProcessing Unit,中央處理器)硬件直接關聯,且所有線程技術的實現原理一致。而維護線程棧內存又是線程技術的核心點之一,在POSIX Thread(多線程編程)的實現中,線程棧的內存空間大小通常默認設置或由用戶自己設置為一個不容易溢出的大小,但一旦被設置之后就不允許再被修改。通常情況下,線程棧的內存空間大小不需要很大,能夠滿足一般的函數調用就可以滿足程序線程的正常運行,但是如果調用比較大的函數時,如:在調用main函數(主函數)時將會使線程棧的內存空間不夠用,此時如果不能及時防止這種情況出現,會直接導致計算機宕機。
發明內容
基于此,有必要針對傳統在調用較大的函數時線程棧的內存空間不夠用的問題,提供一種能夠有效避免線程棧溢出的線程棧的處理方法及系統。
為達到發明目的,提供一種線程棧的處理方法,所述處理方法包括:
根據線程調用的調用函數獲得所述調用函數對應的函數數據;
將所述函數數據寫入線程棧,并獲取所述函數數據在寫入所述線程棧時在所述線程棧中的棧頂地址;
判斷所述棧頂地址是否位于所述線程棧的棧保護區之內;
如果所述棧頂地址位于所述棧保護區內,則擴展所述線程棧的內存空間,并在擴展后的線程棧的內存空間中根據所述棧保護區的內存空間大小重新設置所述線程棧的棧保護區,使所述棧頂地址位于重設的棧保護區之外。
在其中一個實施例中,所述判斷所述棧頂地址是否位于所述線程棧的棧保護區之內的步驟包括:
獲取設置在所述棧保護區內的初始魔數數據,并由所述初始魔數數據中提取所述初始魔數數據的魔數偏移量和魔數占用空間;
根據所述線程棧終止地址和所述魔數偏移量確定所述初始魔數數據的魔數起始地址,并根據所述魔數起始地址和所述魔數占用空間確定所述初始魔數數據的魔數終止地址,其中,所述魔數起始地址與所述魔數終止地址界定的區間為所述初始魔數數據的魔數占用區;
當所述函數數據寫入所述線程棧時,獲取所述魔數占用區中的當前數據;
將所述當前數據與所述初始魔數數據進行比較,并在所述當前數據與所述初始魔數數據不一致時,確定所述棧頂地址位于所述棧保護區內。
在其中一個實施例中,所述擴展所述線程棧的內存空間的步驟包括:
根據所述線程棧的當前內存空間將所述線程棧的內存空間擴展為所述當前內存空間的預設倍數,擴展后的內存空間作為所述線程棧的新內存空間。
在其中一個實施例中,當所述初始魔數數據為多個,每個所述初始魔數數據對應有不同的魔數偏移量時;所述在擴展后的線程棧的內存空間中根據所述棧保護區的內存空間大小重新設置所述線程棧的棧保護區,使所述棧頂地址位于重設的棧保護區之外的步驟包括:
從多個所述初始魔數數據對應的魔數偏移量中獲得最大魔數偏移量,并根據所述最大魔數偏移量和所述魔數占用空間確定所述棧保護區的內存空間大??;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京華勝信泰數據技術有限公司;華勝信泰信息產業發展有限公司,未經北京華勝信泰數據技術有限公司;華勝信泰信息產業發展有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201710001925.1/2.html,轉載請聲明來源鉆瓜專利網。





