Xen體系結構-IO部分

1:I/O設備虛擬化將設備驅動分爲三個部分:前端FE,後端BE和原生驅動。其中後端驅動和原生驅動在Dom0(IDD)中。
2:前端驅動和後端驅動之間I/O請求的傳遞經過一個環狀隊列(I/O環)來實現。I/O環模型中,共有兩個生產者-消費者對:前端驅動是請求生產者和響應消費者;後端驅動是請求消費者和響應生產者。實際上,I/O環是供DomU和Dom0(或IDD)訪問的共享內存。
圖片描述前端

請求生產者和響應消費者由Guest OS控制;請求消費者和響應生產者由Xen控制。
3:爲了實現大量DMA數據在DomU和Dom0之間的傳遞,Xen採用受權表機制,直接替換頁面映射關係來避免沒必要要的內存拷貝。每一個Domain都有一個受權表,指明它的哪一個頁面能夠被哪些Domain訪問。
4:以DomU向I/O設備寫入數據爲例:
圖片描述後端

(1)DomU產生I/O請求,在IO共享環中添加請求。
(2)而後將I/O數據放入受權表指向的內存中,等待Dom0來取。
(3)一切準備就緒,經過事件通道通知Dom0開始處理。
(4)Dom0收到事件通道的通知,知道有數據須要處理。
(5)Dom0從I/O共享環中取出I/O請求,分析DomU想要Dom0爲他作什麼。
(6)明白要作什麼後,將受權表中的數據取出進行處理。
(7)數據處理完成後,Dom0將處理後信息放入I/O共享環,而後經過事件通道發送通知
給DomU,告訴他處理完成了。
(8)DomU收到事件通道的通知,從IO共享環中取出相應,進而處理。spa

相關文章
相關標籤/搜索