日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > 嵌入式 > Linux閱碼場
[導讀]作者簡介???王柏生??資深技術專家,先后就職于中科院軟件所、紅旗Linux和百度,現(xiàn)任百度主任架構師。在操作系統(tǒng)、虛擬化技術、分布式系統(tǒng)、云計算、自動駕駛等相關領域耕耘多年,有著豐富的實踐經驗。著有暢銷書《深度探索Linux操作系統(tǒng)》(2013年出版)。謝廣軍??計算機專業(yè)博士...

作者簡介


王柏生 資深技術專家,先后就職于中科院軟件所、紅旗Linux和百度,現(xiàn)任百度主任架構師。在操作系統(tǒng)、虛擬化技術、分布式系統(tǒng)、云計算、自動駕駛等相關領域耕耘多年,有著豐富的實踐經驗。著有暢銷書《深度探索Linux操作系統(tǒng)》(2013年出版)。


謝廣軍 計算機專業(yè)博士,畢業(yè)于南開大學計算機系。資深技術專家,年的IT行業(yè)工作經驗。現(xiàn)擔任百度智能云副總經理,負責云計算相關產品的研發(fā)。多年來一直從事操作系統(tǒng)、虛擬化技術、分布式系統(tǒng)、大數(shù)據(jù)、云計算等相關領域的研發(fā)工作,實踐經驗豐富。


本文內容節(jié)選自《深度探索Linux虛擬化技術》,已獲得機械工業(yè)出版社華章公司授權。


歡迎讀者文末留言,閱碼場和機械工業(yè)出版社華章公司將為每位精彩留言獲獎用戶奉送該書一本。



中斷是計算機系統(tǒng)中非常重要的部分,計算機基礎理論書籍往往也會花上很多篇幅討論中斷,但是因為操作系統(tǒng)都替開發(fā)人員處理好中斷了,所以除非是系統(tǒng)工程師,否則一般開發(fā)人員對中斷很難有一個很直觀的認識,因此理解如何通過軟件的方式來模擬中斷更是一個挑戰(zhàn)。


因此,在本章中,我們簡單介紹硬件中斷的基本原理,然后結合中斷的基本原理討論如何虛擬化中斷芯片。我們從起初IBM PC為單核系統(tǒng)設計的PIC(8259A)機制開始,討論到為多核系統(tǒng)設計的APIC,一直到繞開I/O APIC、從設備直接向LAPIC發(fā)送基于消息的MSI機制。


中斷芯片可以在用戶空間中模擬,也可以在內核空間模擬,但是因為中斷芯片需要密集地和Guest以及內核中的KVM模塊交互,顯然在內核空間模擬更合理,所以KVM在內核中實現(xiàn)中斷芯片的模擬。最后,我們討論了為了提高效率,Intel是如何從硬件層面對虛擬化中斷進行支持的,以及KVM是如何使用他們的。




虛擬中斷



在探討Guest模式的CPU處理中斷前,我們首先回顧一下物理CPU是如何響應中斷的。當操作系統(tǒng)允許CPU響應中斷后,每當執(zhí)行完一條指令后,CPU都將檢查中斷引腳是否有效,一旦有效,CPU將處理中斷,然后再執(zhí)行下一條指令,如圖3-1所示。




圖1 CPU處理中斷


當有中斷需要CPU處理時,中斷芯片將有效連接CPU的INTR引腳,也就是說如果INTR是高電平有效,那么中斷芯片拉高INTR引腳的電平。CPU在執(zhí)行完一條指令后,將檢查INTR引腳。類似的,虛擬中斷也效仿這種機制,虛擬中斷芯片負責將與CPU的INTR引腳相連的“引腳”有效,然后在每次VM entry時,KVM將檢查虛擬中端芯片的INTR“引腳”是否有效。對于軟件虛擬的中斷芯片而言,“引腳”只是一個變量。如果KVM發(fā)現(xiàn)虛擬中斷芯片有中斷請求,則向VMCS中VM-entry control部分的VM-entry interruption-informationfield字段注入中斷信息,然后Guest模式下的CPU將執(zhí)行Guest系統(tǒng)IDT中對應的中斷處理服務,圖3-2為單核系統(tǒng)使用PIC中斷芯片下的虛擬中斷過程。





圖2 基于PIC的虛擬中斷過程


具體步驟如下:


1)虛擬設備向虛擬中斷芯片PIC發(fā)送中斷請求,虛擬PIC記錄下虛擬設備的中斷信息。與物理的中斷過程不同,此時并不會觸發(fā)虛擬PIC芯片的中斷評估邏輯,而是在VM entry時進行。


2)如果虛擬CPU處于睡眠狀態(tài),則喚醒虛擬CPU,即使虛擬CPU對應的線程進入物理CPU的就緒任務隊列,隨時可以準備得到運行機會。


3)當虛擬CPU開始運行時,在其切入Guest前一刻,KVM模塊將檢查虛擬PIC芯片,查看是否有中斷需要處理。此時,KVM將觸發(fā)虛擬PIC芯片的中斷評估邏輯。


4)一旦虛擬中斷芯片計算出有需要Guest處理的中斷,則將中斷信息注入到VMCS中的字段VM-entry interruption-information。


5)進入Guest模式后,CPU將調用Guest IDT中相應的中斷服務處理中斷。


PIC只能支持單處理器系統(tǒng),對于多處理器系統(tǒng),需要APIC支持。對于虛擬化而言,顯然也需要虛擬相應的APIC,但是其本質上與PIC基本相同,如圖3-3所示。



圖3 基于APIC的虛擬中斷過程


與單處理器情況相比,多處理器的虛擬中斷主要有2點不同:


1)在多處理器系統(tǒng)下,不同CPU之間需要收發(fā)中斷,因此,每個CPU分別需要關聯(lián)一個獨立的中斷芯片,這個中斷芯片稱為LAPIC。LAPIC不僅需要接收CPU之間核間中斷IPI(Inter-Processor Interrupt),還需要接收來自外設的中斷。外設的中斷引腳不可能連接到每個LAPIC上,因此,有一個統(tǒng)一的I/O APIC芯片負責連接外設,如果一個I/O APIC引腳不夠用,系統(tǒng)中可以使用多個I/O APIC。LAPIC和I/O APIC都接到中斷總線上,通過總線進行通信。所以在虛擬化場景下,需要虛擬LAPIC和I/O APIC兩個組件。


2)在多處理器情況下,僅僅是喚醒可能在睡眠的虛擬CPU線程還不夠,如果虛擬CPU是在另外一顆物理CPU上運行于Guest模式,此時還需要向其發(fā)送IPI中斷,使目的CPU從Guest模式退出到Host模式,然后下一次VM entry時,進行中斷注入。


Guest模式的CPU和虛擬中斷芯片處于兩個世界,所以處于Guest模式的CPU不能檢查虛擬中斷芯片的引腳,只能在VM entry時由KVM模塊代為檢查,然后寫入到VMCS。所以,一旦有中斷需要注入,那么處于Guest模式的CPU一定需要VM exit,退出到Host模式,這是一個很大的開銷。


為了去除VM exit這個開銷,Intel在硬件層面對中斷虛擬化進行了支持。LAPIC使用一個頁面大小內存存儲寄存器,我們知道,當Guest訪問LAPIC這些寄存器時,將導致VM exit,但是事實上,某些訪問LAPIC的這些寄存器,并不需要VMM介入,所以也就無需VM exit,所以Intel實現(xiàn)了一個處于Guest模式的這樣的一個頁面,稱之為virtual-APIC page。除次之外,Intel還在Guest模式下實現(xiàn)了部分中斷芯片的邏輯,比如中斷評估,我們將其稱之為虛擬中斷邏輯,如圖4所示。



圖4 硬件虛擬化支持下的中斷虛擬化過程


Intel從硬件層面對虛擬化進行了支持,實現(xiàn)了一個處于Guest模式的用于存儲中斷相關寄存器的virtual-APIC page。除次之外,Intel還在Guest模式下實現(xiàn)了部分中斷芯片的邏輯,用于中斷評估和遞交。


在此情況下,只要LAPIC收到中斷,其不必再等待下一次VM entry時,被動執(zhí)行中斷評估,而是主動向處于Guest模式的CPU告知信息,這個位置就是posted-interrupt descriptor。如果目標CPU處于Guest模式,則通過一個特殊的核間中斷posted-interrupt notification通知目標CPU,從而觸發(fā)虛擬的中斷邏輯,其會在Guest模式下進行評估評估并且向虛擬CPU遞交中斷,而無須再通過VM exit/VM entry的方式注入中斷。


在硬件虛擬化的支持下,在Guest模式下有了狀態(tài)和邏輯,就可以模擬很多中斷的行為,比如訪問中斷寄存器、跟蹤中斷的狀態(tài)以及向CPU遞交中斷等。因此,很多中斷行為就無須VMM介入了,從而大大的減少了VM exit的次數(shù)。當然有些寫中斷寄存器的操作是具有副作用的,比如通過寫icr寄存器發(fā)送IPI中斷,這時就需要觸發(fā)VM exit,由本地LAPIC向目標LAPIC發(fā)送IPI中斷。








本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯(lián)系該專欄作者,如若文章內容侵犯您的權益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

LED驅動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關鍵字: 驅動電源

在工業(yè)自動化蓬勃發(fā)展的當下,工業(yè)電機作為核心動力設備,其驅動電源的性能直接關系到整個系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動勢抑制與過流保護是驅動電源設計中至關重要的兩個環(huán)節(jié),集成化方案的設計成為提升電機驅動性能的關鍵。

關鍵字: 工業(yè)電機 驅動電源

LED 驅動電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個照明設備的使用壽命。然而,在實際應用中,LED 驅動電源易損壞的問題卻十分常見,不僅增加了維護成本,還影響了用戶體驗。要解決這一問題,需從設計、生...

關鍵字: 驅動電源 照明系統(tǒng) 散熱

根據(jù)LED驅動電源的公式,電感內電流波動大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關鍵字: LED 設計 驅動電源

電動汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產業(yè)的重要發(fā)展方向。電動汽車的核心技術之一是電機驅動控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機驅動系統(tǒng)中的關鍵元件,其性能直接影響到電動汽車的動力性能和...

關鍵字: 電動汽車 新能源 驅動電源

在現(xiàn)代城市建設中,街道及停車場照明作為基礎設施的重要組成部分,其質量和效率直接關系到城市的公共安全、居民生活質量和能源利用效率。隨著科技的進步,高亮度白光發(fā)光二極管(LED)因其獨特的優(yōu)勢逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關鍵字: 發(fā)光二極管 驅動電源 LED

LED通用照明設計工程師會遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關鍵字: LED 驅動電源 功率因數(shù)校正

在LED照明技術日益普及的今天,LED驅動電源的電磁干擾(EMI)問題成為了一個不可忽視的挑戰(zhàn)。電磁干擾不僅會影響LED燈具的正常工作,還可能對周圍電子設備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來解決L...

關鍵字: LED照明技術 電磁干擾 驅動電源

開關電源具有效率高的特性,而且開關電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機重量也有所下降,所以,現(xiàn)在的LED驅動電源

關鍵字: LED 驅動電源 開關電源

LED驅動電源是把電源供應轉換為特定的電壓電流以驅動LED發(fā)光的電壓轉換器,通常情況下:LED驅動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關鍵字: LED 隧道燈 驅動電源
關閉