最新的毛片基地免费,国产国语一级毛片,免费国产成人高清在线电影,中天堂国产日韩欧美,中国国产aa一级毛片,国产va欧美va在线观看,成人不卡在线

一種動環(huán)監(jiān)控主機(jī)的內(nèi)核內(nèi)存監(jiān)控方法與流程

文檔序號:11276181閱讀:940來源:國知局
一種動環(huán)監(jiān)控主機(jī)的內(nèi)核內(nèi)存監(jiān)控方法與流程

本發(fā)明涉及模塊化數(shù)據(jù)中心mdc、通信機(jī)房等領(lǐng)域,具體地說是一種動環(huán)監(jiān)控主機(jī)的內(nèi)核內(nèi)存監(jiān)控方法。



背景技術(shù):

模塊化數(shù)據(jù)中心(moduledatacenter,mdc)是基于云計(jì)算的新一代數(shù)據(jù)中心部署形式,為了應(yīng)對云計(jì)算、虛擬化、集中化、高密化等服務(wù)器發(fā)展的趨勢,其采用模塊化設(shè)計(jì)理念,最大程度的降低基礎(chǔ)設(shè)施對機(jī)房環(huán)境的耦合。集成了供配電、制冷、機(jī)柜、氣流遏制、綜合布線、動環(huán)監(jiān)控、消防等子系統(tǒng),提高數(shù)據(jù)中心的整體運(yùn)營效率,實(shí)現(xiàn)快速部署、彈性擴(kuò)展和綠色節(jié)能。

linux操作系統(tǒng)內(nèi)核空間和用戶空間頁表的管理方式不同,具體來說,每個(gè)進(jìn)程都有不同的用戶空間頁表,而內(nèi)核對于訪問內(nèi)存時(shí)需要的頁表是單獨(dú)進(jìn)行管理的,有單獨(dú)的內(nèi)核頁表,進(jìn)程的頁表會與內(nèi)核主頁表進(jìn)行同步,所有進(jìn)程共享linux的內(nèi)核空間。

現(xiàn)有技術(shù)的技術(shù)方案,主要是通過shell腳本實(shí)現(xiàn),一般的操作流程如下:

1)使用free命令查看linux系統(tǒng)內(nèi)存使用情況;

2)查看截取剩余內(nèi)存free的數(shù)值命令;

3)編寫內(nèi)存監(jiān)控的腳本文件;

4)以文本文件的方式保存結(jié)果;

5)查看內(nèi)存監(jiān)控的結(jié)果文件。

目前已經(jīng)存在的腳本可以對內(nèi)存進(jìn)行檢測和監(jiān)控,但是基本都是針對用戶空間的,由于內(nèi)核空間運(yùn)行于特權(quán)級別,所以操作起來更加困難。此外,動態(tài)分析內(nèi)核空間的工具中大多數(shù)針對的是內(nèi)存泄露,溢出等常見錯(cuò)誤的檢測,缺乏對內(nèi)存訪問信息的監(jiān)控工具。



技術(shù)實(shí)現(xiàn)要素:

本發(fā)明的技術(shù)任務(wù)是提供一種動環(huán)監(jiān)控主機(jī)的內(nèi)核內(nèi)存監(jiān)控方法。

本發(fā)明的技術(shù)任務(wù)是按以下方式實(shí)現(xiàn)的,該方法要求linux內(nèi)核是模塊化的,支持模塊的動態(tài)插入;該方法主要由核心模塊、內(nèi)核內(nèi)存訪問信息監(jiān)控模塊、內(nèi)核內(nèi)存溢出檢測模塊、內(nèi)核內(nèi)存統(tǒng)計(jì)信息模塊和界面統(tǒng)一展示模塊實(shí)現(xiàn);

所述的核心模塊是基礎(chǔ)模塊,會捕獲所監(jiān)控內(nèi)核內(nèi)存的全部訪問,并提供訪問處理接口和管理監(jiān)控內(nèi)存的接口;

所述的內(nèi)核內(nèi)存訪問信息監(jiān)控模塊對所監(jiān)控內(nèi)存的所有訪問都進(jìn)行具體判斷處理;

所述的內(nèi)核內(nèi)存溢出檢測模塊檢測linux內(nèi)核模塊的動態(tài)內(nèi)存訪問越界的問題;

所述的內(nèi)核內(nèi)存統(tǒng)計(jì)信息模塊用于統(tǒng)計(jì)讀寫操作、進(jìn)程、用戶信息;

所述的界面統(tǒng)一展示模塊用于通過圖形化界面展現(xiàn)監(jiān)控結(jié)果,實(shí)時(shí)監(jiān)控訪問內(nèi)存信息。

所述的核心模塊對外提供兩類接口,一類注冊或注銷的接口,用來注冊或者注銷監(jiān)控模塊的接口;另一類添加或刪除監(jiān)控內(nèi)存的接口,用來控制所要監(jiān)控的內(nèi)存模塊的范圍。

所述的內(nèi)核內(nèi)存監(jiān)控方法的步驟如下:

1)向核心模塊動態(tài)添加內(nèi)核內(nèi)存訪問信息監(jiān)控模塊;

2)向核心模塊動態(tài)添加內(nèi)核內(nèi)存溢出檢測模塊;

3)向核心模塊動態(tài)添加內(nèi)核內(nèi)存統(tǒng)計(jì)信息監(jiān)控模塊;

4)向核心模塊成功注冊后,內(nèi)核內(nèi)存訪問信息監(jiān)控模塊利用通知機(jī)制等待訪問內(nèi)存;

5)內(nèi)核內(nèi)存訪問,向核心模塊添加需要監(jiān)控檢測內(nèi)存信息,對于特別危險(xiǎn)的行為設(shè)置強(qiáng)制結(jié)束;

6)進(jìn)程產(chǎn)生缺頁異常;

7)判斷是否因監(jiān)控引起的缺頁異常;

8)否,系統(tǒng)正常處理;

9)是,進(jìn)入內(nèi)核內(nèi)存訪問信息監(jiān)控模塊進(jìn)行處理;

10)根據(jù)當(dāng)前寄存器的信息和當(dāng)前的進(jìn)程控制塊current來記錄進(jìn)程的訪問信息;

11)設(shè)置頁表項(xiàng)pte為頁存在狀態(tài);

12)修改標(biāo)志寄存器為單步調(diào)試;

13)內(nèi)核內(nèi)存正常訪問;

14)產(chǎn)生單步中斷,然后通知機(jī)制會通知內(nèi)核內(nèi)存溢出檢測模塊,啟動內(nèi)核內(nèi)存溢出檢測模塊;

15)復(fù)制可執(zhí)行代碼到內(nèi)核空間,內(nèi)核內(nèi)存溢出檢測模塊做預(yù)處理,隨后繼續(xù)執(zhí)行初始化函數(shù);

16)內(nèi)核內(nèi)存溢出檢測的主要方法是在申請內(nèi)存塊的時(shí)候,增加申請內(nèi)存的大小,將這些申請額外的空間作為檢測區(qū)域;然后向核心模塊添加這個(gè)較大的內(nèi)存塊;當(dāng)訪問該內(nèi)存塊時(shí),通過判斷是否訪問到了邊界區(qū)域來確定是否發(fā)生了內(nèi)存越界訪問;

17)進(jìn)入內(nèi)核內(nèi)存訪問信息監(jiān)控模塊,設(shè)置頁表項(xiàng)pte為缺頁狀態(tài),恢復(fù)標(biāo)志寄存器;

18)進(jìn)入內(nèi)核內(nèi)存統(tǒng)計(jì)信息模塊,對于同一個(gè)進(jìn)程,信息只記錄一份,包括對該內(nèi)存的讀、寫次數(shù),訪問時(shí)間;

19)可視化界面統(tǒng)一展示模塊讀取內(nèi)核內(nèi)存監(jiān)控結(jié)果,并在用戶空間進(jìn)行呈現(xiàn);

20)重復(fù)(5)~(19)步驟,完成循環(huán)監(jiān)控過程。

本發(fā)明的一種動環(huán)監(jiān)控主機(jī)的內(nèi)核內(nèi)存監(jiān)控方法和現(xiàn)有技術(shù)相比,有助于動環(huán)監(jiān)控主機(jī)的linux調(diào)試,尤其是在涉及底層驅(qū)動代碼調(diào)試時(shí),可以快速定位程序的內(nèi)存訪問位置,有利于開發(fā)及調(diào)試中深層次問題的定位,提升動環(huán)監(jiān)控主機(jī)的穩(wěn)定性與可靠性,并保障業(yè)務(wù)系統(tǒng)的穩(wěn)定、可靠運(yùn)行。

附圖說明

附圖1為一種動環(huán)監(jiān)控主機(jī)的內(nèi)核內(nèi)存監(jiān)控方法的系統(tǒng)架構(gòu)圖。

附圖2為一種動環(huán)監(jiān)控主機(jī)的內(nèi)核內(nèi)存監(jiān)控方法的流程示意圖。

具體實(shí)施方式

實(shí)施例1:

該方法要求linux內(nèi)核是模塊化的,支持模塊的動態(tài)插入;該方法主要由核心模塊、內(nèi)核內(nèi)存訪問信息監(jiān)控模塊、內(nèi)核內(nèi)存溢出檢測模塊、內(nèi)核內(nèi)存統(tǒng)計(jì)信息模塊和界面統(tǒng)一展示模塊實(shí)現(xiàn);

所述的核心模塊是基礎(chǔ)模塊,會捕獲所監(jiān)控內(nèi)核內(nèi)存的全部訪問,并提供訪問處理接口和管理監(jiān)控內(nèi)存的接口;所述的核心模塊對外提供兩類接口,一類注冊或注銷的接口,用來注冊或者注銷監(jiān)控模塊的接口;另一類添加或刪除監(jiān)控內(nèi)存的接口,用來控制所要監(jiān)控的內(nèi)存模塊的范圍。

所述的內(nèi)核內(nèi)存訪問信息監(jiān)控模塊對所監(jiān)控內(nèi)存的所有訪問都進(jìn)行具體判斷處理;

所述的內(nèi)核內(nèi)存溢出檢測模塊檢測linux內(nèi)核模塊的動態(tài)內(nèi)存訪問越界的問題;

所述的內(nèi)核內(nèi)存統(tǒng)計(jì)信息模塊用于統(tǒng)計(jì)讀寫操作、進(jìn)程、用戶信息;

所述的界面統(tǒng)一展示模塊用于通過圖形化界面展現(xiàn)監(jiān)控結(jié)果,實(shí)時(shí)監(jiān)控訪問內(nèi)存信息。

所述的內(nèi)核內(nèi)存監(jiān)控方法的步驟如下:

1)向核心模塊動態(tài)添加內(nèi)核內(nèi)存訪問信息監(jiān)控模塊;

2)向核心模塊動態(tài)添加內(nèi)核內(nèi)存溢出檢測模塊;

3)向核心模塊動態(tài)添加內(nèi)核內(nèi)存統(tǒng)計(jì)信息監(jiān)控模塊;

4)向核心模塊成功注冊后,內(nèi)核內(nèi)存訪問信息監(jiān)控模塊利用通知機(jī)制等待訪問內(nèi)存;

5)內(nèi)核內(nèi)存訪問,向核心模塊添加需要監(jiān)控檢測內(nèi)存信息,對于特別危險(xiǎn)的行為設(shè)置強(qiáng)制結(jié)束;

6)進(jìn)程產(chǎn)生缺頁異常;

7)判斷是否因監(jiān)控引起的缺頁異常;

8)否,系統(tǒng)正常處理;

9)是,進(jìn)入內(nèi)核內(nèi)存訪問信息監(jiān)控模塊進(jìn)行處理;

10)根據(jù)當(dāng)前寄存器的信息和當(dāng)前的進(jìn)程控制塊current來記錄進(jìn)程的訪問信息;

11)設(shè)置頁表項(xiàng)pte為頁存在狀態(tài);

12)修改標(biāo)志寄存器為單步調(diào)試;

13)內(nèi)核內(nèi)存正常訪問;

14)產(chǎn)生單步中斷,然后通知機(jī)制會通知內(nèi)核內(nèi)存溢出檢測模塊,啟動內(nèi)核內(nèi)存溢出檢測模塊;

15)復(fù)制可執(zhí)行代碼到內(nèi)核空間,內(nèi)核內(nèi)存溢出檢測模塊做預(yù)處理,隨后繼續(xù)執(zhí)行初始化函數(shù);

16)內(nèi)核內(nèi)存溢出檢測的主要方法是在申請內(nèi)存塊的時(shí)候,增加申請內(nèi)存的大小,將這些申請額外的空間作為檢測區(qū)域;然后向核心模塊添加這個(gè)較大的內(nèi)存塊;當(dāng)訪問該內(nèi)存塊時(shí),通過判斷是否訪問到了邊界區(qū)域來確定是否發(fā)生了內(nèi)存越界訪問;

17)進(jìn)入內(nèi)核內(nèi)存訪問信息監(jiān)控模塊,設(shè)置頁表項(xiàng)pte為缺頁狀態(tài),恢復(fù)標(biāo)志寄存器;

18)進(jìn)入內(nèi)核內(nèi)存統(tǒng)計(jì)信息模塊,對于同一個(gè)進(jìn)程,信息只記錄一份,包括對該內(nèi)存的讀、寫次數(shù),訪問時(shí)間;

19)可視化界面統(tǒng)一展示模塊讀取內(nèi)核內(nèi)存監(jiān)控結(jié)果,并在用戶空間進(jìn)行呈現(xiàn);

20)重復(fù)(5)~(19)步驟,完成循環(huán)監(jiān)控過程。

通過上面具體實(shí)施方式,所述技術(shù)領(lǐng)域的技術(shù)人員可容易的實(shí)現(xiàn)本發(fā)明。但是應(yīng)當(dāng)理解,本發(fā)明并不限于上述的幾種具體實(shí)施方式。在公開的實(shí)施方式的基礎(chǔ)上,所述技術(shù)領(lǐng)域的技術(shù)人員可任意組合不同的技術(shù)特征,從而實(shí)現(xiàn)不同的技術(shù)方案。

當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1