[發明專利]復用客戶操作系統設備驅動的實現方法有效
| 申請號: | 201110255829.2 | 申請日: | 2011-09-01 |
| 公開(公告)號: | CN102339230A | 公開(公告)日: | 2012-02-01 |
| 發明(設計)人: | 李國輝;梅魁志;張磊;李博良;張恩陽;展華益 | 申請(專利權)人: | 西安交通大學 |
| 主分類號: | G06F9/455 | 分類號: | G06F9/455;G06F9/48 |
| 代理公司: | 西安通大專利代理有限責任公司 61200 | 代理人: | 徐文權 |
| 地址: | 710049 *** | 國省代碼: | 陜西;61 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 客戶 操作系統 設備 驅動 實現 方法 | ||
技術領域
本發明屬于嵌入式虛擬化技術領域,涉及一種復用客戶操作系統設備驅動的實現方法,應用于Hypervisor中支持對外設的訪問。
背景技術
現在日常生活中的嵌入式設備越來越普及,功能應用也越發豐富。將不同的系統虛擬化為客戶操作系統后同時運行在Hypervisor上,可避免不同系統之間的應用移植而又能兼具各系統的應用。IO虛擬化技術是虛擬化技術中的重要組成部分。Hypervisor采用IO虛擬化技術使運行其上的客戶操作系統能夠使用外圍設備。
目前應用較廣泛的IO虛擬化技術主要有三種,分別是Split?I/O,Direct?I/O和Passthrough?I/O。
(1)Split?I/O。將設備驅動框架根據是否訪問硬件分為硬件相關部分和硬件無關部分。其中硬件相關部分放在具有I/O訪問權限的虛擬機中,而硬件無關部分位于無I/O訪問權限的虛擬機中,前者為后者提供硬件訪問支持。
(2)Direct?I/O。Hypervisor將相應的物理設備抽象為虛擬設備。虛擬機中對設備的訪問是對虛擬設備的操作,Hypervisor將這些操作在具體的物理設備上實現。
(3)Passthrough?I/O。對物理設備,Hypervisor不進行任何相應的管理,而是由虛擬機利用系統中已有設備驅動直接進行物理設備的訪問操作這三種IO虛擬化技術相比較,Split?I/O提供較安全的IO訪問,Direct?I/O擁有較好的移植性,Passthrough?I/O的設備性能損失最小。
對于復雜外設,如果采用Split?I/O和Direct?I/O實現客戶操縱系統對外設的訪問,都需要對系統中原有的設備驅動框架進行修改,這樣不僅實現復雜,而且設備的性能損失大。本發明采用本發明采用了Passthrough?I/O的思想,不用修改系統中的設備驅動框架,使Hypervisor上的客戶操作系統能夠復用其已有的設備驅動完成對外設的訪問,可解決客戶操作系統訪問外設時設備性能損失大的問題。
發明內容
本發明所要解決的技術問題是提供一種復用客戶操作系統設備驅動的實現方法,該方法能夠使Hypervisor中的客戶操作系統復用系統中原有設備驅動對設備進行訪問,以使設備的性能損失最小。
為解決以上技術問題,本發明采用以下技術方案:
復用客戶操作系統設備驅動的實現方法,虛擬機Hypervisor接管物理中斷,客戶操作系統中設置有虛擬中斷響應標志VIPending,同時,客戶操作系統以中斷描述表table_vintr_desc描述所有中斷;當外設中斷產生后,虛擬機Hypervisor首先屏蔽該外設中斷,然后將客戶操作系統中的虛擬中斷響應標志VIPending設置為打開狀態,接著將中斷描述表table_vintr_desc中與該中斷對應項的成員pending設置為表示該中斷發生的狀態,最后由客戶操作系統調用該外設原有的中斷服務程序對該中斷事件進行處理。
作為本發明的優選實施例,所述虛擬機Hypervisor通過控制和管理硬件中的中斷控制器而接管物理中斷,當外設中斷發生后,虛擬機Hypervisor通過操作中斷控制器屏蔽該外設中斷;
作為本發明的優選實施例,所述虛擬中斷響應標志VIPending是客戶操作系統中的一個全局變量,其被設置為1和0分別表示打開和關閉客戶操作系統中的中斷響應;
作為本發明的優選實施例,在客戶操作系統的中斷服務程序執行完后,將虛擬中斷響應標志VIPending設置為0,以關閉客戶操作系統對中斷的響應,中斷描述表table_vintr_desc中該中斷對應項的成員pending設置為0,以向客戶操作系統表示該中斷已得到處理。最后Hypervisor操作中斷控制器中的相應中斷標志位打開該外設中斷,以接受下一次外設中斷;
本發明復用客戶操作系統設備驅動的實現方法至少具有以下優點:本發明通過虛擬機Hypervisor管理外設中斷的屏蔽與開啟,將外設中斷的具體處理工作交由客戶操作系統調用原有的中斷服務程序和外設驅動處理。這種方法不僅復用了客戶操作系統中已有的設備驅動,而且客戶操作系統中的原有設備驅動框架保持不變,即訪問設備時調用的程序,以及程序調用的流程都保持不變,這樣使得設備的性能的損失最小。
附圖說明
圖1為本發明復用客戶操作系統設備驅動示意圖;
圖2為本發明Hypervisor總體結構;
圖3為本發明GuestOS虛擬化前外設中斷處理過程;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于西安交通大學,未經西安交通大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201110255829.2/2.html,轉載請聲明來源鉆瓜專利網。





