[發明專利]基于共享內存的軟件運行過程實時監測與控制方法及系統有效
| 申請號: | 201410766205.0 | 申請日: | 2014-12-11 |
| 公開(公告)號: | CN105740120B | 公開(公告)日: | 2018-08-17 |
| 發明(設計)人: | 王永炎;王蓋;姚化壯;紀文杰;李昕龍;羅雄飛 | 申請(專利權)人: | 中國科學院軟件研究所 |
| 主分類號: | G06F11/30 | 分類號: | G06F11/30;G06F11/36 |
| 代理公司: | 北京君尚知識產權代理事務所(普通合伙) 11200 | 代理人: | 余長江 |
| 地址: | 100190 *** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 基于 共享 內存 軟件 運行 過程 實時 監測 控制 方法 系統 | ||
1.一種基于共享內存的軟件運行過程實時監測與控制方法,其步驟包括:
1)被監控程序調用共享內存管理接口創建共享內存,監控程序調用共享內存管理接口獲取共享內存;
2)在監測軟件時,被監控程序將待監測變量或統計變量的值寫入共享內存,用于監測軟件運行過程,監控程序讀取待監測變量或統計變量的值,展示給用戶或進行存儲;
3)在控制軟件時,監控程序將控制變量的值寫入共享內存,被監控程序從共享內存中讀取控制變量值,根據控制變量的值決定執行流程,實現實時的流程控制;
在被監控程序中注入代碼,完成向共享內存中寫入待監測變量與統計變量的值、讀取控制變量的值以及執行控制代碼的功能;在監控程序中,設置讀取周期,編寫讀取代碼、控制代碼以及結果處理代碼,將讀取及控制結果展示給用戶或進行存儲;
步驟2)中,當被監測程序運行到注入的代碼時,更新待監測變量或統計變量的值,并通過對結構體的寫操作,修改共享內存中對應的變量值,完成待監測變量和統計變量的數值更新;監控程序周期性地對結構體執行讀操作,獲取共享內存中對應的待監測變量與統計變量的值,并將監測結果展示給用戶或寫入實時數據庫進行歷史數據存儲,用于展示、跟蹤、追溯軟件運行變化過程。
2.如權利要求1所述的方法,其特征在于:步驟1)創建由待監測變量及統計變量組成的結構體,在創建共享內存后將共享內存映射到該結構體上。
3.如權利要求1所述的方法,其特征在于:步驟3)中,監控程序根據實際需求,通過對結構體執行寫操作,將控制變量值寫入共享內存中;當被監控程序執行到預先注入的控制代碼時,通過對結構體進行讀操作,獲取相應的控制變量的值,并將該值與控制條件進行對比,如果滿足控制條件,則執行控制,更改程序的執行流程,否則,繼續執行原有流程。
4.如權利要求1所述的方法,其特征在于,所述共享內存管理接口在Linux環境下實現,具體是:
int InitShmInfo(void**pp_myParam,int*p_myShm_id,key_t myShm_key,size_tmyShm_size);
其中,pp_myParam為指向存放待監測變量與控制變量結構體指針的指針,用于返回指向共享內存的指針;p_myShm_id返回共享內存的引用標識符,用于共享內存的清理操作;myShm_key為共享內存的鍵值,用于判斷對應的共享內存是否已經被創建,監控程序與被監控程序的鍵值必須相同;myShm_size為共享內存區域的大小。
5.如權利要求1所述的方法,其特征在于,所述共享內存管理接口在Windows環境下實現,具體是:
int InitShmInfo(void**pp_myParam,HANDLE*ghMapObjectHandle,LPCTSTR lpName,DWORD size);
其中,pp_myParam為指向存放待監測變量與控制變量結構體指針的指針,用于返回指向共享內存的指針;ghMapObjectHandle返回共享內存的文件映射句柄,可用于共享內存的清理操作;lpName為共享內存名稱,監控程序與被監控程序中共享內存名稱必須相同,size為共享內存區域的大小。
6.權利要求1-5中任一項所述方法用于下列應用場景中的一種或多種:判斷程序執行到的步驟,統計一個條件被滿足的次數,獲取一個局部或全局變量的當前值,統計一段代碼的執行時間,控制一段代碼是否執行,在多個執行分支中選擇一個,改變一段代碼的執行條件。
7.一種采用權利要求1所述方法的基于共享內存的軟件運行過程實時監測與控制系統,其特征在于,包括監控程序、被監控程序、共享內存及共享內存管理接口;被監控程序調用共享內存管理接口創建共享內存,監控程序調用共享內存管理接口獲取共享內存;在監測軟件時,被監控程序將待監測變量或統計變量的值寫入共享內存,用于監測軟件運行過程,監控程序讀取待監測變量或統計變量的值,展示給用戶或進行存儲;在控制軟件時,監控程序將控制變量的值寫入共享內存,被監控程序從共享內存中讀取控制變量值,根據控制變量的值決定執行流程,實現實時的流程控制。
8.如權利要求7所述的系統,其特征在于:還包括由待監測變量及統計變量組成的結構體,在創建共享內存后將共享內存映射到該結構體上。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于中國科學院軟件研究所,未經中國科學院軟件研究所許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201410766205.0/1.html,轉載請聲明來源鉆瓜專利網。





