[發(fā)明專利]一種基于Linux內(nèi)核頁表替換的內(nèi)存訪問模型追蹤方法有效
| 申請(qǐng)?zhí)枺?/td> | 200910086939.3 | 申請(qǐng)日: | 2009-06-11 |
| 公開(公告)號(hào): | CN101604283A | 公開(公告)日: | 2009-12-16 |
| 發(fā)明(設(shè)計(jì))人: | 王雷;王政;李子星 | 申請(qǐng)(專利權(quán))人: | 北京航空航天大學(xué) |
| 主分類號(hào): | G06F11/34 | 分類號(hào): | G06F11/34 |
| 代理公司: | 北京科迪生專利代理有限責(zé)任公司 | 代理人: | 李新華;徐開翟 |
| 地址: | 100191*** | 國省代碼: | 北京;11 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 基于 linux 內(nèi)核 替換 內(nèi)存 訪問 模型 追蹤 方法 | ||
1.一種基于Linux內(nèi)核進(jìn)程頁表替換的內(nèi)存訪問模型追蹤方法,其特征在于包括以下步驟:
(1)引導(dǎo)程序創(chuàng)建出一個(gè)子進(jìn)程來執(zhí)行要統(tǒng)計(jì)內(nèi)存訪問模型的目標(biāo)程序,在目標(biāo)程序執(zhí)行之前,父進(jìn)程通過向Linux內(nèi)核添加的系統(tǒng)調(diào)用a來啟動(dòng)統(tǒng)計(jì)過程,并將要統(tǒng)計(jì)的目標(biāo)進(jìn)程號(hào)傳遞進(jìn)內(nèi)核;
(2)另外申請(qǐng)一個(gè)頁表,稱之為假頁表,假頁表中對(duì)于非代碼段的頁面只保留一項(xiàng),如果當(dāng)前進(jìn)程沒有一直訪問某個(gè)地址,則對(duì)非代碼段的每次內(nèi)存訪問都會(huì)產(chǎn)生缺頁中斷;如果當(dāng)前進(jìn)程一直訪問某個(gè)地址,則對(duì)非代碼段的每次內(nèi)存訪問都不會(huì)產(chǎn)生缺頁中斷;在切換到目標(biāo)進(jìn)程的時(shí)候?qū)⒓夙摫淼牡刂穫鬟f給cr3寄存器,使操作系統(tǒng)與假頁表建立聯(lián)系;
(3)目標(biāo)進(jìn)程開始執(zhí)行,由于使用了假頁表,目標(biāo)程序的每次訪問內(nèi)存都會(huì)觸發(fā)缺頁中斷,在處理缺頁中斷時(shí),記錄訪問的內(nèi)存頁號(hào)和訪問次數(shù),即內(nèi)存訪問模型;通過向Linux內(nèi)核添加的系統(tǒng)調(diào)用c將內(nèi)存訪問模型數(shù)據(jù)取出到用戶態(tài);
(4)目標(biāo)進(jìn)程執(zhí)行完后,通過向Linux內(nèi)核添加的系統(tǒng)調(diào)用b結(jié)束統(tǒng)計(jì)過程。
2.根據(jù)權(quán)利要求1所述的一種基于Linux內(nèi)核進(jìn)程頁表替換的內(nèi)存訪問模型追蹤方法,其特征在于:在所述步驟(1)中系統(tǒng)調(diào)用a為向Linux內(nèi)核中添加的新系統(tǒng)調(diào)用,用來啟動(dòng)統(tǒng)計(jì)過程和變量初始化工作;系統(tǒng)調(diào)用a首先判斷要統(tǒng)計(jì)的目標(biāo)進(jìn)程號(hào)是否已經(jīng)設(shè)置,如果已經(jīng)設(shè)置,說明另一個(gè)內(nèi)存訪問模型的統(tǒng)計(jì)正在進(jìn)行,則啟動(dòng)失敗;如果未設(shè)置,則設(shè)置目標(biāo)進(jìn)程號(hào)為引導(dǎo)程序傳遞給系統(tǒng)調(diào)用a的進(jìn)程號(hào);然后系統(tǒng)調(diào)用a初始化內(nèi)存訪問模型追蹤所需要的變量并創(chuàng)建所述的假頁表,將頁表地址設(shè)置為假頁表的地址,同時(shí)備份真頁表的地址。
3.根據(jù)權(quán)利要求1所述的一種基于Linux內(nèi)核進(jìn)程頁表替換的內(nèi)存訪問模型追蹤方法,其特征在于:在所述步驟(2)中的假頁表與真頁表的關(guān)系為:在假頁表每次觸發(fā)缺頁中斷后,首先通過真頁表判斷是否真正缺頁:若不缺頁,則將真頁表中保存的物理頁信息復(fù)制到假頁表中;若缺頁,則將要訪問的頁面加載入物理內(nèi)存中,同時(shí)將真頁表中對(duì)應(yīng)項(xiàng)的值復(fù)制到假頁表中;最后將離開的頁面在假頁表中的表項(xiàng)值清零;這樣,假頁表中只有當(dāng)前進(jìn)程所處理的頁面有對(duì)應(yīng)的物理頁信息。
4.根據(jù)權(quán)利要求1所述的一種基于Linux內(nèi)核進(jìn)程頁表替換的內(nèi)存訪問模型追蹤方法,其特征在于:在所述步驟(3)中系統(tǒng)調(diào)用c為向Linux內(nèi)核中添加的新系統(tǒng)調(diào)用,引導(dǎo)程序通過不斷調(diào)用系統(tǒng)調(diào)用c將追蹤到的內(nèi)存訪問模型數(shù)據(jù)取出到用戶態(tài)。
5.根據(jù)權(quán)利要求1所述的一種基于Linux內(nèi)核進(jìn)程頁表替換的內(nèi)存訪問模型追蹤方法,其特征在于:在所述步驟(4)中系統(tǒng)調(diào)用b為向Linux內(nèi)核中添加的新系統(tǒng)調(diào)用,系統(tǒng)調(diào)用b負(fù)責(zé)終止統(tǒng)計(jì)過程;其主要有2個(gè)工作,一是將要統(tǒng)計(jì)的目標(biāo)進(jìn)程號(hào)歸0,二是釋放已經(jīng)沒用的假頁表。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于北京航空航天大學(xué),未經(jīng)北京航空航天大學(xué)許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/200910086939.3/1.html,轉(zhuǎn)載請(qǐng)聲明來源鉆瓜專利網(wǎng)。
- 同類專利
- 專利分類
G06F 電數(shù)字?jǐn)?shù)據(jù)處理
G06F11-00 錯(cuò)誤檢測(cè);錯(cuò)誤校正;監(jiān)控
G06F11-07 .響應(yīng)錯(cuò)誤的產(chǎn)生,例如,容錯(cuò)
G06F11-22 .在準(zhǔn)備運(yùn)算或者在空閑時(shí)間期間內(nèi),通過測(cè)試作故障硬件的檢測(cè)或定位
G06F11-28 .借助于檢驗(yàn)標(biāo)準(zhǔn)程序或通過處理作錯(cuò)誤檢測(cè)、錯(cuò)誤校正或監(jiān)控
G06F11-30 .監(jiān)控
G06F11-36 .通過軟件的測(cè)試或調(diào)試防止錯(cuò)誤
- LINUX內(nèi)核動(dòng)態(tài)加載方法
- 一種Linux嵌入式系統(tǒng)的安全啟動(dòng)方法
- 一種加快嵌入式Linux系統(tǒng)啟動(dòng)的方法
- Linux文件系統(tǒng)的多點(diǎn)備份和實(shí)時(shí)保護(hù)方法
- 基于硬件的Linux軟件開發(fā)系統(tǒng)及其構(gòu)建方法
- 將VxWorks任務(wù)移植到Linux的方法及裝置
- 一種Linux內(nèi)核接管socket鏈接的方法和裝置
- 一種Linux系統(tǒng)的備份和還原方法
- 一種基于Linux系統(tǒng)盤的寫過濾系統(tǒng)和方法
- 一種基于Linux系統(tǒng)盤的熱插拔方法和系統(tǒng)





