[發明專利]一種虛擬機內存映射方法及系統有效
| 申請號: | 201310134852.5 | 申請日: | 2013-04-18 |
| 公開(公告)號: | CN103257929A | 公開(公告)日: | 2013-08-21 |
| 發明(設計)人: | 高云偉;鄔小龍;孫毓忠;詹劍鋒;張立新 | 申請(專利權)人: | 中國科學院計算技術研究所 |
| 主分類號: | G06F12/02 | 分類號: | G06F12/02;G06F9/455 |
| 代理公司: | 北京律誠同業知識產權代理有限公司 11006 | 代理人: | 祁建國;梁揮 |
| 地址: | 100190 北*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 虛擬機 內存 映射 方法 系統 | ||
技術領域
本發明涉及虛擬機內存映射領域,尤其涉及一種虛擬機內存映射方法及系統。
背景技術
虛擬機帶外內存映射是通過一個作為監控虛擬機的虛擬機從外部映射其他虛擬機內存的方法,作為構建安全系統的關鍵技術,正得到越來越廣泛的應用。
當前對該技術的典型應用如虛擬機安全監控,犯罪取證,尤其是本地系統活體取證等。但是目前該技術針對這兩類應用存在兩大固有缺陷,一方面,現有虛擬化平臺虛擬機帶外監控技術均以特權虛擬機(如Xen平臺下Domain0)作為監控虛擬機,忽視了特權虛擬機中龐大的用戶層工具所帶來的安全威脅,同時半虛擬化的特權虛擬機對Windows等閉源操作系統上的特殊應用無法提供支持。另一方面,現有帶外內存映射方法均是以一頁作為單位進行映射。當需要進行大數據映射時,需要循環重復映射,效率低下。同時,一些典型的對帶外內存映射的應用(如本地活體取證等)需要及時快速的獲取整個運行時機器的內存。
發明內容
為解決上述問題,本發明提供了一種虛擬機內存映射方法及系統,能夠很好的滿足不同應用多樣化的需求;大塊內存映射時通過物理空間借用技術及協同使用大頁技術,降低了后續內存訪問時page?fault(頁異常)的次數及TLB?footprint(快表項占用數目),效率極高;已映射的虛擬機內存頁釋放時,能及時地通知給特權機中的程序,以避免訪問過時的數據。
為實現上述發明目的,本發明提供一種虛擬機內存映射方法,該方法包括:
步驟1,根據應用層映射請求選擇內存映射方式,當是小頁內存映射需求時調用小頁映射方式,執行步驟2,當是大頁面內存映射需求時調用大頁映射方式,執行步驟3;
步驟2,將待映射虛擬機的待映射機器頁與監控虛擬機的物理頁綁定,直接讀寫所映射的虛擬機的對應內存,執行步驟4;
步驟3,所述監控虛擬機對物理內存中未使用的物理內存進行處理后,將其虛擬地址空間分解為相應的多個頁組合的物理頁,獲取待映射虛擬機的待映射機器頁,判斷所述待映射機器頁是否與所述監控虛擬機的多個頁組合的物理頁中的任意物理頁大小相同,若相同,直接將所述待映射虛擬機的待映射機器頁與所述監控虛擬機的物理頁綁定,否則繼續分解所述多個頁組合的的物理頁,直至所述待映射的機器頁與所述多個頁組合的物理頁中的任意物理頁大小相同,然后將所述待映射虛擬機的待映射機器頁與所述監控虛擬機的物理頁綁定,執行步驟4;
步驟4,映射結束后,將與所述待映射虛擬機的映射內存對應的所述監控虛擬機內存釋放,設置所述監控虛擬機的機器頁到物理頁映射表,將相應項設為無效機器頁。
進一步的,所述步驟2包括:
步驟21,在所述監控虛擬機內分配n頁內存,并將其鎖定,所述待映射虛擬機的待映射內存大小為n頁;
步驟22,獲取所述監控虛擬機的n頁內存的物理地址,釋放所述物理地址對應的機器頁;
步驟23,獲取所述待映射虛擬機的待映射機器頁,將所述待映射虛擬機的待映射機器頁與所述監控虛擬機的物理地址綁定,并在所述待映射虛擬機的物理頁到機器頁映射表中標記被綁定的內存機器頁為已被映射,同時更新所述監控虛擬機的機器頁到物理頁映射表,使得相應項記錄監控虛擬機物理頁;
步驟24,通過vaddr直接讀寫所映射的虛擬機的對應內存,其中vaddr為所述監控虛擬機內存地址。
進一步的,所述步驟3還包括:
步驟31,在所述監控虛擬機內分配一段大小為n頁的虛擬地址空間,所述待映射虛擬機的待映射內存大小為n頁;
步驟32,將所述虛擬地址空間劃分為1GB頁、2MB頁、4KB頁的頁組合,所述頁組合的頁是對齊的,1GB頁的地址是1GB對齊,2MB頁的地址是2MB對齊,4K頁的地址是4KB對齊;
步驟33,然后將待映射虛擬機的待映射內存機器頁與監控虛擬機的物理頁綁定后,更新所述待映射虛擬機的物理頁到機器頁映射表,并在所述待映射虛擬機的物理頁到機器頁映射表中標記被綁定的內存機器頁為已被映射,同時更新所述監控虛擬機的機器頁到物理頁映射表,使得相應項記錄監控虛擬機物理頁。
步驟34,通過vaddr讀寫所映射的虛擬機的對應內存。
進一步的,所述步驟4之后還包括:
步驟5,更改所述監控虛擬機的虛擬機監控器的缺頁異常處理函數,當所述監控虛擬機再次訪問已釋放的虛擬機內存時,所述監控虛擬機收到通用保護錯誤,并在異常處理函數中解映射或重新映射虛擬機的相應內存。
進一步的,所述步驟3中監控虛擬機對物理內存中未使用的物理內存進行以下處理:
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于中國科學院計算技術研究所,未經中國科學院計算技術研究所許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201310134852.5/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種改進的環保尿褲
- 下一篇:基于軟件測評平臺的項目測試過程管理方法





