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

一種自旋鎖搶占調(diào)度算法選擇方法及裝置制造方法

文檔序號(hào):6524587閱讀:174來(lái)源:國(guó)知局
一種自旋鎖搶占調(diào)度算法選擇方法及裝置制造方法
【專利摘要】本發(fā)明公開了一種自旋鎖搶占調(diào)度算法選擇方法及裝置,該方法包括:采集物理中央處理器的實(shí)時(shí)信息,該實(shí)時(shí)信息包括:虛擬機(jī)管理器管理的目標(biāo)虛擬機(jī)上處于非休眠狀態(tài)的虛擬中央處理器的數(shù)量,該虛擬機(jī)管理器為物理中央處理器上運(yùn)行的虛擬機(jī)管理器;根據(jù)實(shí)時(shí)信息分析目標(biāo)虛擬機(jī)競(jìng)爭(zhēng)自旋鎖的競(jìng)爭(zhēng)場(chǎng)景;根據(jù)競(jìng)爭(zhēng)場(chǎng)景計(jì)算目標(biāo)虛擬機(jī)針對(duì)自旋鎖的等待閾值;從存儲(chǔ)的等待閾值與調(diào)度算法的關(guān)系集中選擇等待閾值對(duì)應(yīng)的調(diào)度算法;執(zhí)行選擇的調(diào)度算法調(diào)度目標(biāo)虛擬機(jī)上的虛擬中央處理器運(yùn)行。實(shí)施本發(fā)明實(shí)施例,可以提高虛擬機(jī)管理器的整體性能。
【專利說明】一種自旋鎖搶占調(diào)度算法選擇方法及裝置
【技術(shù)領(lǐng)域】
[0001 ] 本發(fā)明涉及通信【技術(shù)領(lǐng)域】,具體涉及一種自旋鎖搶占調(diào)度算法選擇方法及裝置。【背景技術(shù)】
[0002]自旋鎖是為保護(hù)共享資源而提出的一種鎖機(jī)制,在任何時(shí)刻,自旋鎖最多只能有一個(gè)保持者,即在任何時(shí)刻最多只能有一個(gè)執(zhí)行單元獲得自旋鎖,因自旋鎖能夠快速響應(yīng)且支持多核處理器等優(yōu)點(diǎn)而被廣泛采用。在虛擬化環(huán)境下,為了最大化利用系統(tǒng)資源,會(huì)開啟多個(gè)虛擬機(jī),如果虛擬中央處理器(virtual central processing unit, VCPU)的數(shù)量大于物理中央處理器(physical central processing unit, PCPU)的數(shù)量,將會(huì)出現(xiàn)多個(gè)VCPU競(jìng)爭(zhēng)同一個(gè)PCPU的情況,因此持有自旋鎖并處于運(yùn)行狀態(tài)的VCPU可能會(huì)被競(jìng)爭(zhēng)同一個(gè)PCPU的另一個(gè)VCPU搶占,當(dāng)持有自旋鎖的VCPU被搶占后,競(jìng)爭(zhēng)同一自旋鎖的其它VCPU將一直等待下去。目前,主要有兩種解決自旋鎖搶占的方式,方式一是:在做自旋等待的循環(huán)代碼中插入暫停指令(如=PAUSE指令),當(dāng)持有自旋鎖的VCPU被搶占后,運(yùn)行暫停指令使競(jìng)爭(zhēng)同一自旋鎖的其它VCPU進(jìn)入忙等狀態(tài),當(dāng)檢測(cè)到暫停指令的循環(huán)時(shí)間超過等待閾值時(shí),將這些VCPU重新放入等待隊(duì)列中進(jìn)行等待;方式二是:當(dāng)持有自旋鎖的VCPU被搶占后,調(diào)用調(diào)度算法調(diào)度虛擬機(jī)上的VCPU運(yùn)行,如協(xié)同調(diào)度(C0-SCheduling)算法,該算法可以將出現(xiàn)鎖搶占問題的虛擬機(jī)上的各個(gè)VCPU都調(diào)度到不同的PCPU上立刻運(yùn)行。
[0003]在方式一中,由于自旋鎖的等待閾值是固定的,因此無(wú)法隨虛擬機(jī)管理器(virtual machine monitor,VMM)負(fù)載運(yùn)行的變化而動(dòng)態(tài)的調(diào)整等待閾值。上述方式二中,由于目前一個(gè)VMM只有一種調(diào)度算法,因此,當(dāng)出現(xiàn)鎖搶占時(shí)只能調(diào)用一種調(diào)度算法,但這種算法有可能不能解決此時(shí)出現(xiàn)的鎖搶占問題??梢?,VMM的整體性能比較低。

【發(fā)明內(nèi)容】

[0004]本發(fā)明公開了 一種自旋鎖搶占調(diào)度算法選擇方法及裝置,用于提高虛擬機(jī)管理器的整體性能。
[0005]本發(fā)明第一方面提供一種自旋鎖搶占調(diào)度算法選擇方法,包括:
[0006]采集PCPU的實(shí)時(shí)信息,所述實(shí)時(shí)信息包括:VMM管理的目標(biāo)虛擬機(jī)上處于非休眠狀態(tài)的VCPU的數(shù)量,所述VMM為所述PCPU上運(yùn)行的VMM ;
[0007]根據(jù)所述實(shí)時(shí)信息分析所述目標(biāo)虛擬機(jī)競(jìng)爭(zhēng)自旋鎖的競(jìng)爭(zhēng)場(chǎng)景;
[0008]根據(jù)所述競(jìng)爭(zhēng)場(chǎng)景計(jì)算所述目標(biāo)虛擬機(jī)針對(duì)所述自旋鎖的等待閾值;
[0009]從存儲(chǔ)的等待閾值與調(diào)度算法的關(guān)系集中選擇所述等待閾值對(duì)應(yīng)的調(diào)度算法;
[0010]執(zhí)行選擇的所述調(diào)度算法調(diào)度所述目標(biāo)虛擬機(jī)上的VCPU。
[0011]結(jié)合本發(fā)明第一方面,在本發(fā)明第一方面的第一種可能的實(shí)現(xiàn)方式中,所述采集PCPU的實(shí)時(shí)信息之前,所述方法還包括:
[0012]將自旋鎖的等待閾值劃分為多個(gè)閾值區(qū)間,每個(gè)閾值區(qū)間分配一種調(diào)度算法;
[0013]存儲(chǔ)所述多個(gè)閾值區(qū)間與對(duì)應(yīng)的調(diào)度算法,得到等待閾值與調(diào)度算法的關(guān)系集。[0014]結(jié)合本發(fā)明第一方面,在本發(fā)明第一方面的第二種可能的實(shí)現(xiàn)方式中,所述實(shí)時(shí)信息還包括:
[0015]所述PCPU運(yùn)行隊(duì)列中的進(jìn)程數(shù)量和所述PCPU中處于運(yùn)行狀態(tài)的PCPU的數(shù)量;
[0016]所述根據(jù)所述實(shí)時(shí)信息分析所述目標(biāo)虛擬機(jī)競(jìng)爭(zhēng)自旋鎖的競(jìng)爭(zhēng)場(chǎng)景,包括:
[0017]根據(jù)所述實(shí)時(shí)信息計(jì)算所述目標(biāo)虛擬機(jī)競(jìng)爭(zhēng)自旋鎖的競(jìng)爭(zhēng)指數(shù);
[0018]根據(jù)所述競(jìng)爭(zhēng)指數(shù)分析所述目標(biāo)虛擬機(jī)競(jìng)爭(zhēng)所述自旋鎖的競(jìng)爭(zhēng)場(chǎng)景。
[0019]結(jié)合本發(fā)明第一方面的第二種可能的實(shí)現(xiàn)方式,在本發(fā)明第一方面的第三種可能的實(shí)現(xiàn)方式中,所述根據(jù)所述競(jìng)爭(zhēng)指數(shù)分析所述目標(biāo)虛擬機(jī)競(jìng)爭(zhēng)所述自旋鎖的競(jìng)爭(zhēng)場(chǎng)景,包括:
[0020]判斷所述目標(biāo)虛擬機(jī)競(jìng)爭(zhēng)所述自旋鎖的競(jìng)爭(zhēng)指數(shù)是否小于或等于預(yù)設(shè)最小指數(shù),若是,則將所述目標(biāo)虛擬機(jī)競(jìng)爭(zhēng)所述自旋鎖的競(jìng)爭(zhēng)場(chǎng)景的級(jí)別識(shí)別為低;
[0021]若否,則判斷所述目標(biāo)虛擬機(jī)競(jìng)爭(zhēng)所述自旋鎖的競(jìng)爭(zhēng)指數(shù)是否小于或等于預(yù)設(shè)最大指數(shù),若是,則將所述目標(biāo)虛擬機(jī)競(jìng)爭(zhēng)所述自旋鎖的所述競(jìng)爭(zhēng)場(chǎng)景的級(jí)別識(shí)別為中;
[0022]若否,則將所述目標(biāo)虛擬機(jī)競(jìng)爭(zhēng)所述自旋鎖的所述競(jìng)爭(zhēng)場(chǎng)景的級(jí)別識(shí)別為高。
[0023]結(jié)合本發(fā)明第一方面的第三種可能的實(shí)現(xiàn)方式,在本發(fā)明第一方面的第四種可能的實(shí)現(xiàn)方式中,所述根據(jù)所述競(jìng)爭(zhēng)場(chǎng)景計(jì)算所述目標(biāo)虛擬機(jī)針對(duì)所述自旋鎖的等待閾值,包括:
[0024]判斷所述競(jìng)爭(zhēng)場(chǎng)景的級(jí)別是否為低,若是,則減小所述目標(biāo)虛擬機(jī)針對(duì)所述自旋鎖的等待閾值;
[0025]若否,則判斷所述競(jìng)爭(zhēng)場(chǎng)景的級(jí)別是否為中,若是,則保持所述目標(biāo)虛擬機(jī)針對(duì)所述自旋鎖的等待閾值不變;
[0026]若否,則增加所述目標(biāo)虛擬機(jī)針對(duì)所述自旋鎖的等待閾值。
[0027]本發(fā)明第二方面提供一種自旋鎖搶占調(diào)度算法選擇裝置,包括:
[0028]采集模塊,用于采集PCPU的實(shí)時(shí)信息,所述實(shí)時(shí)信息包括:VMM管理的目標(biāo)虛擬機(jī)上處于非休眠狀態(tài)的VCPU的數(shù)量,所述VMM為所述PCPU上運(yùn)行的VMM ;
[0029]分析模塊,用于根據(jù)所述采集模塊采集的所述實(shí)時(shí)信息分析所述目標(biāo)虛擬機(jī)競(jìng)爭(zhēng)自旋鎖的競(jìng)爭(zhēng)場(chǎng)景;
[0030]計(jì)算模塊,用于根據(jù)所述分析模塊分析的所述競(jìng)爭(zhēng)場(chǎng)景計(jì)算所述目標(biāo)虛擬機(jī)針對(duì)所述自旋鎖的等待閾值;
[0031]選擇模塊,用于從存儲(chǔ)的等待閾值與調(diào)度算法的關(guān)系集中選擇所述等待閾值對(duì)應(yīng)的調(diào)度算法;
[0032]執(zhí)行模塊,用于執(zhí)行所述選擇模塊選擇的所述調(diào)度算法調(diào)度所述目標(biāo)虛擬機(jī)上的VCPU運(yùn)行。
[0033]結(jié)合本發(fā)明第二方面,在本發(fā)明第二方面的第一種可能的實(shí)現(xiàn)方式中,所述裝置還包括:
[0034]分配模塊,用于將自旋鎖的等待閾值劃分為多個(gè)閾值區(qū)間,每個(gè)閾值區(qū)間分配一種調(diào)度算法;
[0035]存儲(chǔ)模塊,用于存儲(chǔ)所述分配模塊獲得的所述多個(gè)閾值區(qū)間與對(duì)應(yīng)的調(diào)度算法,得到等待閾值與調(diào)度算法的關(guān)系集。[0036]結(jié)合本發(fā)明第二方面,在本發(fā)明第二方面的第二種可能的實(shí)現(xiàn)方式中,所述實(shí)時(shí)信息還包括:
[0037]所述PCPU運(yùn)行隊(duì)列中的進(jìn)程數(shù)量和所述PCPU中處于運(yùn)行狀態(tài)的PCPU的數(shù)量;
[0038]所述分析模塊包括:
[0039]第一計(jì)算單元,用于根據(jù)所述采集模塊采集的所述實(shí)時(shí)信息計(jì)算所述目標(biāo)虛擬機(jī)競(jìng)爭(zhēng)自旋鎖的競(jìng)爭(zhēng)指數(shù);
[0040]分析單元,用于根據(jù)所述第一計(jì)算單元計(jì)算的所述競(jìng)爭(zhēng)指數(shù)分析所述目標(biāo)虛擬機(jī)競(jìng)爭(zhēng)所述自旋鎖的競(jìng)爭(zhēng)場(chǎng)景。
[0041]結(jié)合本發(fā)明第二方面的第二種可能的實(shí)現(xiàn)方式,在本發(fā)明第二方面的第三種可能的實(shí)現(xiàn)方式中,所述分析單元包括:
[0042]第一判斷子單元,用于判斷所述第一計(jì)算單元計(jì)算的所述目標(biāo)虛擬機(jī)競(jìng)爭(zhēng)所述自旋鎖的競(jìng)爭(zhēng)指數(shù)是否小于或等于預(yù)設(shè)最小指數(shù);
[0043]識(shí)別子單元,用于當(dāng)所述第一判斷子單元的判斷結(jié)果為是時(shí),將所述目標(biāo)虛擬機(jī)競(jìng)爭(zhēng)所述自旋鎖的競(jìng)爭(zhēng)場(chǎng)景的級(jí)別識(shí)別為低;
[0044]第二判斷子單元,用于當(dāng)所述第一判斷子單元的判斷結(jié)果為否時(shí),判斷所述目標(biāo)虛擬機(jī)競(jìng)爭(zhēng)所述自旋鎖的競(jìng)爭(zhēng)指數(shù)是否小于或等于預(yù)設(shè)最大指數(shù);
[0045]識(shí)別子單元,還用于當(dāng)所述第二判斷子單元的判斷結(jié)果為是時(shí),將所述目標(biāo)虛擬機(jī)競(jìng)爭(zhēng)所述自旋鎖的所述競(jìng)爭(zhēng)場(chǎng)景的級(jí)別識(shí)別為中;
[0046]識(shí)別子單元,還用于當(dāng)所述第二判斷子單元的判斷結(jié)果為否時(shí),將所述目標(biāo)虛擬機(jī)競(jìng)爭(zhēng)所述自旋鎖的所述競(jìng)爭(zhēng)場(chǎng)景的級(jí)別識(shí)別為高。
[0047]結(jié)合本發(fā)明第二方面的第三種可能的實(shí)現(xiàn)方式,在本發(fā)明第二方面的第四種可能的實(shí)現(xiàn)方式中,所述計(jì)算模塊包括:
[0048]第一判斷單元,用于判斷所述識(shí)別子單元識(shí)別的所述競(jìng)爭(zhēng)場(chǎng)景的級(jí)別是否為低;
[0049]第二計(jì)算單元,用于當(dāng)所述第一判斷單元的判斷結(jié)果為是時(shí),減小所述目標(biāo)虛擬機(jī)針對(duì)所述自旋鎖的等待閾值;
[0050]第二判斷單元,用于當(dāng)所述第一判斷單元的判斷結(jié)果為否時(shí),判斷所述識(shí)別子單元識(shí)別的所述競(jìng)爭(zhēng)場(chǎng)景的級(jí)別是否為中;
[0051]第二計(jì)算單元,還用于當(dāng)所述第二判斷單元的判斷結(jié)果為是時(shí),保持所述目標(biāo)虛擬機(jī)針對(duì)所述自旋鎖的等待閾值不變;
[0052]第二計(jì)算單元,還用于當(dāng)所述第二判斷單元的判斷結(jié)果為否時(shí),則增加所述目標(biāo)虛擬機(jī)針對(duì)所述自旋鎖的等待閾值。
[0053]本發(fā)明實(shí)施例,與現(xiàn)有技術(shù)相比,不僅可以根據(jù)PCPU的實(shí)時(shí)信息,計(jì)算目標(biāo)虛擬機(jī)針對(duì)自旋鎖的等待閾值,還可以根據(jù)計(jì)算得到的等待閾值從存儲(chǔ)的等待閾值與調(diào)度算法的關(guān)系集中選擇相應(yīng)的調(diào)度算法,以便調(diào)度目標(biāo)虛擬機(jī)上的VCPU運(yùn)行,因此,可以提高VMM的整體性能。
【專利附圖】

【附圖說明】
[0054]為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0055]圖1是本發(fā)明實(shí)施例公開的一種自旋鎖搶占調(diào)度算法選擇方法的流程圖;
[0056]圖2是本發(fā)明實(shí)施例公開的另一種自旋鎖搶占調(diào)度算法選擇方法的流程圖;
[0057]圖3是本發(fā)明實(shí)施例公開的一種自旋鎖搶占調(diào)度算法選擇裝置的結(jié)構(gòu)圖;
[0058]圖4是本發(fā)明實(shí)施例公開的另一種自旋鎖搶占調(diào)度算法選擇裝置的結(jié)構(gòu)圖。
【具體實(shí)施方式】
[0059]下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0060]本發(fā)明實(shí)施例中提供了 一種自旋鎖搶占調(diào)度算法選擇方法及裝置,用于提高VMM的整體性能。以下分別進(jìn)行詳細(xì)說明。
[0061]請(qǐng)參閱圖1,圖1是本發(fā)明實(shí)施例公開的一種自旋鎖搶占調(diào)度算法選擇方法的流程圖。圖1所示的自旋鎖搶占調(diào)度算法選擇方法適用于各種虛擬化操作平臺(tái)。如圖1所示,該自旋鎖搶占調(diào)度算法選擇方法可以包括以下步驟。
[0062]SlOl、采集PCPU的實(shí)時(shí)信息,該實(shí)時(shí)信息包括:VMM管理的目標(biāo)虛擬機(jī)上處于非休眠狀態(tài)的VCPU的數(shù)量,該VMM為PCPU上運(yùn)行的VMM。
[0063]優(yōu)選地,VMM可以采集PCPU的實(shí)時(shí)信息,該實(shí)時(shí)信息包括:VMM管理的目標(biāo)虛擬機(jī)上處于非休眠狀態(tài)的VCPU的數(shù)量,該VMM為PCPU上運(yùn)行的VMM。
[0064]可選地,不同時(shí)間的PCPU的信息不同,例如,目標(biāo)虛擬機(jī)上的一個(gè)VCPU前一刻可能處于休眠狀態(tài),而下一刻有可能在PCPU等待隊(duì)列中處于等待狀態(tài)、也有可能在PCPU上運(yùn)行處于運(yùn)行狀態(tài),因此,為了 了解某一時(shí)刻的所有PCPU的信息,需要采集此時(shí)所有PCPU的實(shí)時(shí)信息。但具體什么時(shí)間采集PCPU的實(shí)時(shí)信息,可以預(yù)先設(shè)置一個(gè)周期,當(dāng)預(yù)先設(shè)置的周期到達(dá)時(shí)采集PCPU的實(shí)時(shí)信息,這個(gè)預(yù)先設(shè)置的周期的時(shí)間長(zhǎng)短可以根據(jù)需要設(shè)置;也可以在兩個(gè)采集周期之間,當(dāng)硬件統(tǒng)計(jì)到某一個(gè)VCPU的自旋鎖的等待時(shí)間超過自旋鎖的等待閾值時(shí),觸發(fā)硬件識(shí)別機(jī)制工作,以觸發(fā)VMM采集此時(shí)PCPU的實(shí)時(shí)信息。因此,具體采用周期性采集,還是采用觸發(fā)式采集,根據(jù)需要而定,本發(fā)明實(shí)施例不作限定。其中,自旋鎖的等待閾值定義為在VCPU競(jìng)爭(zhēng)的自旋鎖被搶占后,VCPU將處于忙等狀態(tài),當(dāng)VCPU處于忙等狀態(tài)的時(shí)間超過等待閾值時(shí),該VCPU將被重新放入之前的PCPU等待隊(duì)列中進(jìn)行等待。非休眠狀態(tài)為除休眠狀態(tài)外的其它任何狀態(tài),如等待狀態(tài)、運(yùn)行狀態(tài)等。
[0065]S102、根據(jù)實(shí)時(shí)信息分析目標(biāo)虛擬機(jī)競(jìng)爭(zhēng)自旋鎖的競(jìng)爭(zhēng)場(chǎng)景。
[0066]優(yōu)選地,VMM可以根據(jù)實(shí)時(shí)信息分析目標(biāo)虛擬機(jī)競(jìng)爭(zhēng)自旋鎖的競(jìng)爭(zhēng)場(chǎng)景。
[0067]可選地,可以根據(jù)采集的實(shí)時(shí)信息分析目標(biāo)虛擬機(jī)競(jìng)爭(zhēng)自旋鎖的競(jìng)爭(zhēng)場(chǎng)景,以便了解目標(biāo)虛擬機(jī)競(jìng)爭(zhēng)自旋鎖的環(huán)境為寬松、適中或激烈。
[0068]S103、根據(jù)競(jìng)爭(zhēng)場(chǎng)景計(jì)算目標(biāo)虛擬機(jī)針對(duì)自旋鎖的等待閾值。
[0069]優(yōu)選地,VMM可以根據(jù)競(jìng)爭(zhēng)場(chǎng)景計(jì)算目標(biāo)虛擬機(jī)針對(duì)自旋鎖的等待閾值。
[0070]可選地,為了得到滿足此時(shí)競(jìng)爭(zhēng)場(chǎng)景的自旋鎖的等待閾值,可以根據(jù)目標(biāo)虛擬機(jī)競(jìng)爭(zhēng)自旋鎖的環(huán)境為寬松、適中或激烈的狀態(tài),適當(dāng)?shù)恼{(diào)整當(dāng)前自旋鎖的等待閾值。
[0071]S104、從存儲(chǔ)的等待閾值與調(diào)度算法的關(guān)系集中選擇等待閾值對(duì)應(yīng)的調(diào)度算法。
[0072]優(yōu)選地,VMM可以從存儲(chǔ)的等待閾值與調(diào)度算法的關(guān)系集中選擇等待閾值對(duì)應(yīng)的調(diào)度算法。
[0073]可選地,從存儲(chǔ)有等待閾值與調(diào)度算法的關(guān)系集中,查找新的目標(biāo)虛擬機(jī)針對(duì)自旋鎖的等待閾值對(duì)應(yīng)存儲(chǔ)的等待閾值,并根據(jù)該等待閾值查找到對(duì)應(yīng)的調(diào)度算法。
[0074]S105、執(zhí)行選擇的調(diào)度算法調(diào)度目標(biāo)虛擬機(jī)上的VCPU運(yùn)行。
[0075]優(yōu)選地,VMM可以執(zhí)行選擇的調(diào)度算法調(diào)度目標(biāo)虛擬機(jī)上的VCPU運(yùn)行。
[0076]可選地,VMM執(zhí)行選擇的調(diào)度算法調(diào)度目標(biāo)虛擬機(jī)上的VCPU運(yùn)行。當(dāng)選擇的是協(xié)同調(diào)度(co-scheduling,CS)算法時(shí),步驟S105將出現(xiàn)鎖搶占問題的虛擬機(jī)各個(gè)VCPU都調(diào)度到不同的PCPU上立刻運(yùn)行;當(dāng)選擇的是完全公平調(diào)度(completely fair schedular,CFS)時(shí),步驟S105將消耗時(shí)間過長(zhǎng)的VCPU調(diào)離PCPU等待隊(duì)列。
[0077]圖1所描述的自旋鎖搶占調(diào)度算法選擇方法中,不僅可以根據(jù)PCPU的實(shí)時(shí)信息,計(jì)算目標(biāo)虛擬機(jī)針對(duì)自旋鎖的等待閾值,還可以根據(jù)計(jì)算得到的等待閾值從存儲(chǔ)的等待閾值與調(diào)度算法的關(guān)系集中選擇相應(yīng)的調(diào)度算法,以便調(diào)度目標(biāo)虛擬機(jī)上的VCPU運(yùn)行,因此,可以提高VMM的整體性能。
[0078]請(qǐng)參閱圖2,圖2是本發(fā)明實(shí)施例公開的另一種自旋鎖搶占調(diào)度算法選擇方法的流程圖。圖2所示的自旋鎖搶占調(diào)度算法選擇方法適用于各種虛擬化操作平臺(tái)。如圖2所示,該自旋鎖搶占調(diào)度算法選擇方法可以包括以下步驟。
[0079]S201、將自旋鎖的等待閾值劃分為多個(gè)閾值區(qū)間,每個(gè)閾值區(qū)間分配一種調(diào)度算法。
[0080]可選地,不同的自旋鎖的等待閾值意味著競(jìng)爭(zhēng)自旋鎖的環(huán)境不同,不同的競(jìng)爭(zhēng)自旋鎖的環(huán)境需要不同的調(diào)度算法。但為了保證VMM的整體性能,自旋鎖的等待閾值不應(yīng)太大,也不應(yīng)太小,因此,自旋鎖的等待閾值需要預(yù)先設(shè)置一個(gè)最小等待閾值和一個(gè)最大等待閾值。將預(yù)設(shè)最小等待閾值與預(yù)設(shè)最大等待閾值之間的自旋鎖的等待閾值劃分為多個(gè)閾值區(qū)間,每個(gè)閾值區(qū)間需要的調(diào)度算法不同,因此,給每個(gè)閾值區(qū)間分配一種調(diào)度算法。
[0081]舉例說明,假設(shè)預(yù)設(shè)最小等待閾值為a,預(yù)設(shè)最大等待閾值為C,將a與c之間的等待閾值劃分為(a,b)和(b,c)兩個(gè)閾值區(qū)間,給(a,b)閾值區(qū)間分配CFS算法、(b,c)閾值區(qū)間分配CS算法。
[0082]S202、存儲(chǔ)多個(gè)閾值區(qū)間與對(duì)應(yīng)的調(diào)度算法,得到等待閾值與調(diào)度算法的關(guān)系集。
[0083]舉例說明,將閾值區(qū)間(a,b)與它對(duì)應(yīng)的CFS調(diào)度算法,以及閾值區(qū)間(b,c)與它對(duì)應(yīng)的CS調(diào)度算法進(jìn)行存儲(chǔ),得到等待閾值與調(diào)度算法的關(guān)系集。
[0084]S203、采集PCPU的實(shí)時(shí)信息,該實(shí)時(shí)信息包括:VMM管理的目標(biāo)虛擬機(jī)上處于非休眠狀態(tài)的VCPU的數(shù)量,該VMM為PCPU上運(yùn)行的VMM。
[0085]可選地,不同時(shí)間的PCPU的信息不同,例如,目標(biāo)虛擬機(jī)上的一個(gè)VCPU前一刻可能處于休眠狀態(tài),而下一刻有可能在PCPU等待隊(duì)列中處于等待狀態(tài)、也有可能在PCPU上運(yùn)行處于運(yùn)行狀態(tài),因此,為了 了解某一時(shí)刻的所有PCPU的信息,需要采集此時(shí)所有PCPU的實(shí)時(shí)信息。但具體什么時(shí)間采集PCPU的實(shí)時(shí)信息,可以預(yù)先設(shè)置一個(gè)周期,當(dāng)預(yù)先設(shè)置的周期到達(dá)時(shí)采集PCPU的實(shí)時(shí)信息,這個(gè)預(yù)先設(shè)置的周期的時(shí)間長(zhǎng)短可以根據(jù)需要設(shè)置;也可以在兩個(gè)采集周期之間,當(dāng)硬件統(tǒng)計(jì)到某一個(gè)VCPU的自旋鎖的等待時(shí)間超過自旋鎖的等待閾值時(shí),觸發(fā)硬件識(shí)別機(jī)制工作,以觸發(fā)VMM采集此時(shí)CPU的實(shí)時(shí)信息。因此,具體采用周期性采集,還是采用觸發(fā)式采集,根據(jù)需要而定,本發(fā)明實(shí)施例不作限定。其中,自旋鎖的等待閾值定義為在VCPU競(jìng)爭(zhēng)的自旋鎖被搶占后,VCPU將處于忙等狀態(tài),當(dāng)VCPU處于忙等狀態(tài)的時(shí)間超過等待閾值時(shí),該VCPU將被重新放入之前的PCPU等待隊(duì)列中進(jìn)行等待。非休眠狀態(tài)為除休眠狀態(tài)外的其它任何狀態(tài),如等待狀態(tài)、運(yùn)行狀態(tài)等。
[0086]S204、根據(jù)實(shí)時(shí)信息分析目標(biāo)虛擬機(jī)競(jìng)爭(zhēng)自旋鎖的競(jìng)爭(zhēng)場(chǎng)景。
[0087]作為一種可能的實(shí)施方式,采集的PCPU的實(shí)時(shí)信息還可以包括:PCPU運(yùn)行隊(duì)列中的進(jìn)程數(shù)量和PCPU中處于運(yùn)行狀態(tài)的PCPU的數(shù)量。根據(jù)實(shí)時(shí)信息分析目標(biāo)虛擬機(jī)競(jìng)爭(zhēng)自旋鎖的競(jìng)爭(zhēng)場(chǎng)景,可以包括以下步驟。
[0088]A、根據(jù)實(shí)時(shí)信息計(jì)算目標(biāo)虛擬機(jī)競(jìng)爭(zhēng)自旋鎖的競(jìng)爭(zhēng)指數(shù)。
[0089]可選地,可以通過多種計(jì)算方法得到目標(biāo)虛擬機(jī)競(jìng)爭(zhēng)自旋鎖的競(jìng)爭(zhēng)指數(shù)。舉例說明,假設(shè)PCPU運(yùn)行隊(duì)列中的進(jìn)程數(shù)量為NT,VMM管理的目標(biāo)虛擬機(jī)上處于非休眠狀態(tài)的VCPU的數(shù)量為NVi, PCPU中處于運(yùn)行狀態(tài)的PCPU的數(shù)量為NCL,則VMM的平均負(fù)載長(zhǎng)度AL可以由PCPU運(yùn)行隊(duì)列中的進(jìn)程數(shù)量NT除以PCPU中處于運(yùn)行狀態(tài)的PCPU的數(shù)量NCL,再向下取整得到,即
[0090]AL = [NT/NCL]
[0091]其中,[]表示向下取整;目標(biāo)虛擬機(jī)內(nèi)最長(zhǎng)鎖等待VCPU數(shù)量VLi比VMM管理的目標(biāo)虛擬機(jī)上處于非休眠狀態(tài)的VCPU的數(shù)量NVi少一,即
[0092]VLi = NV1-1
[0093]目標(biāo)虛擬機(jī)競(jìng)爭(zhēng)自旋鎖的競(jìng)爭(zhēng)指數(shù)LCi可以由VMM的平均負(fù)載長(zhǎng)度AL乘以目標(biāo)虛擬機(jī)內(nèi)最長(zhǎng)鎖等待VCPU數(shù)量VLi得到`,即
[0094]LCi = AL^VLi
[0095]其中,下標(biāo)i表示是第i個(gè)目標(biāo)虛擬機(jī)。上述方法是計(jì)算自旋鎖的競(jìng)爭(zhēng)指數(shù)的其中一種算法,不同的計(jì)算方法可能計(jì)算得到的競(jìng)爭(zhēng)指數(shù)的數(shù)值不相。但不管用什么方法計(jì)算目標(biāo)虛擬機(jī)競(jìng)爭(zhēng)自旋鎖的競(jìng)爭(zhēng)指數(shù)、也不管計(jì)算的數(shù)值是多少,只要能夠正確表達(dá)出目標(biāo)虛擬機(jī)競(jìng)爭(zhēng)自旋鎖的競(jìng)爭(zhēng)指數(shù)即可。
[0096]B、根據(jù)競(jìng)爭(zhēng)指數(shù)分析目標(biāo)虛擬機(jī)競(jìng)爭(zhēng)自旋鎖的競(jìng)爭(zhēng)場(chǎng)景。
[0097]作為一種可能的實(shí)施方式,根據(jù)競(jìng)爭(zhēng)指數(shù)分析目標(biāo)虛擬機(jī)競(jìng)爭(zhēng)自旋鎖的競(jìng)爭(zhēng)場(chǎng)景,可以包括以下步驟。
[0098]B1、判斷目標(biāo)虛擬機(jī)競(jìng)爭(zhēng)自旋鎖的競(jìng)爭(zhēng)指數(shù)是否小于或等于預(yù)設(shè)最小指數(shù),若是,則將目標(biāo)虛擬機(jī)競(jìng)爭(zhēng)自旋鎖的競(jìng)爭(zhēng)場(chǎng)景的級(jí)別識(shí)別為低。
[0099]可選地,得到目標(biāo)虛擬機(jī)競(jìng)爭(zhēng)自旋鎖的競(jìng)爭(zhēng)指數(shù)后,將需要根據(jù)競(jìng)爭(zhēng)指數(shù)的大小判斷目前目標(biāo)虛擬機(jī)競(jìng)爭(zhēng)自旋鎖的競(jìng)爭(zhēng)場(chǎng)景的級(jí)別的高低。當(dāng)目標(biāo)虛擬機(jī)競(jìng)爭(zhēng)自旋鎖的競(jìng)爭(zhēng)指數(shù)小于或等于預(yù)設(shè)最小指數(shù)時(shí),認(rèn)為此時(shí)目標(biāo)虛擬機(jī)競(jìng)爭(zhēng)自旋鎖的環(huán)境比較寬松,將目標(biāo)虛擬機(jī)競(jìng)爭(zhēng)自旋鎖的競(jìng)爭(zhēng)場(chǎng)景的級(jí)別識(shí)別為低。
[0100]B2、若否,則判斷目標(biāo)虛擬機(jī)競(jìng)爭(zhēng)自旋鎖的競(jìng)爭(zhēng)指數(shù)是否小于或等于預(yù)設(shè)最大指數(shù),若是,則將目標(biāo)虛擬機(jī)競(jìng)爭(zhēng)自旋鎖的競(jìng)爭(zhēng)場(chǎng)景的級(jí)別識(shí)別為中。
[0101]可選地,當(dāng)目標(biāo)虛擬機(jī)競(jìng)爭(zhēng)自旋鎖的競(jìng)爭(zhēng)指數(shù)大于預(yù)設(shè)最小指數(shù)時(shí),將繼續(xù)判斷目標(biāo)虛擬機(jī)競(jìng)爭(zhēng)自旋鎖的競(jìng)爭(zhēng)指數(shù)是否小于或等于預(yù)設(shè)最大指數(shù),當(dāng)目標(biāo)虛擬機(jī)競(jìng)爭(zhēng)自旋鎖的競(jìng)爭(zhēng)指數(shù)大于預(yù)設(shè)最小指數(shù)、且小于或等于預(yù)設(shè)最大指數(shù)時(shí),認(rèn)為此時(shí)目標(biāo)虛擬機(jī)競(jìng)爭(zhēng)自旋鎖的環(huán)境比較適中,將目標(biāo)虛擬機(jī)競(jìng)爭(zhēng)自旋鎖的競(jìng)爭(zhēng)場(chǎng)景的級(jí)別識(shí)別為中。
[0102]B3、若否,則將目標(biāo)虛擬機(jī)競(jìng)爭(zhēng)自旋鎖的競(jìng)爭(zhēng)場(chǎng)景的級(jí)別識(shí)別為高。
[0103]可選地,當(dāng)目標(biāo)虛擬機(jī)競(jìng)爭(zhēng)自旋鎖的競(jìng)爭(zhēng)指數(shù)大于預(yù)設(shè)最大指數(shù)時(shí),認(rèn)為此時(shí)目標(biāo)虛擬機(jī)競(jìng)爭(zhēng)自旋鎖的環(huán)境比較激烈,將目標(biāo)虛擬機(jī)競(jìng)爭(zhēng)自旋鎖的競(jìng)爭(zhēng)場(chǎng)景的級(jí)別識(shí)別為高。其中,預(yù)設(shè)最小指數(shù)與預(yù)設(shè)最大指數(shù)是將計(jì)算得到的目標(biāo)虛擬機(jī)競(jìng)爭(zhēng)自旋鎖的競(jìng)爭(zhēng)指數(shù)進(jìn)行標(biāo)準(zhǔn)化處理得到的,如果采用的是0-1標(biāo)準(zhǔn)化處理,則預(yù)設(shè)最小指數(shù)為O、預(yù)設(shè)最大指數(shù)為1,如果采用采用的是0-2標(biāo)準(zhǔn)化處理,則預(yù)設(shè)最小指數(shù)為O、預(yù)設(shè)最大指數(shù)為2。因此,預(yù)設(shè)最小指數(shù)與預(yù)設(shè)最大指數(shù)將根據(jù)不同的標(biāo)準(zhǔn)化處理得到不同的值,具體采用那種標(biāo)準(zhǔn)化處理方式,以及最小指數(shù)與預(yù)設(shè)最大指數(shù)為多少,可以根據(jù)需要而定,本發(fā)明實(shí)施例不作限定。
[0104]S205、根據(jù)競(jìng)爭(zhēng)場(chǎng)景計(jì)算目標(biāo)虛擬機(jī)針對(duì)自旋鎖的等待閾值。
[0105]作為一種可能的實(shí)施方式,根據(jù)競(jìng)爭(zhēng)場(chǎng)景計(jì)算目標(biāo)虛擬機(jī)針對(duì)自旋鎖的等待閾值,可以包括以下步驟。
[0106]A、判斷競(jìng)爭(zhēng)場(chǎng)景的級(jí)別是否為低,若是,則減小目標(biāo)虛擬機(jī)針對(duì)自旋鎖的等待閾值。
[0107]可選地,當(dāng)判斷目標(biāo)虛擬機(jī)競(jìng)爭(zhēng)自旋鎖的競(jìng)爭(zhēng)場(chǎng)景的級(jí)別為低時(shí),認(rèn)為當(dāng)前競(jìng)爭(zhēng)自旋鎖的環(huán)境比較寬松,可以適當(dāng)?shù)臏p小目標(biāo)虛擬機(jī)針對(duì)自旋鎖的等待閾值,提高目標(biāo)虛擬機(jī)的競(jìng)爭(zhēng)強(qiáng)度。
[0108]B、若否,則判斷競(jìng)爭(zhēng)場(chǎng)景的級(jí)別是否為中,若是,則保持目標(biāo)虛擬機(jī)針對(duì)自旋鎖的等待閾值不變。
[0109]可選地,當(dāng)判斷目標(biāo)虛擬機(jī)競(jìng)爭(zhēng)自旋鎖的競(jìng)爭(zhēng)場(chǎng)景的級(jí)別不為低時(shí),將繼續(xù)判斷目標(biāo)虛擬機(jī)競(jìng)爭(zhēng)自旋鎖的競(jìng)爭(zhēng)場(chǎng)景是否為中,當(dāng)目標(biāo)虛擬機(jī)競(jìng)爭(zhēng)自旋鎖的競(jìng)爭(zhēng)場(chǎng)景的級(jí)別為中時(shí),認(rèn)為當(dāng)前競(jìng)爭(zhēng)自旋鎖的環(huán)境比較適中,目標(biāo)虛擬機(jī)針對(duì)自旋鎖的等待閾值可以保持不變。
[0110]C、若否,則增大目標(biāo)虛擬機(jī)針對(duì)自旋鎖的等待閾值。
[0111]可選地,當(dāng)目標(biāo)虛擬機(jī)競(jìng)爭(zhēng)自旋鎖的競(jìng)爭(zhēng)場(chǎng)景的級(jí)別為高時(shí),認(rèn)為當(dāng)前競(jìng)爭(zhēng)自旋鎖的環(huán)境比較激烈,可以適當(dāng)?shù)脑黾幽繕?biāo)虛擬機(jī)針對(duì)自旋鎖的等待閾值,適當(dāng)降低目標(biāo)虛擬機(jī)的競(jìng)爭(zhēng)強(qiáng)度。
[0112]本實(shí)施例中,可以有多種計(jì)算目標(biāo)虛擬機(jī)針對(duì)自旋鎖的等待閾值的方法,舉例說明,假設(shè)預(yù)設(shè)最小等待閾值為Min,預(yù)設(shè)最大閾值為Max,當(dāng)前目標(biāo)虛擬機(jī)針對(duì)自旋鎖的等待閾值為W,新的目標(biāo)虛擬機(jī)針對(duì)自旋鎖的等待閾值為W1,當(dāng)前自旋鎖的等待閥值調(diào)整的步長(zhǎng)為delta,當(dāng)目標(biāo)虛擬機(jī)競(jìng)爭(zhēng)自旋鎖的競(jìng)爭(zhēng)場(chǎng)景的級(jí)別為低時(shí),新的目標(biāo)虛擬機(jī)針對(duì)自旋鎖的等待閾值為W1可以由以下公式得到:`[0113]W1 = max (ff-delta, Min)
[0114]delta! = delta/2
[0115]當(dāng)目標(biāo)虛擬機(jī)競(jìng)爭(zhēng)自旋鎖的競(jìng)爭(zhēng)場(chǎng)景的級(jí)別識(shí)別為中時(shí),新的目標(biāo)虛擬機(jī)針對(duì)自旋鎖的等待閾值為W1可以由以下公式得到:[0116]W1 = W
[0117]Cielta1 = delta
[0118]當(dāng)目標(biāo)虛擬機(jī)競(jìng)爭(zhēng)自旋鎖的競(jìng)爭(zhēng)場(chǎng)景的級(jí)別為高時(shí),新的目標(biāo)虛擬機(jī)針對(duì)自旋鎖的等待閾值為W1可以由以下公式得到:
[0119]W1 = min (W+delta, Max)
[0120]Cielta1 = delta*2
[0121]初始化的自旋鎖的等待閥值調(diào)整的步長(zhǎng)為delta/4,其中,Clelta1為新的自旋鎖的等待閥值調(diào)整的步長(zhǎng)。不僅可以用當(dāng)前的等待閾值,計(jì)算新的等待閾值,還可以用多次歷史數(shù)據(jù)和二分迭代法計(jì)算新的等待閾值,具體用那一次的等待閾值和那種計(jì)算方法計(jì)算新的等待閾值,本發(fā)明實(shí)施例不作限定。
[0122]S206、從存儲(chǔ)的等待閾值與調(diào)度算法的關(guān)系集中選擇等待閾值對(duì)應(yīng)的調(diào)度算法。
[0123]可選地,從存儲(chǔ)有等待閾值與調(diào)度算法的關(guān)系集中,查找新的目標(biāo)虛擬機(jī)針對(duì)自旋鎖的等待閾值對(duì)應(yīng)存儲(chǔ)的那個(gè)閾值區(qū)間,并根據(jù)該閾值區(qū)間查找到對(duì)應(yīng)的調(diào)度算法。舉例說明,當(dāng)新的等待閾值落在閾值區(qū)間(a,b)里面時(shí),將選擇CFS調(diào)度算法;當(dāng)新的等待閾值落在閾值區(qū)間(b,c)里面時(shí),將選擇CS調(diào)度算法。
[0124]S207、執(zhí)行選擇的調(diào)度算法調(diào)度目標(biāo)虛擬機(jī)上的VCPU運(yùn)行。
[0125]可選地,VMM可以執(zhí)行選擇的調(diào)度算法調(diào)度目標(biāo)虛擬機(jī)上的VCPU運(yùn)行。當(dāng)選擇的是CS調(diào)度算法時(shí),步驟S207將出現(xiàn)鎖搶占問題的虛擬機(jī)各個(gè)VCPU都調(diào)度到不同的PCPU上立刻運(yùn)行;當(dāng)選擇的是CFS調(diào)度算法時(shí),步驟S207將消耗時(shí)間過長(zhǎng)的VCPU調(diào)離PCPU等待隊(duì)列。
[0126]圖2所描述的自旋鎖搶占調(diào)度算法選擇方法中,不僅可以根據(jù)PCPU的實(shí)時(shí)信息,計(jì)算目標(biāo)虛擬機(jī)針對(duì)自旋鎖的等待閾值,還可以根據(jù)計(jì)算得到的等待閾值從存儲(chǔ)的等待閾值與調(diào)度算法的關(guān)系集中選擇相應(yīng)的調(diào)度算法,以便調(diào)度目標(biāo)虛擬機(jī)上的VCPU運(yùn)行,因此,可以提高VMM的整體性能。
[0127]請(qǐng)參閱圖3,圖3是本發(fā)明實(shí)施例公開的一種自旋鎖搶占調(diào)度算法選擇裝置的結(jié)構(gòu)圖。圖3所示的自旋鎖搶占調(diào)度算法選擇裝置適用于各種虛擬化操作平臺(tái)。如圖3所示,該自旋鎖搶占調(diào)度算法選擇裝置300可以包括:
[0128]采集模塊301,用于采集PCPU的實(shí)時(shí)信息,該實(shí)時(shí)信息包括:VMM管理的目標(biāo)虛擬機(jī)上處于非休眠狀態(tài)的VCPU的數(shù)量,該VMM為PCPU上運(yùn)行的VMM ;
[0129]分析模塊302,用于根據(jù)采集模塊301采集的實(shí)時(shí)信息分析目標(biāo)虛擬機(jī)競(jìng)爭(zhēng)自旋鎖的競(jìng)爭(zhēng)場(chǎng)景;
[0130]計(jì)算模塊303,用于根據(jù)分析模塊302分析的競(jìng)爭(zhēng)場(chǎng)景計(jì)算目標(biāo)虛擬機(jī)針自旋鎖的等待閾值;
[0131]選擇模塊304,用于從存儲(chǔ)的等待閾值與調(diào)度算法的關(guān)系集中選擇等待閾值對(duì)應(yīng)的調(diào)度算法;
[0132]執(zhí)行模塊305,用于執(zhí)行選擇模塊304選擇的調(diào)度算法調(diào)度目標(biāo)虛擬機(jī)上的VCPU運(yùn)行。
[0133]作為一種可能的實(shí)施方式,該自旋鎖搶占調(diào)度算法選擇裝置300還可以包括:
[0134]分配模塊306,用于將自旋鎖的等待閾值劃分為多個(gè)閾值區(qū)間,每個(gè)閾值區(qū)間分配一種調(diào)度算法;
[0135]存儲(chǔ)模塊307,用于存儲(chǔ)分配模塊306獲得的多個(gè)閾值區(qū)間與對(duì)應(yīng)的調(diào)度算法,得到等待閾值與調(diào)度算法的關(guān)系集。
[0136]作為一種可能的實(shí)施方式,實(shí)時(shí)信息還可以包括:
[0137]PCPU運(yùn)行隊(duì)列中的進(jìn)程數(shù)量和PCPU中處于運(yùn)行狀態(tài)的PCPU的數(shù)量;
[0138]分析模塊302可以包括:
[0139]第一計(jì)算單元3021,用于根據(jù)采集模塊301采集的實(shí)時(shí)信息計(jì)算目標(biāo)虛擬機(jī)競(jìng)爭(zhēng)自旋鎖的競(jìng)爭(zhēng)指數(shù);
[0140]分析單元3022,用于根據(jù)第一計(jì)算單元3021計(jì)算的競(jìng)爭(zhēng)指數(shù)分析目標(biāo)虛擬機(jī)競(jìng)爭(zhēng)自旋鎖的競(jìng)爭(zhēng)場(chǎng)景。
[0141]作為一種可能的實(shí)施方式,分析單元3022可以包括:
[0142]第一判斷子單元30221,用于判斷第一計(jì)算單元3021計(jì)算的目標(biāo)虛擬機(jī)競(jìng)爭(zhēng)自旋鎖的競(jìng)爭(zhēng)指數(shù)是否小于或等于預(yù)設(shè)最小指數(shù);
[0143]識(shí)別子單元30222,用于當(dāng)?shù)谝慌袛嘧訂卧?0221的判斷結(jié)果為是時(shí),將目標(biāo)虛擬機(jī)競(jìng)爭(zhēng)自旋鎖的競(jìng)爭(zhēng)場(chǎng)景的級(jí)別識(shí)別為低;
[0144]第二判斷子單元30223,用于當(dāng)?shù)谝慌袛嘧訂卧?0221的判斷結(jié)果為否時(shí),判斷目標(biāo)虛擬機(jī)競(jìng)爭(zhēng)自旋鎖的競(jìng)爭(zhēng)指數(shù)是否小于或等于預(yù)設(shè)最大指數(shù);
[0145]識(shí)別子單元30222,還用于當(dāng)?shù)诙袛嘧訂卧?0223的判斷結(jié)果為是時(shí),將目標(biāo)虛擬機(jī)競(jìng)爭(zhēng)自旋鎖的競(jìng)爭(zhēng)場(chǎng)景的級(jí)別識(shí)別為中;
[0146]識(shí)別子單元30222,還用于當(dāng)?shù)诙袛嘧訂卧?0223的判斷結(jié)果為否時(shí),將目標(biāo)虛擬機(jī)競(jìng)爭(zhēng)自旋鎖的競(jìng)爭(zhēng)場(chǎng)景的級(jí)別識(shí)別為高。
[0147]作為一種可能的實(shí)施方式,計(jì)算模塊303可以包括:
[0148]第一判斷單元3031,用于判斷識(shí)別子單元30222識(shí)別的競(jìng)爭(zhēng)場(chǎng)景的級(jí)別是否為低;
[0149]第二計(jì)算單元3032,用于當(dāng)?shù)谝慌袛鄦卧?031的判斷結(jié)果為是時(shí),減小目標(biāo)虛擬機(jī)針對(duì)自旋鎖的等待閾值;
[0150]第二判斷單元3033,用于當(dāng)?shù)谝慌袛鄦卧?031的判斷結(jié)果為否時(shí),判斷識(shí)別子單元識(shí)別的競(jìng)爭(zhēng)場(chǎng)景的級(jí)別是否為中;
[0151]第二計(jì)算單元3032,還用于當(dāng)?shù)诙袛鄦卧?033的判斷結(jié)果為是時(shí),保持目標(biāo)虛擬機(jī)針對(duì)自旋鎖的等待閾值不變;
[0152]第二計(jì)算單元3032,還用于當(dāng)?shù)诙袛鄦卧?033的判斷結(jié)果為否時(shí),則增加目標(biāo)虛擬機(jī)針對(duì)自旋鎖的等待閾值。
[0153]本實(shí)施例中,選擇模塊304具體用于從存儲(chǔ)模塊307存儲(chǔ)的等待閾值與調(diào)度算法的關(guān)系集中選擇等待閾值對(duì)應(yīng)的調(diào)度算法。
[0154]圖3所描述的自旋鎖搶占調(diào)度算法選擇裝置中,不僅可以根據(jù)PCPU的實(shí)時(shí)信息,計(jì)算目標(biāo)虛擬機(jī)針對(duì)自旋鎖的等待閾值,還可以根據(jù)計(jì)算得到的等待閾值從存儲(chǔ)的等待閾值與調(diào)度算法的關(guān)系集中選擇相應(yīng)的調(diào)度算法,以便調(diào)度目標(biāo)虛擬機(jī)上的VCPU運(yùn)行,因此,可以提高VMM的整體性能。
[0155]請(qǐng)參閱圖4,圖4是本發(fā)明實(shí)施例公開的另一種自旋鎖搶占調(diào)度算法選擇裝置的結(jié)構(gòu)圖,用于執(zhí)行本發(fā)明實(shí)施例公開的自旋鎖搶占調(diào)度算法選擇方法。如圖4所示,該自旋鎖搶占調(diào)度算法選擇裝置400可以包括輸入模塊401、輸出模塊402和處理器403。在本發(fā)明的一些實(shí)施例中,輸入裝置401和處理器403之間、輸出裝置402和處理器403之間可以通過總線或其他方式連接,其中,圖4中以通過總線連接為例。
[0156]其中,處理器403可以執(zhí)行如下步驟:
[0157]采集PCPU的實(shí)時(shí)信息,該實(shí)時(shí)信息包括:VMM管理的目標(biāo)虛擬機(jī)上處于非休眠狀態(tài)的VCPU的數(shù)量,該VMM為PCPU上運(yùn)行的VMM ;
[0158]根據(jù)實(shí)時(shí)信息分析目標(biāo)虛擬機(jī)競(jìng)爭(zhēng)自旋鎖的競(jìng)爭(zhēng)場(chǎng)景;
[0159]根據(jù)競(jìng)爭(zhēng)場(chǎng)景計(jì)算目標(biāo)虛擬機(jī)針對(duì)自旋鎖的等待閾值;
[0160]從存儲(chǔ)的等待閾值與調(diào)度算法的關(guān)系集中選擇等待閾值對(duì)應(yīng)的調(diào)度算法;
[0161]執(zhí)行選擇的調(diào)度算法調(diào)度目標(biāo)虛擬機(jī)上的VCPU運(yùn)行。
[0162]作為一種可能的實(shí)施方式,處理器403還可以執(zhí)行如下步驟:
[0163]將自旋鎖的等待閾值劃分為多個(gè)閾值區(qū)間,每個(gè)閾值區(qū)間分配一種調(diào)度算法;
[0164]存儲(chǔ)多個(gè)閾值區(qū)間與對(duì)應(yīng)的調(diào)度算法,得到等待閾值與調(diào)度算法的關(guān)系集。
[0165]作為一種可能的實(shí)施方式,該實(shí)時(shí)信息還可以包括:
[0166]PCPU運(yùn)行隊(duì)列中的進(jìn)程數(shù)量和PCPU中處于運(yùn)行狀態(tài)的PCPU的數(shù)量;
[0167]處理器403根據(jù)實(shí)時(shí)信息分析目標(biāo)虛擬機(jī)競(jìng)爭(zhēng)自旋鎖的競(jìng)爭(zhēng)場(chǎng)景的方式具體為:
[0168]根據(jù)實(shí)時(shí)信息計(jì)算目標(biāo)虛擬機(jī)競(jìng)爭(zhēng)自旋鎖的競(jìng)爭(zhēng)指數(shù);
[0169]根據(jù)競(jìng)爭(zhēng)指數(shù)分析目標(biāo)虛擬機(jī)競(jìng)爭(zhēng)自旋鎖的競(jìng)爭(zhēng)場(chǎng)景。
[0170]作為一種可能的實(shí)施方式,處理器403根據(jù)競(jìng)爭(zhēng)指數(shù)分析目標(biāo)虛擬機(jī)競(jìng)爭(zhēng)自旋鎖的競(jìng)爭(zhēng)場(chǎng)景的方式具體為:
[0171]判斷目標(biāo)虛擬機(jī)競(jìng)爭(zhēng)自旋鎖的競(jìng)爭(zhēng)指數(shù)是否小于或等于預(yù)設(shè)最小指數(shù),若是,則將目標(biāo)虛擬機(jī)競(jìng)爭(zhēng)自旋鎖的競(jìng)爭(zhēng)場(chǎng)景的級(jí)別識(shí)別為低;
[0172]若否,則判斷目標(biāo)虛擬機(jī)競(jìng)爭(zhēng)自旋鎖的競(jìng)爭(zhēng)指數(shù)是否小于或等于預(yù)設(shè)最大指數(shù),若是,則將目標(biāo)虛擬機(jī)競(jìng)爭(zhēng)自旋鎖的競(jìng)爭(zhēng)場(chǎng)景的級(jí)別識(shí)別為中;
[0173]若否,則將目標(biāo)虛擬機(jī)競(jìng)爭(zhēng)自旋鎖的競(jìng)爭(zhēng)場(chǎng)景的級(jí)別識(shí)別為高。
[0174]作為一種可能的實(shí)施方式,處理器403根據(jù)競(jìng)爭(zhēng)場(chǎng)景計(jì)算目標(biāo)虛擬機(jī)針對(duì)自旋鎖的等待閾值的方式具體為:
[0175]判斷競(jìng)爭(zhēng)場(chǎng)景的級(jí)別是否為低,若是,則減小目標(biāo)虛擬機(jī)針對(duì)自旋鎖的等待閾值;
[0176]若否,則判斷競(jìng)爭(zhēng)場(chǎng)景的級(jí)別是否為中,若是,則保持目標(biāo)虛擬機(jī)針對(duì)自旋鎖的等待閾值不變;
[0177]若否,增加目標(biāo)虛擬機(jī)針對(duì)自旋鎖的等待閾值。
[0178]圖4所描述的自旋鎖搶占調(diào)度算法選擇裝置中,不僅可以根據(jù)PCPU的實(shí)時(shí)信息,計(jì)算目標(biāo)虛擬機(jī)針對(duì)自旋鎖的等待閾值,還可以根據(jù)計(jì)算得到的等待閾值從存儲(chǔ)的等待閾值與調(diào)度算法的關(guān)系集中選擇相應(yīng)的調(diào)度算法,以便調(diào)度目標(biāo)虛擬機(jī)上的VCPU運(yùn)行,因此,可以提高VMM的整體性能。
[0179]—個(gè)實(shí)施例中,本發(fā)明實(shí)施例進(jìn)一步公開一種計(jì)算機(jī)存儲(chǔ)介質(zhì),該計(jì)算機(jī)存儲(chǔ)介質(zhì)存儲(chǔ)有計(jì)算機(jī)程序,當(dāng)計(jì)算機(jī)存儲(chǔ)介質(zhì)中的計(jì)算機(jī)程序被讀取到計(jì)算機(jī)時(shí),能夠使得計(jì)算機(jī)完成本發(fā)明實(shí)施例公開的自旋鎖搶占調(diào)度算法選擇方法的全部步驟。
[0180]本領(lǐng)域普通技術(shù)人員可以理解上述實(shí)施例的各種方法中的全部或部分步驟是可以通過程序來(lái)指令相關(guān)的硬件來(lái)完成,該程序可以存儲(chǔ)于一計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,存儲(chǔ)介質(zhì)可以包括:閃存盤、只讀存儲(chǔ)器(Read-Only Memory,ROM)、隨機(jī)存取器(Random AccessMemory, RAM)、磁盤或光盤等。
[0181]以上對(duì)本發(fā)明實(shí)施例所提供的自旋鎖搶占調(diào)度算法選擇方法及裝置進(jìn)行了詳細(xì)介紹,本文中應(yīng)用了具體個(gè)例對(duì)本發(fā)明的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想;同時(shí),對(duì)于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明的思想,在【具體實(shí)施方式】及應(yīng)用范圍上均會(huì)有改變之處,綜上所述,本說明書內(nèi)容不應(yīng)理解為對(duì)本發(fā)明的限制。
【權(quán)利要求】
1.一種自旋鎖搶占調(diào)度算法選擇方法,其特征在于,包括: 采集物理中央處理器的實(shí)時(shí)信息,所述實(shí)時(shí)信息包括:虛擬機(jī)管理器管理的目標(biāo)虛擬機(jī)上處于非休眠狀態(tài)的虛擬中央處理器的數(shù)量,所述虛擬機(jī)管理器為所述物理中央處理器上運(yùn)行的虛擬機(jī)管理器; 根據(jù)所述實(shí)時(shí)信息分析所述目標(biāo)虛擬機(jī)競(jìng)爭(zhēng)自旋鎖的競(jìng)爭(zhēng)場(chǎng)景; 根據(jù)所述競(jìng)爭(zhēng)場(chǎng)景計(jì)算所述目標(biāo)虛擬機(jī)針對(duì)所述自旋鎖的等待閾值; 從存儲(chǔ)的等待閾值與調(diào)度算法的關(guān)系集中選擇所述等待閾值對(duì)應(yīng)的調(diào)度算法; 執(zhí)行選擇的所述調(diào)度算法調(diào)度所述目標(biāo)虛擬機(jī)上的虛擬中央處理器運(yùn)行。
2.如權(quán)利要求1所述的方法,其特征在于,所述采集物理中央處理器的實(shí)時(shí)信息之前,所述方法還包括: 將自旋鎖的等待閾值劃分為多個(gè)閾值區(qū)間,每個(gè)閾值區(qū)間分配一種調(diào)度算法; 存儲(chǔ)所述多個(gè)閾值區(qū)間與對(duì)應(yīng)的調(diào)度算法,得到等待閾值與調(diào)度算法的關(guān)系集。
3.如權(quán)利要求1所述的方法,其特征在于,所述實(shí)時(shí)信息還包括: 所述物理中央處理器 運(yùn)行隊(duì)列中的進(jìn)程數(shù)量和所述物理中央處理器中處于運(yùn)行狀態(tài)的物理中央處理器的數(shù)量; 所述根據(jù)所述實(shí)時(shí)信息分析所述目標(biāo)虛擬機(jī)競(jìng)爭(zhēng)自旋鎖的競(jìng)爭(zhēng)場(chǎng)景,包括: 根據(jù)所述實(shí)時(shí)信息計(jì)算所述目標(biāo)虛擬機(jī)競(jìng)爭(zhēng)自旋鎖的競(jìng)爭(zhēng)指數(shù); 根據(jù)所述競(jìng)爭(zhēng)指數(shù)分析所述目標(biāo)虛擬機(jī)競(jìng)爭(zhēng)所述自旋鎖的競(jìng)爭(zhēng)場(chǎng)景。
4.如權(quán)利要求3所述的方法,其特征在于,所述根據(jù)所述競(jìng)爭(zhēng)指數(shù)分析所述目標(biāo)虛擬機(jī)競(jìng)爭(zhēng)所述自旋鎖的競(jìng)爭(zhēng)場(chǎng)景,包括: 判斷所述目標(biāo)虛擬機(jī)競(jìng)爭(zhēng)所述自旋鎖的競(jìng)爭(zhēng)指數(shù)是否小于或等于預(yù)設(shè)最小指數(shù),若是,則將所述目標(biāo)虛擬機(jī)競(jìng)爭(zhēng)所述自旋鎖的競(jìng)爭(zhēng)場(chǎng)景的級(jí)別識(shí)別為低; 若否,則判斷所述目標(biāo)虛擬機(jī)競(jìng)爭(zhēng)所述自旋鎖的競(jìng)爭(zhēng)指數(shù)是否小于或等于預(yù)設(shè)最大指數(shù),若是,則將所述目標(biāo)虛擬機(jī)競(jìng)爭(zhēng)所述自旋鎖的所述競(jìng)爭(zhēng)場(chǎng)景的級(jí)別識(shí)別為中; 若否,則將所述目標(biāo)虛擬機(jī)競(jìng)爭(zhēng)所述自旋鎖的所述競(jìng)爭(zhēng)場(chǎng)景的級(jí)別識(shí)別為高。
5.如權(quán)利要求4所述的方法,其特征在于,所述根據(jù)所述競(jìng)爭(zhēng)場(chǎng)景計(jì)算所述目標(biāo)虛擬機(jī)針對(duì)所述自旋鎖的等待閾值,包括: 判斷所述競(jìng)爭(zhēng)場(chǎng)景的級(jí)別是否為低,若是,則減小所述目標(biāo)虛擬機(jī)針對(duì)所述自旋鎖的等待閾值; 若否,則判斷所述競(jìng)爭(zhēng)場(chǎng)景的級(jí)別是否為中,若是,則保持所述目標(biāo)虛擬機(jī)針對(duì)所述自旋鎖的等待閾值不變; 若否,則增加所述目標(biāo)虛擬機(jī)針對(duì)所述自旋鎖的等待閾值。
6.一種自旋鎖搶占調(diào)度算法選擇裝置,其特征在于,包括: 采集模塊,用于采集物理中央處理器的實(shí)時(shí)信息,所述實(shí)時(shí)信息包括:虛擬機(jī)管理器管理的目標(biāo)虛擬機(jī)上處于非休眠狀態(tài)的虛擬中央處理器的數(shù)量,所述虛擬機(jī)管理器為所述物理中央處理器上運(yùn)行的虛擬機(jī)管理器; 分析模塊,用于根據(jù)所述采集模塊采集的所述實(shí)時(shí)信息分析所述目標(biāo)虛擬機(jī)競(jìng)爭(zhēng)自旋鎖的競(jìng)爭(zhēng)場(chǎng)景; 計(jì)算模塊,用于根據(jù)所述分析模塊分析的所述競(jìng)爭(zhēng)場(chǎng)景計(jì)算所述目標(biāo)虛擬機(jī)針對(duì)所述自旋鎖的等待閾值; 選擇模塊,用于從存儲(chǔ)的等待閾值與調(diào)度算法的關(guān)系集中選擇所述等待閾值對(duì)應(yīng)的調(diào)度算法; 執(zhí)行模塊,用于執(zhí)行所述選擇模塊選擇的所述調(diào)度算法調(diào)度所述目標(biāo)虛擬機(jī)上的虛擬中央處理器運(yùn)行。
7.如權(quán)利要求6所述的裝置,其特征在于,所述裝置還包括: 分配模塊,用于將自旋鎖的等待閾值劃分為多個(gè)閾值區(qū)間,每個(gè)閾值區(qū)間分配一種調(diào)度算法; 存儲(chǔ)模塊,用于存儲(chǔ)所述分配模塊獲得的所述多個(gè)閾值區(qū)間與對(duì)應(yīng)的調(diào)度算法,得到等待閾值與調(diào)度算法的關(guān)系集。
8.如權(quán)利要求6所述的裝置,其特征在于,所述實(shí)時(shí)信息還包括: 所述物理中央處理器運(yùn)行隊(duì)列中的進(jìn)程數(shù)量和所述物理中央處理器中處于運(yùn)行狀態(tài)的物理中央處理器的數(shù)量; 所述分析模塊包括: 第一計(jì)算單元,用于根據(jù)所述采集模塊采集的所述實(shí)時(shí)信息計(jì)算所述目標(biāo)虛擬機(jī)競(jìng)爭(zhēng)自旋鎖的競(jìng)爭(zhēng)指數(shù); 分析單元,用于根據(jù)所述第一計(jì)算單元計(jì)算的所述競(jìng)爭(zhēng)指數(shù)分析所述目標(biāo)虛擬機(jī)競(jìng)爭(zhēng)所述自旋鎖的競(jìng)爭(zhēng)場(chǎng)景。
9.如權(quán)利要求8所述的裝置,其特征在于,所述分析單元包括: 第一判斷子單元,用于判斷所述第一計(jì)算單元計(jì)算的所述目標(biāo)虛擬機(jī)競(jìng)爭(zhēng)所述自旋鎖的競(jìng)爭(zhēng)指數(shù)是否小于或等于預(yù)設(shè)最小指數(shù); 識(shí)別子單元,用于當(dāng)所述第一判斷子單元的判斷結(jié)果為是時(shí),將所述目標(biāo)虛擬機(jī)競(jìng)爭(zhēng)所述自旋鎖的競(jìng)爭(zhēng)場(chǎng)景的級(jí)別識(shí)別為低; 第二判斷子單元,用于當(dāng)所述第一判斷子單元的判斷結(jié)果為否時(shí),判斷所述目標(biāo)虛擬機(jī)競(jìng)爭(zhēng)所述自旋鎖的競(jìng)爭(zhēng)指數(shù)是否小于或等于預(yù)設(shè)最大指數(shù); 識(shí)別子單元,還用于當(dāng)所述第二判斷子單元的判斷結(jié)果為是時(shí),將所述目標(biāo)虛擬機(jī)競(jìng)爭(zhēng)所述自旋鎖的所述競(jìng)爭(zhēng)場(chǎng)景的級(jí)別識(shí)別為中; 識(shí)別子單元,還用于當(dāng)所述第二判斷子單元的判斷結(jié)果為否時(shí),將所述目標(biāo)虛擬機(jī)競(jìng)爭(zhēng)所述自旋鎖的所述競(jìng)爭(zhēng)場(chǎng)景的級(jí)別識(shí)別為高。
10.如權(quán)利要求9所述的裝置,其特征在于,所述計(jì)算模塊包括: 第一判斷單元,用于判斷所述識(shí)別子單元識(shí)別的所述競(jìng)爭(zhēng)場(chǎng)景的級(jí)別是否為低;第二計(jì)算單元,用于當(dāng)所述第一判斷單元的判斷結(jié)果為是時(shí),減小所述目標(biāo)虛擬機(jī)針對(duì)所述自旋鎖的等待閾值; 第二判斷單元,用于當(dāng)所述第一判斷單元的判斷結(jié)果為否時(shí),判斷所述識(shí)別子單元識(shí)別的所述競(jìng)爭(zhēng)場(chǎng)景的級(jí)別是否為中; 第二計(jì)算單元,還用于當(dāng)所述第二判斷單元的判斷結(jié)果為是時(shí),保持所述目標(biāo)虛擬機(jī)針對(duì)所述自旋鎖的等待閾值不變; 第二計(jì)算單元,還用于當(dāng)所述第二判斷單元的判斷結(jié)果為否時(shí),則增加所述目標(biāo)虛擬機(jī)針對(duì)所述自旋鎖的等待閾值。
【文檔編號(hào)】G06F9/46GK103729242SQ201310705505
【公開日】2014年4月16日 申請(qǐng)日期:2013年12月19日 優(yōu)先權(quán)日:2013年12月19日
【發(fā)明者】于璠, 王振國(guó) 申請(qǐng)人:華為技術(shù)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
铁岭县| 宜宾市| 长寿区| 祁连县| 若尔盖县| 布尔津县| 太湖县| 绍兴市| 光泽县| 梓潼县| 大连市| 肇庆市| 青阳县| 镇康县| 正宁县| 泽库县| 连平县| 富锦市| 宁阳县| 铁力市| 海伦市| 彩票| 昆明市| 卢湾区| 贵德县| 林甸县| 清镇市| 张家口市| 赣榆县| 前郭尔| 兴海县| 庆元县| 正阳县| 咸丰县| 文登市| 尤溪县| 饶平县| 濉溪县| 汉源县| 舟曲县| 灵寿县|