欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種虛擬機(jī)系統(tǒng)及被動(dòng)硬件設(shè)備訪問(wèn)方法

文檔序號(hào):6619116閱讀:157來(lái)源:國(guó)知局
專利名稱:一種虛擬機(jī)系統(tǒng)及被動(dòng)硬件設(shè)備訪問(wèn)方法
技術(shù)領(lǐng)域
本發(fā)明涉及虛擬機(jī)技術(shù),特別是一種虛擬機(jī)系統(tǒng)及被動(dòng)硬件設(shè)備訪問(wèn)方法。
背景技術(shù)
現(xiàn)有的虛擬機(jī)可以使用硬件直接訪問(wèn)、硬件模擬、驅(qū)動(dòng)前后端等方式對(duì)硬件設(shè)備 進(jìn)行訪問(wèn)?,F(xiàn)有的虛擬機(jī)系統(tǒng)中,如果采用硬件模擬或驅(qū)動(dòng)前后端的方式來(lái)實(shí)現(xiàn)對(duì)硬件的訪 問(wèn),都存在對(duì)LINUX系統(tǒng)的驅(qū)動(dòng)依賴性比較大和對(duì)新的硬件平臺(tái)兼容性比較差等問(wèn)題,詳 細(xì)說(shuō)明如下。采用硬件模擬的方式來(lái)實(shí)現(xiàn)對(duì)硬件的訪問(wèn)時(shí),由于管理系統(tǒng)是LINUX,這樣對(duì) LINUX系統(tǒng)的驅(qū)動(dòng)依賴性比較大,對(duì)新的硬件平臺(tái)兼容性比較差,另外性能比較差。而采用驅(qū)動(dòng)前后端的方式來(lái)實(shí)現(xiàn)對(duì)硬件的訪問(wèn)時(shí),需要在Windows加入驅(qū)動(dòng),大 大加大了虛擬機(jī)產(chǎn)品的工作量,同時(shí)對(duì)LINUX系統(tǒng)的驅(qū)動(dòng)依賴性也比較大,對(duì)新的硬件平 臺(tái)兼容性比較差。因此,為了解決上述問(wèn)題的存在,出現(xiàn)了使用硬件直接訪問(wèn)的方式來(lái)實(shí)現(xiàn)對(duì)硬件 的訪問(wèn),這種方式不依賴于LINUX系統(tǒng)的驅(qū)動(dòng),而且對(duì)新的硬件平臺(tái)兼容性比較好,然而, 發(fā)明人在實(shí)現(xiàn)本發(fā)明實(shí)施例的過(guò)程中發(fā)現(xiàn),使用硬件直接訪問(wèn)的方式來(lái)實(shí)現(xiàn)對(duì)硬件的訪問(wèn) 存在如下的問(wèn)題現(xiàn)有的虛擬機(jī)系統(tǒng)中,不管硬件是被動(dòng)硬件設(shè)備還是主動(dòng)設(shè)備,任意一個(gè) GOS (Guest Operation System,客戶操作系統(tǒng))采用硬件直接訪問(wèn)的方式對(duì)硬件進(jìn)行訪問(wèn) 時(shí),GOS要求該設(shè)備是被其獨(dú)占的,因此,在多個(gè)系統(tǒng)要求同時(shí)訪問(wèn)同一個(gè)硬件設(shè)備時(shí),從操 作系統(tǒng)層面來(lái)看,除了一個(gè)操作系統(tǒng),其它的操作系統(tǒng)都無(wú)法訪問(wèn)該硬件設(shè)備。

發(fā)明內(nèi)容
本發(fā)明實(shí)施例的目的是提供一種一種虛擬機(jī)系統(tǒng)及被動(dòng)硬件設(shè)備訪問(wèn)方法,使得 從操作系統(tǒng)層面上來(lái)看,虛擬機(jī)中的多個(gè)系統(tǒng)可以同時(shí)訪問(wèn)同一個(gè)被動(dòng)硬件設(shè)備。為了實(shí)現(xiàn)上述目的,本發(fā)明實(shí)施例提供了一種虛擬機(jī)系統(tǒng),包括至少兩個(gè)客戶操 作系統(tǒng)、虛擬機(jī)監(jiān)視器和能被所述至少兩個(gè)客戶操作系統(tǒng)訪問(wèn)的被動(dòng)硬件設(shè)備,所述虛擬 機(jī)監(jiān)視器具體包括緩存模塊;訪問(wèn)通道,用于所述至少兩個(gè)客戶操作系統(tǒng)與所述被動(dòng)硬件設(shè)備之間進(jìn)行交互;命令接收模塊,用于接收從所述至少兩個(gè)客戶操作系統(tǒng)中的第一客戶操作系統(tǒng)發(fā) 送來(lái)的第一訪問(wèn)命令;訪問(wèn)處理模塊,用于判斷所述訪問(wèn)通道的狀態(tài)是否為空閑,在所述訪問(wèn)通道的狀 態(tài)為空閑時(shí),使所述第一客戶操作系統(tǒng)通過(guò)所述訪問(wèn)通道與所述被動(dòng)硬件設(shè)備交互,執(zhí)行 所述第一訪問(wèn)命令,在所述訪問(wèn)通道的狀態(tài)為占用時(shí),將所述第一訪問(wèn)命令存儲(chǔ)到所述緩存模塊,并在所述訪問(wèn)通道的狀態(tài)轉(zhuǎn)變?yōu)榭臻e時(shí),使所述第一客戶操作系統(tǒng)通過(guò)所述訪問(wèn) 通道與所述被動(dòng)硬件設(shè)備交互,執(zhí)行存儲(chǔ)在所述緩存模塊中的所述第一訪問(wèn)命令。上述的虛擬機(jī)系統(tǒng),其中,所述虛擬機(jī)監(jiān)視器還包括通道狀態(tài)設(shè)置模塊,用于設(shè)置所述訪問(wèn)通道的狀態(tài)為空閑或占用;從所述訪問(wèn)處理模塊執(zhí)行一條所述訪問(wèn)命令開始到所述訪問(wèn)命令執(zhí)行完成期間, 所述通道狀態(tài)設(shè)置模塊設(shè)置所述訪問(wèn)通道的狀態(tài)為占用狀態(tài),并在所述訪問(wèn)命令執(zhí)行完成 之后,將所述訪問(wèn)通道的狀態(tài)修改為空閑狀態(tài)。上述的虛擬機(jī)系統(tǒng),其中,所述虛擬機(jī)監(jiān)視器還包括執(zhí)行結(jié)果返回模塊,用于將所述訪問(wèn)處理模塊執(zhí)行所述第一訪問(wèn)命令的執(zhí)行結(jié)果 返回對(duì)應(yīng)的客戶操作系統(tǒng)。上述的虛擬機(jī)系統(tǒng),其中,在從所述被動(dòng)硬件設(shè)備同時(shí)接收到中斷和設(shè)備狀態(tài)空 閑指示時(shí),所述通道狀態(tài)設(shè)置模塊判斷所述訪問(wèn)命令執(zhí)行完成。上述的虛擬機(jī)系統(tǒng),其中,在所述第一訪問(wèn)命令包括兩條或兩條以上的指令時(shí),所 述訪問(wèn)處理模塊具體包括判斷單元,用于判斷所述訪問(wèn)通道的當(dāng)前狀態(tài),獲取一判斷結(jié)果;第一執(zhí)行單元,用于在所述判斷結(jié)果指示所述訪問(wèn)通道為空閑狀態(tài)或占用所述訪 問(wèn)通道的客戶操作系統(tǒng)為所述第一客戶操作系統(tǒng)時(shí),通過(guò)所述訪問(wèn)通道與所述被動(dòng)硬件設(shè) 備交互,執(zhí)行當(dāng)前接收到的所述指令;緩存處理單元,用于在所述判斷結(jié)果指示所述訪問(wèn)通道為占用狀態(tài),且占用所述 訪問(wèn)通道的客戶操作系統(tǒng)不是所述第一客戶操作系統(tǒng)時(shí),將當(dāng)前接收到的所述指令存儲(chǔ)到 所述緩存模塊;第二執(zhí)行單元,用于在所述訪問(wèn)通道的狀態(tài)轉(zhuǎn)變?yōu)榭臻e時(shí),通過(guò)所述訪問(wèn)通道與 所述被動(dòng)硬件設(shè)備交互,執(zhí)行存儲(chǔ)在所述緩存模塊中的所述指令。為了實(shí)現(xiàn)上述目的,本發(fā)明實(shí)施例還提供了一種被動(dòng)硬件設(shè)備訪問(wèn)方法,用于虛 擬機(jī)系統(tǒng)中,所述虛擬機(jī)系統(tǒng)包括至少兩個(gè)客戶操作系統(tǒng)和虛擬機(jī)監(jiān)視器,所述被動(dòng)硬件 設(shè)備訪問(wèn)方法包括接收所述至少兩個(gè)客戶操作系統(tǒng)中的第一客戶操作系統(tǒng)發(fā)送來(lái)的第一訪問(wèn)命 令;判斷所述虛擬機(jī)監(jiān)視器與所述被動(dòng)硬件設(shè)備之間的訪問(wèn)通道的狀態(tài)是否為空閑 狀態(tài),獲取一判斷結(jié)果;在所述判斷結(jié)果指示所述訪問(wèn)通道的狀態(tài)為空閑狀態(tài)時(shí),使所述第一客戶操作系 統(tǒng)通過(guò)所述訪問(wèn)通道與所述被動(dòng)硬件設(shè)備交互,執(zhí)行所述第一訪問(wèn)命令;在所述判斷結(jié)果指示所述訪問(wèn)通道的狀態(tài)為占用狀態(tài)時(shí),將所述第一訪問(wèn)命令存 儲(chǔ)到緩存中,并在所述訪問(wèn)通道的狀態(tài)轉(zhuǎn)變?yōu)榭臻e時(shí),使所述第一客戶操作系統(tǒng)通過(guò)所述 訪問(wèn)通道與所述被動(dòng)硬件設(shè)備交互,執(zhí)行存儲(chǔ)在所述緩存中的所述第一訪問(wèn)命令;上述的被動(dòng)硬件設(shè)備訪問(wèn)方法,其中,從執(zhí)行一條訪問(wèn)命令開始到命令執(zhí)行完成 期間,所述訪問(wèn)通道的狀態(tài)為占用狀態(tài),所述訪問(wèn)命令執(zhí)行完成之后,所述訪問(wèn)通道的狀態(tài) 修改為空閑狀態(tài)。上述的被動(dòng)硬件設(shè)備訪問(wèn)方法,其中,還包括
5
將所述第一訪問(wèn)命令的執(zhí)行結(jié)果返回對(duì)應(yīng)的客戶操作系統(tǒng)。上述的被動(dòng)硬件設(shè)備訪問(wèn)方法,其中,在從所述被動(dòng)硬件設(shè)備同時(shí)接收到中斷和 設(shè)備狀態(tài)空閑指示時(shí),表示所述訪問(wèn)命令執(zhí)行完成。上述的被動(dòng)硬件設(shè)備訪問(wèn)方法,其中,在所述第一訪問(wèn)命令包括兩條或兩條以上 的指令,在所述訪問(wèn)通道為空閑狀態(tài)或占用所述訪問(wèn)通道的客戶操作系統(tǒng)為所述第一客戶 操作系統(tǒng)時(shí),通過(guò)所述訪問(wèn)通道與所述被動(dòng)硬件設(shè)備交互,執(zhí)行當(dāng)前接收到的所述指令;在 所述判斷結(jié)果指示所述訪問(wèn)通道為占用狀態(tài),且占用所述訪問(wèn)通道的客戶操作系統(tǒng)不是所 述第一客戶操作系統(tǒng)時(shí),將當(dāng)前接收到的所述指令存儲(chǔ)到所述緩存模塊,并在所述訪問(wèn)通 道的狀態(tài)轉(zhuǎn)變?yōu)榭臻e時(shí),通過(guò)所述訪問(wèn)通道與所述被動(dòng)硬件設(shè)備交互,執(zhí)行存儲(chǔ)在所述緩 存模塊中的所述指令。本發(fā)明實(shí)施例具有以下的有益效果而本發(fā)明實(shí)施例中,多個(gè)GOS可以同時(shí)發(fā)送對(duì)硬件設(shè)備的訪問(wèn)命令,并不會(huì)被拒 絕,所以從GOS端來(lái)看,所有發(fā)出訪問(wèn)命令的GOS都認(rèn)為自己獨(dú)占了該被動(dòng)硬件設(shè)備,也就 是說(shuō),從操作系統(tǒng)層面上看,多個(gè)GOS可以同時(shí)訪問(wèn)硬件設(shè)備;同時(shí),通過(guò)VMM端合理的調(diào)度,按一定順序執(zhí)行GOS發(fā)送的訪問(wèn)命令,使所有訪問(wèn) 命令都能被執(zhí)行并返回訪問(wèn)結(jié)果,因此所有發(fā)出訪問(wèn)命令的GOS都能夠順利完成訪問(wèn)操 作,并得到正確的結(jié)果。相對(duì)于硬件模擬、驅(qū)動(dòng)前后端等硬件設(shè)備訪問(wèn)方式,本發(fā)明不依賴于LINUX系統(tǒng) 的,硬件平臺(tái)兼容性好。


圖1為本發(fā)明實(shí)施例的VMM的結(jié)構(gòu)示意圖;圖2為本發(fā)明實(shí)施例的被動(dòng)硬件設(shè)備訪問(wèn)方法的命令層級(jí)的流程示意圖;圖3為本發(fā)明實(shí)施例的被動(dòng)硬件設(shè)備訪問(wèn)方法的指令層級(jí)的詳細(xì)流程示意圖;圖4為本發(fā)明實(shí)施例的被動(dòng)硬件設(shè)備訪問(wèn)方法的詳細(xì)流程示意圖。
具體實(shí)施例方式本發(fā)明實(shí)施例的虛擬機(jī)系統(tǒng)及被動(dòng)硬件設(shè)備訪問(wèn)方法中,通過(guò)在虛擬機(jī)中設(shè)置緩 存和通道分配模塊,使得虛擬機(jī)中的多個(gè)系統(tǒng)可以同時(shí)訪問(wèn)同一個(gè)被動(dòng)硬件設(shè)備。在對(duì)本發(fā)明實(shí)施例進(jìn)行詳細(xì)說(shuō)明之前,先對(duì)涉及到的幾個(gè)概念進(jìn)行說(shuō)明,以便于 更好的理解本發(fā)明。被動(dòng)硬件設(shè)備,區(qū)別于主動(dòng)硬件設(shè)備,被動(dòng)硬件設(shè)備基于對(duì)其的訪問(wèn)操作向操作 系統(tǒng)返回?cái)?shù)據(jù)或命令,不會(huì)主動(dòng)向操作系統(tǒng)發(fā)送數(shù)據(jù)或命令。訪問(wèn)命令,由一條或多條指令組成的命令,通過(guò)該一系列指令實(shí)現(xiàn)對(duì)硬件的訪問(wèn)。本發(fā)明實(shí)施例的虛擬機(jī)系統(tǒng)包括至少兩個(gè)GOS,VMM以及包括被動(dòng)硬件設(shè)備的真 實(shí)硬件平臺(tái),其中,該VMM如圖1所示,包括緩存模塊;通道建立模塊,用于建立對(duì)所述被動(dòng)硬件設(shè)備進(jìn)行訪問(wèn)的訪問(wèn)通道;通道狀態(tài)設(shè)置模塊,用于設(shè)置所述訪問(wèn)通道的狀態(tài)為占用或空閑;
6
命令接收模塊,用于接收所述至少兩個(gè)GOS發(fā)送的訪問(wèn)命令;訪問(wèn)處理模塊,用于在所述訪問(wèn)通道的狀態(tài)為空閑時(shí),通過(guò)所述訪問(wèn)通道與所述 被動(dòng)硬件設(shè)備交互,執(zhí)行當(dāng)前接收到的所述訪問(wèn)命令,否則將當(dāng)前接收到的所述訪問(wèn)命令 存儲(chǔ)到所述緩存模塊,并在所述訪問(wèn)通道的狀態(tài)轉(zhuǎn)變?yōu)榭臻e時(shí),通過(guò)所述訪問(wèn)通道與所述 被動(dòng)硬件設(shè)備交互,執(zhí)行存儲(chǔ)在所述緩存模塊中的一個(gè)所述訪問(wèn)命令;所述通道狀態(tài)設(shè)置模塊在所述訪問(wèn)處理模塊從執(zhí)行一條所述訪問(wèn)命令到所述訪 問(wèn)命令執(zhí)行完成期間,設(shè)置所述訪問(wèn)通道的狀態(tài)為占用狀態(tài),并在所述訪問(wèn)命令執(zhí)行完成 之后,將所述訪問(wèn)通道的狀態(tài)修改為空閑狀態(tài)。在從所述被動(dòng)硬件設(shè)備同時(shí)接收到中斷和設(shè)備狀態(tài)空閑指示時(shí),所述通道狀態(tài)設(shè) 置模塊判斷所述訪問(wèn)命令執(zhí)行完成。以其中一個(gè)GOS為例,該VMM包括緩存模塊;通道建立模塊,用于建立對(duì)所述被動(dòng)硬件設(shè)備進(jìn)行訪問(wèn)的訪問(wèn)通道;通道狀態(tài)設(shè)置模塊,用于設(shè)置所述訪問(wèn)通道的狀態(tài)為占用或空閑;命令接收模塊,用于接收第一 G0S發(fā)送的第一訪問(wèn)命令;訪問(wèn)處理模塊,用于在所述訪問(wèn)通道的狀態(tài)為空閑時(shí),使所述第一客戶操作系統(tǒng) 通過(guò)所述訪問(wèn)通道與所述被動(dòng)硬件設(shè)備交互,執(zhí)行第一訪問(wèn)命令,否則將第一訪問(wèn)命令存 儲(chǔ)到所述緩存模塊,并在所述訪問(wèn)通道的狀態(tài)轉(zhuǎn)變?yōu)榭臻e時(shí),使所述第一客戶操作系統(tǒng)通 過(guò)所述訪問(wèn)通道與所述被動(dòng)硬件設(shè)備交互,執(zhí)行存儲(chǔ)在所述緩存模塊中的第一訪問(wèn)命令;所述通道狀態(tài)設(shè)置模塊在所述訪問(wèn)處理模塊從執(zhí)行一條所述訪問(wèn)命令到所述訪 問(wèn)命令執(zhí)行完成期間,設(shè)置所述訪問(wèn)通道的狀態(tài)為占用狀態(tài),并在所述訪問(wèn)命令執(zhí)行完成 之后,將所述訪問(wèn)通道的狀態(tài)修改為空閑狀態(tài)。在從所述被動(dòng)硬件設(shè)備同時(shí)接收到中斷和設(shè)備狀態(tài)空閑指示時(shí),所述通道狀態(tài)設(shè) 置模塊判斷所述訪問(wèn)命令執(zhí)行完成。同時(shí),上述的VMM還包括第一結(jié)果返回模塊,用于將所述訪問(wèn)處理模塊與所述被動(dòng)硬件設(shè)備交互以執(zhí)行所 述訪問(wèn)命令的執(zhí)行結(jié)果返回對(duì)應(yīng)的G0S。同時(shí),為了及時(shí)給操作系統(tǒng)響應(yīng),上述的VMM還包括第二結(jié)果返回模塊,在所述訪問(wèn)通道的狀態(tài)為占用的情況下接收到所述訪問(wèn)命令 時(shí),向發(fā)送所述訪問(wèn)命令的GOS返回訪問(wèn)響應(yīng),指示硬件設(shè)備忙。上述是從訪問(wèn)命令層級(jí)對(duì)本發(fā)明實(shí)施例的VMM進(jìn)行了說(shuō)明,在所述的訪問(wèn)命令包括兩條或兩條以上的指令時(shí),所述訪問(wèn)處理模塊具體包括判斷單元,用于判斷所述訪問(wèn)通道的當(dāng)前狀態(tài),獲取一判斷結(jié)果;第一執(zhí)行單元,用于在所述判斷結(jié)果指示所述訪問(wèn)通道為空閑狀態(tài)或占用所述訪 問(wèn)通道的GOS為發(fā)送當(dāng)前接收到的指令的GOS時(shí),通過(guò)所述訪問(wèn)通道與所述被動(dòng)硬件設(shè)備 交互,執(zhí)行當(dāng)前接收到的所述指令;緩存處理單元,用于在所述判斷結(jié)果指示所述訪問(wèn)通道為占用狀態(tài),且占用所述 訪問(wèn)通道的GOS不是發(fā)送當(dāng)前接收到的指令的GOS時(shí),將當(dāng)前接收到的所述指令存儲(chǔ)到所 述緩存模塊;
7
第二執(zhí)行單元,用于在所述訪問(wèn)通道的狀態(tài)轉(zhuǎn)變?yōu)榭臻e時(shí),通過(guò)所述訪問(wèn)通道與 所述被動(dòng)硬件設(shè)備交互,執(zhí)行存儲(chǔ)在所述緩存模塊中的所述指令;本發(fā)明實(shí)施例的被動(dòng)硬件設(shè)備訪問(wèn)方法,用于虛擬機(jī)系統(tǒng)中,所述虛擬機(jī)系統(tǒng)包 括至少兩個(gè)客戶操作系統(tǒng)GOS和虛擬機(jī)監(jiān)視器VMM,其中如圖2所示,該訪問(wèn)方法包括步驟21,接收GOS發(fā)送的訪問(wèn)命令;步驟22,判斷虛擬機(jī)監(jiān)視器與硬件設(shè)備之間的訪問(wèn)通道的狀態(tài)是否為空閑狀態(tài), 如果是,進(jìn)入步驟23,否則進(jìn)入步驟24 ;步驟23,通過(guò)所述訪問(wèn)通道與所述被動(dòng)硬件設(shè)備交互,執(zhí)行當(dāng)前接收到的訪問(wèn)命 令;步驟24,將所述當(dāng)前接收到的訪問(wèn)命令存儲(chǔ)到緩存中,并在所述訪問(wèn)通道的狀態(tài) 轉(zhuǎn)變?yōu)榭臻e時(shí),通過(guò)所述訪問(wèn)通道與所述被動(dòng)硬件設(shè)備交互,執(zhí)行存儲(chǔ)在所述緩存中的一 個(gè)所述訪問(wèn)命令;在與所述被動(dòng)硬件設(shè)備交互以執(zhí)行任意訪問(wèn)命令期間,所述訪問(wèn)通道的狀態(tài)為占 用,否則為空閑狀態(tài)。同時(shí),本發(fā)明實(shí)施例的方法還包括步驟25,將執(zhí)行所述訪問(wèn)命令的執(zhí)行結(jié)果返回對(duì)應(yīng)的G0S。步驟26,在所述訪問(wèn)通道的狀態(tài)為占用的情況下接收到所述訪問(wèn)命令時(shí),向發(fā)送 所述訪問(wèn)命令的GOS返回訪問(wèn)響應(yīng),指示硬件設(shè)備忙,所述訪問(wèn)命令需要等待。本發(fā)明實(shí)施例的被動(dòng)硬件設(shè)備訪問(wèn)方法,用于虛擬機(jī)系統(tǒng)中,所述虛擬機(jī)系統(tǒng)包 括至少兩個(gè)客戶操作系統(tǒng)GOS和虛擬機(jī)監(jiān)視器VMM,從指令層級(jí)而言,如圖3所示,該訪問(wèn)方 法包括步驟31,接收GOS發(fā)送的訪問(wèn)指令;步驟32,判斷所述訪問(wèn)通道的當(dāng)前狀態(tài);步驟33,在所述判斷結(jié)果指示所述訪問(wèn)通道為空閑狀態(tài)或占用所述訪問(wèn)通道的 GOS為發(fā)送當(dāng)前接收到的指令的GOS時(shí),通過(guò)所述訪問(wèn)通道與所述被動(dòng)硬件設(shè)備交互,執(zhí)行 當(dāng)前接收到的所述指令;步驟34,在所述判斷結(jié)果指示所述訪問(wèn)通道為占用狀態(tài),且占用所述訪問(wèn)通道的 GOS不是發(fā)送當(dāng)前接收到的指令的GOS時(shí),將當(dāng)前接收到的所述指令存儲(chǔ)到所述緩存模塊;步驟35,在所述訪問(wèn)通道的狀態(tài)轉(zhuǎn)變?yōu)榭臻e時(shí),通過(guò)所述訪問(wèn)通道與所述被動(dòng)硬 件設(shè)備交互,執(zhí)行存儲(chǔ)在所述緩存模塊中的所述指令。從開始執(zhí)行一條所述訪問(wèn)命令到一條所述訪問(wèn)命令執(zhí)行完成期間,所述訪問(wèn)通道 的狀態(tài)為占用狀態(tài),并在所述訪問(wèn)命令執(zhí)行完成之后,將所述訪問(wèn)通道的狀態(tài)修改為空閑 狀態(tài)。下面對(duì)上述的裝置和方法進(jìn)行進(jìn)一步詳細(xì)說(shuō)明。下面僅以讀指令為例對(duì)其處理過(guò)程進(jìn)行解釋說(shuō)明,如圖4所示,包括步驟401,接收第一 GOS發(fā)送的對(duì)被動(dòng)硬件設(shè)備的訪問(wèn)指令,進(jìn)入步驟402 ;步驟402,判斷訪問(wèn)命令是否為讀指令,如果是進(jìn)入步驟403,否則進(jìn)入步驟408 ;步驟403,判斷與所述被動(dòng)硬件設(shè)備之間的訪問(wèn)通道的狀態(tài)是否為空閑狀態(tài),如果 是,進(jìn)入步驟404,否則進(jìn)入步驟407 ;
步驟404,設(shè)置所述訪問(wèn)通道的狀態(tài)為占用狀態(tài),進(jìn)入步驟405 ;步驟405,通過(guò)所述訪問(wèn)通道執(zhí)行所述讀指令,進(jìn)入步驟406 ;步驟406,判斷是否同時(shí)收到被動(dòng)硬件設(shè)備返回的中斷和設(shè)備空閑指示,如果是, 進(jìn)入步驟407,否則返回步驟401 ;步驟407,設(shè)置所述訪問(wèn)通道的狀態(tài)為空閑狀態(tài)后結(jié)束;步驟408,占用訪問(wèn)通道的GOS是否為第一 G0S,如果是,進(jìn)入步驟405,否則進(jìn)入步 驟 409 ;步驟409,將所述讀命令保存到緩存,進(jìn)入步驟410 ;步驟410,在所述訪問(wèn)通道的狀態(tài)轉(zhuǎn)變?yōu)榭臻e狀態(tài)后,設(shè)置所述訪問(wèn)通道的狀態(tài)為 占用狀態(tài),進(jìn)入步驟411 ;步驟411,通過(guò)所述訪問(wèn)通道執(zhí)行所述緩存中的讀指令,進(jìn)入步驟406 ;從上述的詳細(xì)流程可以看到,對(duì)于任意指令,如果通道沒(méi)占用,就占用該通道(將 空閑狀態(tài)設(shè)置為占用),并直接對(duì)被動(dòng)硬件設(shè)備進(jìn)行訪問(wèn),并在完成之后將狀態(tài)設(shè)置為空 閑,而通道被占用的情況下,則將訪問(wèn)命令暫時(shí)保存到緩存中,并等待通道釋放,一旦檢測(cè) 到通道處于空閑狀態(tài),則占用該通道(將空閑狀態(tài)設(shè)置為占用),并直接對(duì)被動(dòng)硬件設(shè)備進(jìn) 行訪問(wèn),以執(zhí)行暫時(shí)保存到緩存中的訪問(wèn)命令?,F(xiàn)有技術(shù)的硬件直接發(fā)訪問(wèn)方式中,多個(gè)系統(tǒng)要求同時(shí)訪問(wèn)同一個(gè)硬件設(shè)備時(shí), 除了當(dāng)前正在訪問(wèn)硬件設(shè)備的操作系統(tǒng)A,其它的操作系統(tǒng)都無(wú)法訪問(wèn)硬件設(shè)備,也就是說(shuō) 其他操作系統(tǒng)只有在硬件設(shè)備被操作系統(tǒng)A訪問(wèn)完之后才能發(fā)送訪問(wèn)指令,相當(dāng)于在時(shí)間 段X只有一個(gè)操作系統(tǒng)能夠向硬件發(fā)送訪問(wèn)指令。而本發(fā)明實(shí)施例中,多個(gè)GOS可以同時(shí)發(fā)送對(duì)硬件設(shè)備的訪問(wèn)命令,由VMM進(jìn)行 調(diào)配,實(shí)現(xiàn)最終的訪問(wèn),因此,本發(fā)明實(shí)施例中,從GOS端來(lái)看,所有發(fā)出訪問(wèn)命令的GOS都 認(rèn)為自己獨(dú)占了該被動(dòng)硬件設(shè)備,而通過(guò)VMM端合理的調(diào)度(按序執(zhí)行GOS發(fā)送的訪問(wèn)命 令),使得所有發(fā)出訪問(wèn)命令的GOS都能夠順利完成訪問(wèn)操作,并得到正確的結(jié)果。相對(duì)于硬件模擬、驅(qū)動(dòng)前后端等虛擬機(jī)系統(tǒng)的硬件設(shè)備訪問(wèn)方式,本發(fā)明不依賴 于LINUX系統(tǒng)的,硬件平臺(tái)兼容性好。下面對(duì)執(zhí)行所述訪問(wèn)命令的執(zhí)行結(jié)果返回對(duì)應(yīng)的GOS詳細(xì)說(shuō)明如下。VMM直接將接收到的或緩存中的訪問(wèn)命令(10命令)發(fā)送給硬盤控制器,當(dāng)硬盤控 制器完成這個(gè)命令后,會(huì)返回中斷給VMM,由VMM將中斷轉(zhuǎn)發(fā)給相應(yīng)的GOS。上述的被動(dòng)硬件設(shè)備可以是ATA (Advanced Technology Attachment,高級(jí)技術(shù)附 加)設(shè)備,如光驅(qū)、硬盤等硬件設(shè)備,當(dāng)然還可以是其它的被動(dòng)硬件設(shè)備。以上所述僅是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人 員來(lái)說(shuō),在不脫離本發(fā)明原理的前提下,還可以作出若干改進(jìn)和潤(rùn)飾,這些改進(jìn)和潤(rùn)飾也應(yīng) 視為本發(fā)明的保護(hù)范圍。
權(quán)利要求
一種虛擬機(jī)系統(tǒng),其特征在于,包括至少兩個(gè)客戶操作系統(tǒng)、虛擬機(jī)監(jiān)視器和能被所述至少兩個(gè)客戶操作系統(tǒng)訪問(wèn)的被動(dòng)硬件設(shè)備,所述虛擬機(jī)監(jiān)視器具體包括緩存模塊;訪問(wèn)通道,用于所述至少兩個(gè)客戶操作系統(tǒng)與所述被動(dòng)硬件設(shè)備之間進(jìn)行交互;命令接收模塊,用于接收從所述至少兩個(gè)客戶操作系統(tǒng)中的第一客戶操作系統(tǒng)發(fā)送來(lái)的第一訪問(wèn)命令;訪問(wèn)處理模塊,用于判斷所述訪問(wèn)通道的狀態(tài)是否為空閑,在所述訪問(wèn)通道的狀態(tài)為空閑時(shí),使所述第一客戶操作系統(tǒng)通過(guò)所述訪問(wèn)通道與所述被動(dòng)硬件設(shè)備交互,執(zhí)行所述第一訪問(wèn)命令,在所述訪問(wèn)通道的狀態(tài)為占用時(shí),將所述第一訪問(wèn)命令存儲(chǔ)到所述緩存模塊,并在所述訪問(wèn)通道的狀態(tài)轉(zhuǎn)變?yōu)榭臻e時(shí),使所述第一客戶操作系統(tǒng)通過(guò)所述訪問(wèn)通道與所述被動(dòng)硬件設(shè)備交互,執(zhí)行存儲(chǔ)在所述緩存模塊中的所述第一訪問(wèn)命令。
2.根據(jù)權(quán)利要求1所述的虛擬機(jī)系統(tǒng),其特征在于,所述虛擬機(jī)監(jiān)視器還包括通道狀態(tài)設(shè)置模塊,用于設(shè)置所述訪問(wèn)通道的狀態(tài)為空閑或占用;從所述訪問(wèn)處理模塊執(zhí)行一條所述訪問(wèn)命令開始到所述訪問(wèn)命令執(zhí)行完成期間,所 述通道狀態(tài)設(shè)置模塊設(shè)置所述訪問(wèn)通道的狀態(tài)為占用狀態(tài),并在所述訪問(wèn)命令執(zhí)行完成之 后,將所述訪問(wèn)通道的狀態(tài)修改為空閑狀態(tài)。
3.根據(jù)權(quán)利要求2所述的虛擬機(jī)系統(tǒng),其特征在于,所述虛擬機(jī)監(jiān)視器還包括執(zhí)行結(jié)果返回模塊,用于將所述訪問(wèn)處理模塊執(zhí)行所述第一訪問(wèn)命令的執(zhí)行結(jié)果返回 對(duì)應(yīng)的客戶操作系統(tǒng)。
4.根據(jù)權(quán)利要求1或2或3所述的虛擬機(jī)系統(tǒng),其特征在于,在從所述被動(dòng)硬件設(shè)備 同時(shí)接收到中斷和設(shè)備狀態(tài)空閑指示時(shí),所述通道狀態(tài)設(shè)置模塊判斷所述訪問(wèn)命令執(zhí)行完 成。
5.根據(jù)權(quán)利要求1或2或3所述的虛擬機(jī)系統(tǒng),其特征在于,在所述第一訪問(wèn)命令包括 兩條或兩條以上的指令時(shí),所述訪問(wèn)處理模塊具體包括判斷單元,用于判斷所述訪問(wèn)通道的當(dāng)前狀態(tài),獲取一判斷結(jié)果;第一執(zhí)行單元,用于在所述判斷結(jié)果指示所述訪問(wèn)通道為空閑狀態(tài)或占用所述訪問(wèn)通 道的客戶操作系統(tǒng)為所述第一客戶操作系統(tǒng)時(shí),通過(guò)所述訪問(wèn)通道與所述被動(dòng)硬件設(shè)備交 互,執(zhí)行當(dāng)前接收到的所述指令;緩存處理單元,用于在所述判斷結(jié)果指示所述訪問(wèn)通道為占用狀態(tài),且占用所述訪問(wèn) 通道的客戶操作系統(tǒng)不是所述第一客戶操作系統(tǒng)時(shí),將當(dāng)前接收到的所述指令存儲(chǔ)到所述 緩存模塊;第二執(zhí)行單元,用于在所述訪問(wèn)通道的狀態(tài)轉(zhuǎn)變?yōu)榭臻e時(shí),通過(guò)所述訪問(wèn)通道與所述 被動(dòng)硬件設(shè)備交互,執(zhí)行存儲(chǔ)在所述緩存模塊中的所述指令。
6.一種被動(dòng)硬件設(shè)備訪問(wèn)方法,用于虛擬機(jī)系統(tǒng)中,所述虛擬機(jī)系統(tǒng)包括至少兩個(gè)客 戶操作系統(tǒng)和虛擬機(jī)監(jiān)視器,其特征在于,所述被動(dòng)硬件設(shè)備訪問(wèn)方法包括接收所述至少兩個(gè)客戶操作系統(tǒng)中的第一客戶操作系統(tǒng)發(fā)送來(lái)的第一訪問(wèn)命令;判斷所述虛擬機(jī)監(jiān)視器與所述被動(dòng)硬件設(shè)備之間的訪問(wèn)通道的狀態(tài)是否為空閑狀態(tài), 獲取一判斷結(jié)果;在所述判斷結(jié)果指示所述訪問(wèn)通道的狀態(tài)為空閑狀態(tài)時(shí),使所述第一客戶操作系統(tǒng)通 過(guò)所述訪問(wèn)通道與所述被動(dòng)硬件設(shè)備交互,執(zhí)行所述第一訪問(wèn)命令;在所述判斷結(jié)果指示所述訪問(wèn)通道的狀態(tài)為占用狀態(tài)時(shí),將所述第一訪問(wèn)命令存儲(chǔ)到 緩存中,并在所述訪問(wèn)通道的狀態(tài)轉(zhuǎn)變?yōu)榭臻e時(shí),使所述第一客戶操作系統(tǒng)通過(guò)所述訪問(wèn) 通道與所述被動(dòng)硬件設(shè)備交互,執(zhí)行存儲(chǔ)在所述緩存中的所述第一訪問(wèn)命令;
7.根據(jù)權(quán)利要求6所述的被動(dòng)硬件設(shè)備訪問(wèn)方法,其特征在于,從執(zhí)行一條訪問(wèn)命令 開始到命令執(zhí)行完成期間,所述訪問(wèn)通道的狀態(tài)為占用狀態(tài),所述訪問(wèn)命令執(zhí)行完成之后, 所述訪問(wèn)通道的狀態(tài)修改為空閑狀態(tài)。
8.根據(jù)權(quán)利要求7所述的被動(dòng)硬件設(shè)備訪問(wèn)方法,其特征在于,還包括將所述第一訪問(wèn)命令的執(zhí)行結(jié)果返回對(duì)應(yīng)的客戶操作系統(tǒng)。
9.根據(jù)權(quán)利要求6、7或8所述的被動(dòng)硬件設(shè)備訪問(wèn)方法,其特征在于,在從所述被動(dòng)硬 件設(shè)備同時(shí)接收到中斷和設(shè)備狀態(tài)空閑指示時(shí),表示所述訪問(wèn)命令執(zhí)行完成。
10.根據(jù)權(quán)利要求6、7或8所述的被動(dòng)硬件設(shè)備訪問(wèn)方法,其特征在于,在所述第一訪 問(wèn)命令包括兩條或兩條以上的指令,在所述訪問(wèn)通道為空閑狀態(tài)或占用所述訪問(wèn)通道的客 戶操作系統(tǒng)為所述第一客戶操作系統(tǒng)時(shí),通過(guò)所述訪問(wèn)通道與所述被動(dòng)硬件設(shè)備交互,執(zhí) 行當(dāng)前接收到的所述指令;在所述判斷結(jié)果指示所述訪問(wèn)通道為占用狀態(tài),且占用所述訪 問(wèn)通道的客戶操作系統(tǒng)不是所述第一客戶操作系統(tǒng)時(shí),將當(dāng)前接收到的所述指令存儲(chǔ)到所 述緩存模塊,并在所述訪問(wèn)通道的狀態(tài)轉(zhuǎn)變?yōu)榭臻e時(shí),通過(guò)所述訪問(wèn)通道與所述被動(dòng)硬件 設(shè)備交互,執(zhí)行存儲(chǔ)在所述緩存模塊中的所述指令。
全文摘要
本發(fā)明提供一種虛擬機(jī)系統(tǒng)及被動(dòng)硬件設(shè)備訪問(wèn)方法,該虛擬機(jī)系統(tǒng)的虛擬機(jī)監(jiān)視器具體包括緩存模塊;訪問(wèn)通道;命令接收模塊,用于接收第一客戶操作系統(tǒng)發(fā)送來(lái)的第一訪問(wèn)命令;訪問(wèn)處理模塊,用于判斷所述訪問(wèn)通道的狀態(tài)是否為空閑,在所述訪問(wèn)通道的狀態(tài)為空閑時(shí),使第一客戶操作系統(tǒng)通過(guò)訪問(wèn)通道與被動(dòng)硬件設(shè)備交互,執(zhí)行第一訪問(wèn)命令,在訪問(wèn)通道的狀態(tài)為占用時(shí),將第一訪問(wèn)命令存儲(chǔ)到緩存模塊,并在訪問(wèn)通道的狀態(tài)轉(zhuǎn)變?yōu)榭臻e時(shí),使第一客戶操作系統(tǒng)通過(guò)訪問(wèn)通道與被動(dòng)硬件設(shè)備交互,執(zhí)行存儲(chǔ)在緩存模塊中的第一訪問(wèn)命令。本發(fā)明使得操作系統(tǒng)層面上,多個(gè)操作系統(tǒng)能同時(shí)訪問(wèn)硬件設(shè)備,而且不依賴于LINUX系統(tǒng),對(duì)硬件平臺(tái)的兼容性較好。
文檔編號(hào)G06F13/12GK101937407SQ20091008678
公開日2011年1月5日 申請(qǐng)日期2009年6月30日 優(yōu)先權(quán)日2009年6月30日
發(fā)明者昌盛, 林洋, 湯良 申請(qǐng)人:聯(lián)想(北京)有限公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
车致| 疏勒县| 屯昌县| 康乐县| 温泉县| 姜堰市| 醴陵市| 和田县| 肃宁县| 白沙| 棋牌| 八宿县| 札达县| 会同县| 揭西县| 阿拉善右旗| 长乐市| 靖远县| 托里县| 开封县| 成都市| 彩票| 曲沃县| 眉山市| 朔州市| 密山市| 沅江市| 海宁市| 洱源县| 精河县| 菏泽市| 牙克石市| 祥云县| 抚顺市| 聊城市| 衡山县| 五河县| 盱眙县| 盱眙县| 嘉黎县| 沙洋县|