自適應(yīng)音頻感知的虛擬機調(diào)度的研究
發(fā)布時間:2020-07-12 12:45
【摘要】: 虛擬化技術(shù)的出現(xiàn)與實用化,不僅為提高服務(wù)器利用率、整合異構(gòu)資源帶來了新的解決方案,也為個人用戶便捷、高效的使用桌面服務(wù)帶來了新的機遇。桌面應(yīng)用往往有較高的實時需求,而目前的虛擬機環(huán)境并不能很好地適應(yīng)一部分響應(yīng)敏感型的應(yīng)用,如音頻應(yīng)用。在多虛擬機共存的情況下,運行音頻應(yīng)用的虛擬機將在對計算資源的競爭中頻繁地中斷,從而導(dǎo)致嚴重的音頻抖動,影響用戶的體驗。 自適應(yīng)音頻感知的虛擬機調(diào)度系統(tǒng)針對上述問題將變長時間片、靜態(tài)優(yōu)先級、基于份額的動態(tài)優(yōu)先級控制等方法有效的結(jié)合并運用到虛擬化環(huán)境的特殊調(diào)度模式中,實現(xiàn)了一種動態(tài)、靈活的虛擬機調(diào)度機制,該機制使特權(quán)域與硬件虛擬機可以高頻率地輪轉(zhuǎn)交互,保證音頻緩沖區(qū)的數(shù)據(jù)充裕,播放流暢。自適應(yīng)音頻感知機制憑借虛擬機管理器對音頻接口狀態(tài)的捕獲和判斷,自適應(yīng)地調(diào)整虛擬機的優(yōu)先級,選取適合的調(diào)度策略來調(diào)度和分配CPU資源,克服由兩層調(diào)度模式帶來的上層應(yīng)用不可預(yù)知的缺陷。系統(tǒng)在確保音頻應(yīng)用的高質(zhì)量運行的同時,也在一定程度上兼顧了調(diào)度的公平性。 除了采取自適應(yīng)音頻感知的方法以適應(yīng)音頻任務(wù)的需求變化以外,系統(tǒng)還提供了與調(diào)度機制相應(yīng)的用戶控制接口,支持用戶以手動方式設(shè)置虛擬機的優(yōu)先級并進行監(jiān)測,擴展了虛擬機管理的靈活性。 實驗表明,該系統(tǒng)能夠在多虛擬機環(huán)境下滿足音頻的實時需求,大幅度地提高音頻質(zhì)量。在最好的情況下,“緩沖區(qū)欠載”導(dǎo)致的聲音抖動現(xiàn)象可被完全消除,保證了用戶良好的音頻體驗。
【學(xué)位授予單位】:華中科技大學(xué)
【學(xué)位級別】:碩士
【學(xué)位授予年份】:2009
【分類號】:TP302
【圖文】:
先級:BOOST、UNDER 和 OVER VCPU 運行隊列。VCPU 有三種狀態(tài):BOOST、UNDOVER 表示虛擬機中 VCPU 的 credit 值已用完,UNDST 是 Xen 最新加入的狀態(tài),由喚醒操作帶回。在 Cr VCPU 總是被放在調(diào)度隊列的尾部,雖然調(diào)度器會須等待排在其前面的所有 VCPU 都運行完才會被調(diào),當事件被發(fā)送到虛擬機的 VCPU 時,如果 VCPU喚醒,調(diào)度器會被立即運行并重新計算調(diào)度順序,如BOOST 狀態(tài),則之前正在運行的虛擬機會被搶占,否隊列末尾。因此,處于 BOOST 狀態(tài)的虛擬機具有最 VCPU 總是優(yōu)先于 OVER 狀態(tài)的 VCPU 被調(diào)度,只無法運行時才會調(diào)度到 OVER 狀態(tài)的 VCPU。入 BOOST 狀態(tài)的 Credit 算法在一定的條件下可以取應(yīng)延遲的平均值。但是當多個事件頻發(fā)時,由于沒有理性,BOOST 的優(yōu)勢便無法體現(xiàn),從而并不能真正
先級、基于份額的動態(tài)優(yōu)先級控制和變長時間片。3.3.1 靜態(tài)優(yōu)先級靜態(tài)優(yōu)先級通過一種新的虛擬機配置參數(shù)來實現(xiàn)——實時屬性參數(shù) realtim(RT)。RT 參數(shù)獨立于權(quán)重(Weight)和能限(Capacity)參數(shù),用來指定是否將一個虛擬機設(shè)置為具有最高優(yōu)先級的實時虛擬機。同時,為了滿足用戶的不同需要,RT 允許被設(shè)置為 0~60 中的任何數(shù)值,數(shù)值越大,子優(yōu)先級越高(子優(yōu)先級實際上是通過控制與 RT 數(shù)值相當?shù)?BOOST 次數(shù)來動態(tài)確定的),但 RT>1 的虛擬機的優(yōu)先級均大于 RT=0 的虛擬機。這一參數(shù)的改變過程由于需要控制 Hypervisor 中的 CPU 調(diào)度模塊進行處理,因此,用戶空間的控制請求需要封裝成 Hypercall 命令陷入到 Hypervisor 中。Hyperca類似于傳統(tǒng)操作系統(tǒng)中的系統(tǒng)調(diào)用,允許客戶虛擬機執(zhí)行一個同步軟陷阱陷入Hypervisor 中執(zhí)行一個特權(quán)操作。此處 Hypercall 的類型為__HYPERVISOR_domct現(xiàn)有結(jié)構(gòu)下,與調(diào)度參數(shù)相關(guān)的信息都是通過 struct xen_domctl_sched_credit 這個數(shù)據(jù)結(jié)構(gòu)來傳遞的,其數(shù)據(jù)結(jié)構(gòu)關(guān)系如圖 3.3 所示。
BoostTimes 即 BOOST 的次數(shù),CreditsPerBoost 表示一次值(實現(xiàn)中 CreditsPerBoost 為 10 毫秒);,MsecsPerBoost 表示一次 BOOST 對應(yīng)的時間(實現(xiàn)中 M-轉(zhuǎn)換-平分”完成之后,調(diào)度器基于 credit 值和 BOOST 次 VCPU 的優(yōu)先級。首先,判斷 VCPU 的 credit 是否已經(jīng)用完態(tài)置為 OVER。然后,判斷 BOOST 次數(shù)(BoostTimes)是否保持 VCPU 的狀態(tài)繼續(xù)為 BOOST,否則將其狀態(tài)置為 UNU 隊列的優(yōu)先級狀態(tài)和處理過程。
本文編號:2751979
【學(xué)位授予單位】:華中科技大學(xué)
【學(xué)位級別】:碩士
【學(xué)位授予年份】:2009
【分類號】:TP302
【圖文】:
先級:BOOST、UNDER 和 OVER VCPU 運行隊列。VCPU 有三種狀態(tài):BOOST、UNDOVER 表示虛擬機中 VCPU 的 credit 值已用完,UNDST 是 Xen 最新加入的狀態(tài),由喚醒操作帶回。在 Cr VCPU 總是被放在調(diào)度隊列的尾部,雖然調(diào)度器會須等待排在其前面的所有 VCPU 都運行完才會被調(diào),當事件被發(fā)送到虛擬機的 VCPU 時,如果 VCPU喚醒,調(diào)度器會被立即運行并重新計算調(diào)度順序,如BOOST 狀態(tài),則之前正在運行的虛擬機會被搶占,否隊列末尾。因此,處于 BOOST 狀態(tài)的虛擬機具有最 VCPU 總是優(yōu)先于 OVER 狀態(tài)的 VCPU 被調(diào)度,只無法運行時才會調(diào)度到 OVER 狀態(tài)的 VCPU。入 BOOST 狀態(tài)的 Credit 算法在一定的條件下可以取應(yīng)延遲的平均值。但是當多個事件頻發(fā)時,由于沒有理性,BOOST 的優(yōu)勢便無法體現(xiàn),從而并不能真正
先級、基于份額的動態(tài)優(yōu)先級控制和變長時間片。3.3.1 靜態(tài)優(yōu)先級靜態(tài)優(yōu)先級通過一種新的虛擬機配置參數(shù)來實現(xiàn)——實時屬性參數(shù) realtim(RT)。RT 參數(shù)獨立于權(quán)重(Weight)和能限(Capacity)參數(shù),用來指定是否將一個虛擬機設(shè)置為具有最高優(yōu)先級的實時虛擬機。同時,為了滿足用戶的不同需要,RT 允許被設(shè)置為 0~60 中的任何數(shù)值,數(shù)值越大,子優(yōu)先級越高(子優(yōu)先級實際上是通過控制與 RT 數(shù)值相當?shù)?BOOST 次數(shù)來動態(tài)確定的),但 RT>1 的虛擬機的優(yōu)先級均大于 RT=0 的虛擬機。這一參數(shù)的改變過程由于需要控制 Hypervisor 中的 CPU 調(diào)度模塊進行處理,因此,用戶空間的控制請求需要封裝成 Hypercall 命令陷入到 Hypervisor 中。Hyperca類似于傳統(tǒng)操作系統(tǒng)中的系統(tǒng)調(diào)用,允許客戶虛擬機執(zhí)行一個同步軟陷阱陷入Hypervisor 中執(zhí)行一個特權(quán)操作。此處 Hypercall 的類型為__HYPERVISOR_domct現(xiàn)有結(jié)構(gòu)下,與調(diào)度參數(shù)相關(guān)的信息都是通過 struct xen_domctl_sched_credit 這個數(shù)據(jù)結(jié)構(gòu)來傳遞的,其數(shù)據(jù)結(jié)構(gòu)關(guān)系如圖 3.3 所示。
BoostTimes 即 BOOST 的次數(shù),CreditsPerBoost 表示一次值(實現(xiàn)中 CreditsPerBoost 為 10 毫秒);,MsecsPerBoost 表示一次 BOOST 對應(yīng)的時間(實現(xiàn)中 M-轉(zhuǎn)換-平分”完成之后,調(diào)度器基于 credit 值和 BOOST 次 VCPU 的優(yōu)先級。首先,判斷 VCPU 的 credit 是否已經(jīng)用完態(tài)置為 OVER。然后,判斷 BOOST 次數(shù)(BoostTimes)是否保持 VCPU 的狀態(tài)繼續(xù)為 BOOST,否則將其狀態(tài)置為 UNU 隊列的優(yōu)先級狀態(tài)和處理過程。
【引證文獻】
相關(guān)博士學(xué)位論文 前1條
1 陳華才;虛擬化環(huán)境中計算效能優(yōu)化研究[D];華中科技大學(xué);2011年
相關(guān)碩士學(xué)位論文 前1條
1 謝雪嬌;過載虛機條件下MPI通信性能改善方法研究[D];華中科技大學(xué);2011年
本文編號:2751979
本文鏈接:http://sikaile.net/kejilunwen/jisuanjikexuelunwen/2751979.html
最近更新
教材專著