[發(fā)明專利]一種計算機(jī)及多操作系統(tǒng)共享內(nèi)存的方法有效
| 申請?zhí)枺?/td> | 200910080933.5 | 申請日: | 2009-03-26 |
| 公開(公告)號: | CN101847105A | 公開(公告)日: | 2010-09-29 |
| 發(fā)明(設(shè)計)人: | 陳軍;席振新 | 申請(專利權(quán))人: | 聯(lián)想(北京)有限公司 |
| 主分類號: | G06F9/455 | 分類號: | G06F9/455;G06F12/08 |
| 代理公司: | 北京銀龍知識產(chǎn)權(quán)代理有限公司 11243 | 代理人: | 許靜 |
| 地址: | 100085 北京市*** | 國省代碼: | 北京;11 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 計算機(jī) 操作系統(tǒng) 共享 內(nèi)存 方法 | ||
技術(shù)領(lǐng)域
本發(fā)明涉及計算機(jī)的虛擬技術(shù)領(lǐng)域,特別是指一種計算機(jī)及多操作系統(tǒng)共享內(nèi)存的方法。
背景技術(shù)
如圖1所示,為計算機(jī)的虛擬架構(gòu)示意圖,該架構(gòu)包括:位于計算機(jī)底層的硬件平臺,運行在硬件平臺之上的虛擬機(jī)管理器(VMM,Virtual?Machine?Manager),安裝在虛擬機(jī)管理器VMM之上的多個操作系統(tǒng),其中一個操作系統(tǒng)為Server?OS(服務(wù)操作系統(tǒng),簡稱SOS),其余為Guest?OS,即客戶操作系統(tǒng),該客戶操作系統(tǒng)可以為多個,用戶可以在Guest?OS中進(jìn)行各種應(yīng)用操作,但這些應(yīng)用操作涉及的對底層硬件平臺中硬件設(shè)備的操作時,需要通過Server?OS進(jìn)行傳輸,比如Guest?OS系統(tǒng)中QEMU(是一個模擬加速器軟件,可以模擬出用戶空間和電腦的系統(tǒng)空間)模擬出來的虛擬設(shè)備需要和Server?OS中的虛擬設(shè)備進(jìn)行通訊,Guest?OS的前端應(yīng)用和Server?OS中的后端驅(qū)動也需要進(jìn)行通訊。對于會發(fā)生大量數(shù)據(jù)傳輸?shù)挠布O(shè)備來說,每次讀寫操作,都將涉及到前后端的大量數(shù)據(jù)拷貝。
如圖2所示,Guest?OS與Server?OS之間數(shù)據(jù)傳輸最常用的方式就是Grant?Table(授權(quán)訪問頁表)的共享內(nèi)存方式。這種方式是:虛擬機(jī)管理器從硬件平臺中的物理內(nèi)存中,為Guest?OS中分配一段虛擬內(nèi)存(見圖2中的虛線框所表示的Grant?Table共享內(nèi)存),然后通過地址轉(zhuǎn)換得到這段虛擬內(nèi)存的物理內(nèi)存地址,在Server?OS中,再通過地址映射,根據(jù)該物理內(nèi)存地址得到在Server?OS中能夠直接訪問的虛擬地址。這樣,在前后端之間或QEMU設(shè)備之間,就能夠同時對該共享內(nèi)存進(jìn)行讀寫。
然而,Guest?OS的前端應(yīng)用在給Grant?Table的共享內(nèi)存中寫入數(shù)據(jù)后,Server?OS中的后端驅(qū)動能夠直接讀到數(shù)據(jù)。這些數(shù)據(jù)是在虛擬地址空間的,當(dāng)這些數(shù)據(jù)往真正設(shè)備上發(fā)送時,往往還需要將數(shù)據(jù)從Grant?Table的共享內(nèi)存拷貝到Server?OS中的DMA內(nèi)存中,以便對硬件設(shè)備的訪問。這樣的話,在Server?OS中的應(yīng)用,對1個讀/寫操作來說,就需要一次內(nèi)存拷貝,即將數(shù)據(jù)從Grant?Table的共享內(nèi)存中,拷貝到設(shè)備能夠直接訪問的DMA內(nèi)存中。這樣的方式會帶來一個問題,頻繁的內(nèi)存拷貝,會經(jīng)常修改和刷新CPU的TLB(Translation?Lookaside?Buffer,旁路轉(zhuǎn)換緩沖,是虛擬地址到物理地址的轉(zhuǎn)換表)表,這樣在系統(tǒng)負(fù)載比較重的情況下,對計算機(jī)的整體性能會產(chǎn)生很大的影響。
發(fā)明人在實現(xiàn)本發(fā)明的過程中,發(fā)現(xiàn)現(xiàn)有技術(shù)中至少存在如下問題:
現(xiàn)有的虛擬機(jī)架構(gòu)中,計算機(jī)的多個操作系統(tǒng)之間進(jìn)行數(shù)據(jù)傳輸時,會涉及大量的數(shù)據(jù)拷貝,這樣,會嚴(yán)重影響計算機(jī)的整體性能。
發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問題是提供一種計算機(jī)及多操作系統(tǒng)共享內(nèi)存的方法,使計算機(jī)多操作系統(tǒng)能夠?qū)σ粔K共享內(nèi)存進(jìn)行直接讀/寫,而不需要多次將Guest?OS的訪問數(shù)據(jù)進(jìn)行拷貝,這樣大大提高了計算機(jī)的多操作系統(tǒng)之間的數(shù)據(jù)傳輸效率,進(jìn)而提高計算機(jī)的整體性能。
為解決上述技術(shù)問題,本發(fā)明的實施例提供技術(shù)方案如下:
一方面,提供一種計算機(jī),包括:
硬件平臺,具有物理內(nèi)存和硬件設(shè)備;
虛擬機(jī)管理器,運行在所述硬件平臺上;
第一操作系統(tǒng),運行在所述虛擬機(jī)管理器上;
第二操作系統(tǒng),運行在所述虛擬機(jī)管理器上;
所述虛擬機(jī)管理器包括:
分配模塊,用于在所述物理內(nèi)存中,為所述第一操作系統(tǒng)和所述第二操作系統(tǒng)分配一共享內(nèi)存,所述共享內(nèi)存具有連續(xù)內(nèi)存地址;
第一操作模塊,用于接收所述第一操作系統(tǒng)發(fā)出的訪問數(shù)據(jù),并將所述訪問數(shù)據(jù)直接存儲在所述共享內(nèi)存中,或者將所述共享內(nèi)存中存儲的訪問結(jié)果數(shù)據(jù)發(fā)送至所述第一操作系統(tǒng);
第二操作模塊,用于將所述訪問數(shù)據(jù)發(fā)送至所述第二操作系統(tǒng),接收所述第二操作系統(tǒng)根據(jù)所述訪問數(shù)據(jù)返回的所述訪問結(jié)果數(shù)據(jù),并將所述訪問結(jié)果數(shù)據(jù)直接存儲在所述共享內(nèi)存中。
優(yōu)選的,所述第一操作系統(tǒng)包括:
第一獲取模塊,用于獲取所述共享內(nèi)存的機(jī)器物理地址,并將所述共享內(nèi)存的機(jī)器物理地址映射成所述第一操作系統(tǒng)能夠直接訪問的第一虛擬地址;
第一處理模塊,用于根據(jù)所述第一虛擬地址將所述訪問數(shù)據(jù)發(fā)送給所述第一操作模塊,并存儲到所述共享內(nèi)存中,或者從所述第一操作模塊接收所述訪問結(jié)果數(shù)據(jù)。
優(yōu)選的,所述第二操作系統(tǒng)包括:
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于聯(lián)想(北京)有限公司,未經(jīng)聯(lián)想(北京)有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/200910080933.5/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 上一篇:MAC層和射頻端交互方法
- 下一篇:一種配電柜
- 雙桌面遠(yuǎn)程控制系統(tǒng)及方法
- 一種基于網(wǎng)絡(luò)的計算機(jī)信息檢索系統(tǒng)與方法
- 一種基于網(wǎng)絡(luò)的計算機(jī)信息檢索系統(tǒng)與方法
- 一種基于網(wǎng)絡(luò)的計算機(jī)信息檢索系統(tǒng)與方法
- 雙計算機(jī)系統(tǒng)
- 制導(dǎo)雷達(dá)計算機(jī)系統(tǒng)
- 一種服務(wù)部署方法及裝置
- 一種計算機(jī)集成系統(tǒng)及故障自動切換方法
- 一種計算機(jī)信息安全監(jiān)控系統(tǒng)
- 混合型量子計算機(jī)架構(gòu)及其執(zhí)行計算任務(wù)的方法





