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

一種多核處理器的調(diào)度方法和相關(guān)裝置制造方法

文檔序號(hào):6508778閱讀:179來源:國知局
一種多核處理器的調(diào)度方法和相關(guān)裝置制造方法
【專利摘要】本發(fā)明實(shí)施例公開了一種多核處理器的調(diào)度方法和相關(guān)裝置,用于在調(diào)度前精細(xì)化分配給各個(gè)處理器的任務(wù)。本發(fā)明實(shí)施例方法包括:對(duì)系統(tǒng)中處理器和高速緩存之間的拓?fù)浣Y(jié)構(gòu)生成快照;根據(jù)所述快照和用戶輸入的控制信息生成調(diào)度策略;根據(jù)所述快照、所述調(diào)度策略和待調(diào)度任務(wù)的屬性為所述待調(diào)度任務(wù)分配處理器資源;使用分配給所述待調(diào)度任務(wù)的處理器資源執(zhí)行所述待調(diào)度任務(wù)。
【專利說明】—種多核處理器的調(diào)度方法和相關(guān)裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)【技術(shù)領(lǐng)域】,尤其涉及一種多核處理器的調(diào)度方法和相關(guān)裝置。【背景技術(shù)】
[0002]多核處理器是及未來處理器發(fā)展的主要趨勢(shì),單個(gè)物理處理器中集成的核的數(shù)量已由最初的雙核發(fā)展到四核、八核、甚至更多,隨著集成度的不斷提高,對(duì)于調(diào)度器來說,普通多核、處理能力不同的同構(gòu)多核及多核異構(gòu)平臺(tái)給調(diào)度器提出了更高的要求,調(diào)度器面臨的調(diào)度場(chǎng)景趨于復(fù)雜化。
[0003]Linux 系統(tǒng)啟動(dòng)時(shí) BIOS (Basic Input Output System,基本輸入輸出系統(tǒng))會(huì)提供處理器相關(guān)的靜態(tài)信息,Linux系統(tǒng)以處理器相關(guān)的靜態(tài)信息為基礎(chǔ),根據(jù)HT(Hyper-Threading,超線程),內(nèi)核(core), SMP (Symmetrical Mult1-Processing,對(duì)稱多處理機(jī))、NUMA (Non-Uniform Memory Access,非一致性共享內(nèi)存訪問)節(jié)點(diǎn)之間的關(guān)系將系統(tǒng)結(jié)構(gòu)劃分成了 3個(gè)級(jí)別的調(diào)度域(Scheduling Domain),每個(gè)調(diào)度域?yàn)榫哂邢嗤瑢傩缘囊唤M處理器(CPU, Central Processing Unit)的集合,如圖1所示,3個(gè)級(jí)別的調(diào)度域分別為SMT (Simultaneous Multithreading、同時(shí)多線程)域、SMP域、NMUA域,各個(gè)不同級(jí)別的調(diào)度域之間通過指針鏈接在一起,從而形成一種多層次的架構(gòu)?,F(xiàn)有的這種架構(gòu)主要用于周期性的對(duì)多個(gè)處理器之間進(jìn)行負(fù)載均衡,或在每次執(zhí)行完畢后對(duì)多個(gè)處理器之間進(jìn)行負(fù)載均衡,還用于根據(jù)用戶空間下發(fā)的CPU親和性進(jìn)行系統(tǒng)調(diào)用。
[0004]但是現(xiàn)有的基于多核處理器的調(diào)度方法對(duì)多個(gè)處理器之間進(jìn)行的負(fù)載均衡屬于處理器調(diào)度完成任務(wù)之后的事后調(diào)整行為,但是對(duì)于調(diào)度之前多個(gè)處理器間的任務(wù)分配不均衡、不精細(xì)則無法解決。而且CPU親和性的相關(guān)策略只能從用戶空間手動(dòng)下發(fā),調(diào)度器只能根據(jù)用戶空間指定的CPU親和性來對(duì)任務(wù)進(jìn)行調(diào)度,而無法實(shí)現(xiàn)調(diào)度器的智能化調(diào)度。

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

[0005]本發(fā)明實(shí)施例提供了一種多核處理器的調(diào)度方法和相關(guān)裝置,用于解決調(diào)度之前多個(gè)處理器間的任務(wù)分配不均衡、不精細(xì)的問題。
[0006]為解決上述技術(shù)問題,本發(fā)明實(shí)施例提供以下技術(shù)方案:
[0007]第一方面,本發(fā)明實(shí)施例提供一種多核處理器的調(diào)度方法,包括:
[0008]對(duì)系統(tǒng)中處理器和高速緩存之間的拓?fù)浣Y(jié)構(gòu)生成快照;
[0009]根據(jù)所述快照和用戶輸入的控制信息生成調(diào)度策略;
[0010]根據(jù)所述快照、所述調(diào)度策略和待調(diào)度任務(wù)的屬性為所述待調(diào)度任務(wù)分配處理器資源;
[0011]使用分配給所述待調(diào)度任務(wù)的處理器資源執(zhí)行所述待調(diào)度任務(wù)。
[0012]結(jié)合第一方面,在第一方面的第一種可能的實(shí)現(xiàn)方式中,所述對(duì)系統(tǒng)中處理器和高速緩存之間的拓?fù)浣Y(jié)構(gòu)生成快照包括:
[0013]周期性的對(duì)系統(tǒng)中處理器和高速緩存之間的拓?fù)浣Y(jié)構(gòu)生成快照;或,[0014]根據(jù)預(yù)置的快照范圍,對(duì)系統(tǒng)中所述快照范圍內(nèi)的處理器和高速緩存之間的拓?fù)浣Y(jié)構(gòu)生成快照;或,
[0015]根據(jù)預(yù)置的快照范圍,周期性的對(duì)系統(tǒng)中處理器和高速緩存之間的拓?fù)浣Y(jié)構(gòu)生成快照。
[0016]結(jié)合第一方面的第一種可能的實(shí)現(xiàn)方式,在第一方面的第二種可能的實(shí)現(xiàn)方式中,若周期性的對(duì)系統(tǒng)中處理器和高速緩存之間的拓?fù)浣Y(jié)構(gòu)生成有快照,所述使用分配給所述待調(diào)度任務(wù)的處理器資源執(zhí)行所述待調(diào)度任務(wù)的同時(shí)還包括:
[0017]根據(jù)周期性生成的快照判斷所述系統(tǒng)的負(fù)載是否超過負(fù)載門限;
[0018]若所述系統(tǒng)的負(fù)載超過負(fù)載門限,根據(jù)所述周期性生成的快照、所述調(diào)度策略和待調(diào)度任務(wù)的屬性重新為所述待調(diào)度任務(wù)分配處理器資源;
[0019]使用重新分配給所述待調(diào)度任務(wù)的處理器資源繼續(xù)執(zhí)行所述待調(diào)度任務(wù)。
[0020]結(jié)合第一方面的第一種可能的實(shí)現(xiàn)方式,在第一方面的第三種可能的實(shí)現(xiàn)方式中,若周期性的對(duì)系統(tǒng)中處理器和高速緩存之間的拓?fù)浣Y(jié)構(gòu)生成有快照,所述使用分配給所述待調(diào)度任務(wù)的處理器資源執(zhí)行所述待調(diào)度任務(wù)的同時(shí)還包括:
[0021]判斷所述待調(diào)度任務(wù)的屬性是否發(fā)生變化;
[0022]若所述待調(diào)度任務(wù)的屬性發(fā)生變化,根據(jù)周期性生成的快照、所述調(diào)度策略和變化后待調(diào)度任務(wù)的屬性重新為所述待調(diào)度任務(wù)分配處理器資源;
[0023]使用重新分配給所述待調(diào)度任務(wù)的處理器資源繼續(xù)執(zhí)行所述待調(diào)度任務(wù)。
[0024]結(jié)合第一方面或第一方面的第一種、第二種、第三種可能的實(shí)現(xiàn)方式,在第一方面的第四種可能的實(shí)現(xiàn)方式中,所述對(duì)系統(tǒng)中處理器和高速緩存之間的拓?fù)浣Y(jié)構(gòu)生成快照之后還包括:
[0025]根據(jù)所述快照對(duì)所述各個(gè)處理器的屬性信息進(jìn)行統(tǒng)計(jì)分析,生成統(tǒng)計(jì)分析結(jié)果;
[0026]所述根據(jù)所述快照和用戶輸入的控制信息生成調(diào)度策略具體包括:
[0027]根據(jù)所述快照、所述統(tǒng)計(jì)分析結(jié)果和用戶輸入的控制信息生成調(diào)度策略。
[0028]結(jié)合第一方面的第四種可能的實(shí)現(xiàn)方式,在第一方面的第五種可能的實(shí)現(xiàn)方式中,所述使用分配給所述待調(diào)度任務(wù)的處理器資源執(zhí)行所述待調(diào)度任務(wù)的同時(shí)還包括:
[0029]根據(jù)所述統(tǒng)計(jì)分析結(jié)果判斷是否出現(xiàn)基于統(tǒng)計(jì)分析結(jié)果的錯(cuò)誤;
[0030]若出現(xiàn)基于統(tǒng)計(jì)分析結(jié)果的錯(cuò)誤,根據(jù)所述調(diào)度策略將所述待調(diào)度任務(wù)遷移到所述調(diào)度策略指定的處理器。
[0031]結(jié)合第一方面的第四種或第五種可能的實(shí)現(xiàn)方式中,在第一方面的第六種可能的實(shí)現(xiàn)方式中,所述根據(jù)所述快照對(duì)所述各個(gè)處理器的屬性信息進(jìn)行統(tǒng)計(jì)分析,生成統(tǒng)計(jì)分析結(jié)果,包括以下六種實(shí)現(xiàn)方式的其中至少一種:
[0032]根據(jù)所述各個(gè)處理器的空閑狀態(tài)屬性進(jìn)行統(tǒng)計(jì)分析,生成第一統(tǒng)計(jì)分析結(jié)果,所述第一統(tǒng)計(jì)分析結(jié)果包括:空閑狀態(tài)隊(duì)列,所述空閑狀態(tài)隊(duì)列包括所述各個(gè)處理器的空閑狀態(tài)排序隊(duì)列;
[0033]根據(jù)所述各個(gè)處理器的頻率屬性進(jìn)行統(tǒng)計(jì)分析,生成第二統(tǒng)計(jì)分析結(jié)果,所述第二統(tǒng)計(jì)分析結(jié)果包括:頻率隊(duì)列,所述頻率隊(duì)列包括所述各個(gè)處理器的頻率高低排序隊(duì)列;
[0034]根據(jù)所述各個(gè)處理器的負(fù)載屬性進(jìn)行統(tǒng)計(jì)分析,生成第三統(tǒng)計(jì)分析結(jié)果,所述第三統(tǒng)計(jì)分析結(jié)果包括:負(fù)載隊(duì)列,所述負(fù)載隊(duì)列包括所述各個(gè)處理器的負(fù)載高低排序隊(duì)列;
[0035]根據(jù)所述各個(gè)處理器的緩存錯(cuò)誤屬性進(jìn)行統(tǒng)計(jì)分析,生成第四統(tǒng)計(jì)分析結(jié)果,所述第四統(tǒng)計(jì)分析結(jié)果包括:緩存錯(cuò)誤隊(duì)列,所述緩存錯(cuò)誤隊(duì)列包括所述各個(gè)處理器的緩存錯(cuò)誤次數(shù)排序隊(duì)列;
[0036]根據(jù)所述各個(gè)處理器的溫度屬性進(jìn)行統(tǒng)計(jì)分析,生成第五統(tǒng)計(jì)分析結(jié)果,所述第五統(tǒng)計(jì)分析結(jié)果包括:溫度隊(duì)列,所述溫度隊(duì)列包括所述各個(gè)處理器的溫度高低排序隊(duì)列;
[0037]根據(jù)所述各個(gè)處理器的隊(duì)列屬性進(jìn)行統(tǒng)計(jì)分析,生成第六統(tǒng)計(jì)分析結(jié)果,所述第六統(tǒng)計(jì)分析結(jié)果包括:任務(wù)隊(duì)列,所述任務(wù)隊(duì)列包括所述各個(gè)處理器的隊(duì)列中任務(wù)量個(gè)數(shù)排序或任務(wù)優(yōu)先級(jí)高低排序隊(duì)列。
[0038]結(jié)合第一方面的第四種、第五種、第六種可能的實(shí)現(xiàn)方式,在第一方面的第七種可能的實(shí)現(xiàn)方式中,所述統(tǒng)計(jì)分析結(jié)果以紅黑樹RBtree或者二叉堆的形式進(jìn)行排序。
[0039]結(jié)合第一方面或第一方面的第一種、第二種、第三種、第四種、第五種、第六種、第七種可能的實(shí)現(xiàn)方式,在第一方面的第八種可能的實(shí)現(xiàn)方式中,所述使用分配給所述待調(diào)度任務(wù)的處理器資源執(zhí)行所述待調(diào)度任務(wù)的同時(shí)還包括:
[0040]判斷所述系統(tǒng)中的處理器是否出現(xiàn)軟件方面或硬件方面的硬障;
[0041]若所述系統(tǒng)中的處理器出現(xiàn)了軟件方面或硬件方面的故障,根據(jù)所述調(diào)度策略將所述待調(diào)度任務(wù)遷移到所述調(diào)度策略指定的處理器。
[0042]結(jié)合第一方面或第一方面的第一種、第二種、第三種、第四種、第五種、第六種、第七種、第八種可能的實(shí)現(xiàn)方式,在第一方面的第九種可能的實(shí)現(xiàn)方式中,所述快照包括至少一個(gè)以下的信息:所述系統(tǒng)中處理器的個(gè)數(shù)、各個(gè)處理器的屬性信息、各個(gè)處理器內(nèi)封裝的高速緩存的屬性信息、每個(gè)處理器包括的內(nèi)核的個(gè)數(shù)、每個(gè)內(nèi)核是否包括同時(shí)多線程SMT以及所述SMT的個(gè)數(shù)。
[0043]結(jié)合第一方面或第一方面的第一種、第二種、第三種、第四種、第五種、第六種、第七種、第八種、第九種可能的實(shí)現(xiàn)方式,在第一方面的第十種可能的實(shí)現(xiàn)方式中,所述快照還包括各個(gè)處理器內(nèi)封裝的共享高速緩存的屬性信息。
[0044]第二方面、本發(fā)明實(shí)施例提供一種多核處理器的調(diào)度裝置,包括:
[0045]快照生成模塊,用于對(duì)系統(tǒng)中處理器和高速緩存之間的拓?fù)浣Y(jié)構(gòu)生成快照;
[0046]獲取模塊,用于根據(jù)所述快照和用戶輸入的控制信息生成調(diào)度策略;
[0047]資源分配模塊,用于根據(jù)所述快照、所述調(diào)度策略和待調(diào)度任務(wù)的屬性為所述待調(diào)度任務(wù)分配處理器資源;
[0048]調(diào)度模塊,用于使用分配給所述待調(diào)度任務(wù)的處理器資源執(zhí)行所述待調(diào)度任務(wù)。
[0049]結(jié)合第二方面,在第二方面的第一種可能的實(shí)現(xiàn)方式中,所述快照生成模塊,具體用于按照周期性的對(duì)系統(tǒng)中處理器和高速緩存之間的拓?fù)浣Y(jié)構(gòu)生成快照;或,根據(jù)預(yù)置的快照范圍,對(duì)系統(tǒng)中所述快照范圍內(nèi)的處理器和高速緩存之間的拓?fù)浣Y(jié)構(gòu)生成快照;或,根據(jù)預(yù)置的快照范圍,周期性的對(duì)系統(tǒng)中處理器和高速緩存之間的拓?fù)浣Y(jié)構(gòu)生成快照。
[0050]結(jié)合第二方面的第一種可能的實(shí)現(xiàn)方式,在第二方面的第二種可能的實(shí)現(xiàn)方式中,所述裝置還包括:判斷模塊,其中,[0051]所述判斷模塊,用于若周期性的對(duì)系統(tǒng)中處理器和高速緩存之間的拓?fù)浣Y(jié)構(gòu)生成有快照,則根據(jù)周期性生成的快照判斷所述系統(tǒng)的負(fù)載是否超過負(fù)載門限;
[0052]所述資源分配模塊,還用于當(dāng)所述系統(tǒng)的負(fù)載超過負(fù)載門限時(shí),根據(jù)所述周期性生成的快照、所述調(diào)度策略和待調(diào)度任務(wù)的屬性重新為所述待調(diào)度任務(wù)分配處理器資源;
[0053]所述調(diào)度模塊,還用于使用重新分配給所述待調(diào)度任務(wù)的處理器資源繼續(xù)執(zhí)行所述待調(diào)度任務(wù)。
[0054]結(jié)合第二方面的第一種可能的實(shí)現(xiàn)方式,在第二方面的第三種可能的實(shí)現(xiàn)方式中,所述裝置還包括:判斷模塊,其中,
[0055]所述判斷模塊,用于若周期性的對(duì)系統(tǒng)中處理器和高速緩存之間的拓?fù)浣Y(jié)構(gòu)生成有快照,則判斷所述待調(diào)度任務(wù)的屬性是否發(fā)生變化;
[0056]所述資源分配模塊,還用于當(dāng)所述系統(tǒng)的負(fù)載超過負(fù)載門限時(shí),根據(jù)周期性生成的快照、所述調(diào)度策略和變化后待調(diào)度任務(wù)的屬性重新為所述待調(diào)度任務(wù)分配處理器資源;
[0057]所述調(diào)度模塊,還用于使用重新分配給所述待調(diào)度任務(wù)的處理器資源繼續(xù)執(zhí)行所述待調(diào)度任務(wù)。
[0058]結(jié)合第二方面或第二方面的第一種、第二種、第三種可能的實(shí)現(xiàn)方式,在第二方面的第四種可能的實(shí)現(xiàn)方式中,所述裝置還包括:統(tǒng)計(jì)分析模塊,其中,
[0059]所述統(tǒng)計(jì)分析模塊,用于根據(jù)所述快照對(duì)所述各個(gè)處理器的屬性信息進(jìn)行統(tǒng)計(jì)分析,生成統(tǒng)計(jì)分析結(jié)果;
[0060]所述獲取模塊,具體用于根據(jù)所述快照、所述統(tǒng)計(jì)分析結(jié)果和用戶輸入的控制信息生成調(diào)度策略。
[0061]結(jié)合第二方面的第四種可能的實(shí)現(xiàn)方式,在第二方面的第五種可能的實(shí)現(xiàn)方式中,所述裝置還包括:判斷模塊和調(diào)度遷移模塊,其中,
[0062]所述判斷模塊,用于根據(jù)所述統(tǒng)計(jì)分析結(jié)果判斷是否出現(xiàn)基于統(tǒng)計(jì)分析結(jié)果的錯(cuò)誤;
[0063]所述調(diào)度遷移模塊,還用于當(dāng)出現(xiàn)基于統(tǒng)計(jì)分析結(jié)果的錯(cuò)誤時(shí),根據(jù)所述調(diào)度策略將所述待調(diào)度任務(wù)遷移到所述調(diào)度策略指定的處理器上。
[0064]結(jié)合第二方面的第四種或第五種可能的實(shí)現(xiàn)方式中,在第二方面的第六種可能的實(shí)現(xiàn)方式中,所述統(tǒng)計(jì)分析模塊,包括以下六個(gè)子模塊中的至少一個(gè):
[0065]第一統(tǒng)計(jì)分析子模塊,用于根據(jù)所述各個(gè)處理器的空閑狀態(tài)屬性進(jìn)行統(tǒng)計(jì)分析,生成第一統(tǒng)計(jì)分析結(jié)果,所述第一統(tǒng)計(jì)分析結(jié)果包括:空閑狀態(tài)隊(duì)列,所述空閑狀態(tài)隊(duì)列包括所述各個(gè)處理器的空閑狀態(tài)排序隊(duì)列;
[0066]第二統(tǒng)計(jì)分析子模塊,用于根據(jù)所述各個(gè)處理器的頻率屬性進(jìn)行統(tǒng)計(jì)分析,生成第二統(tǒng)計(jì)分析結(jié)果,所述第二統(tǒng)計(jì)分析結(jié)果包括:頻率隊(duì)列,所述頻率隊(duì)列包括所述各個(gè)處理器的頻率聞低排序隊(duì)列;
[0067]第三統(tǒng)計(jì)分析子模塊,用于根據(jù)所述各個(gè)處理器的負(fù)載屬性進(jìn)行統(tǒng)計(jì)分析,生成第三統(tǒng)計(jì)分析結(jié)果,所述第三統(tǒng)計(jì)分析結(jié)果包括:負(fù)載隊(duì)列,所述負(fù)載隊(duì)列包括所述各個(gè)處理器的負(fù)載高低排序隊(duì)列;
[0068]第四統(tǒng)計(jì)分析子模塊,用于根據(jù)所述各個(gè)處理器的緩存錯(cuò)誤屬性進(jìn)行統(tǒng)計(jì)分析,生成第四統(tǒng)計(jì)分析結(jié)果,所述第四統(tǒng)計(jì)分析結(jié)果包括:緩存錯(cuò)誤隊(duì)列,所述緩存錯(cuò)誤隊(duì)列包括所述各個(gè)處理器的緩存錯(cuò)誤次數(shù)排序隊(duì)列;
[0069]第五統(tǒng)計(jì)分析子模塊,用于根據(jù)所述各個(gè)處理器的溫度屬性進(jìn)行統(tǒng)計(jì)分析,生成第五統(tǒng)計(jì)分析結(jié)果,所述第五統(tǒng)計(jì)分析結(jié)果包括:溫度隊(duì)列,所述溫度隊(duì)列包括所述各個(gè)處理器的溫度高低排序隊(duì)列;
[0070]第六統(tǒng)計(jì)分析子模塊,用于根據(jù)所述各個(gè)處理器的隊(duì)列屬性進(jìn)行統(tǒng)計(jì)分析,生成第六統(tǒng)計(jì)分析結(jié)果,所述第六統(tǒng)計(jì)分析結(jié)果包括:任務(wù)隊(duì)列,所述任務(wù)隊(duì)列包括所述各個(gè)處理器的隊(duì)列中任務(wù)量個(gè)數(shù)排序或任務(wù)優(yōu)先級(jí)高低排序隊(duì)列。
[0071]結(jié)合第二方面的第四種、第五種、第六種可能的實(shí)現(xiàn)方式,在第二方面的第七種可能的實(shí)現(xiàn)方式中,所述統(tǒng)計(jì)分析模塊,具體用于以紅黑樹RBtree或者二叉堆的形式對(duì)所述統(tǒng)計(jì)分析結(jié)果進(jìn)行排序。
[0072]結(jié)合第二方面或第二方面的第一種、第二種、第三種、第四種、第五種、第六種、第七種可能的實(shí)現(xiàn)方式,在第二方面的第八種可能的實(shí)現(xiàn)方式中,所述裝置還包括:判斷模塊和調(diào)度遷移模塊,其中,
[0073]所述判斷模塊,用于判斷所述系統(tǒng)中的處理器是否出現(xiàn)軟件方面或硬件方面的硬障;
[0074]所述調(diào)度遷移模塊,用于當(dāng)所述系統(tǒng)中的處理器出現(xiàn)了軟件方面或硬件方面的故障,根據(jù)所述調(diào)度策略將所述待調(diào)度任務(wù)遷移到所述調(diào)度策略指定的處理器。
[0075]結(jié)合第二方面或第二方面的第一種、第二種、第三種、第四種、第五種、第六種、第七種、第八種可能的實(shí)現(xiàn)方式,在第二方面的第九種可能的實(shí)現(xiàn)方式中,所述快照生成模塊生成的所述快照包括至少一個(gè)以下的信息:所述系統(tǒng)中處理器的個(gè)數(shù)、各個(gè)處理器的屬性信息、各個(gè)處理器內(nèi)封裝的高速緩存的屬性信息、每個(gè)處理器包括的內(nèi)核的個(gè)數(shù)、每個(gè)內(nèi)核是否包括同時(shí)多線程SMT以及所述SMT的個(gè)數(shù)。
[0076]結(jié)合第二方面或第二方面的第一種、第二種、第三種、第四種、第五種、第六種、第七種、第八種、第九種可能的實(shí)現(xiàn)方式,在第二方面的第十種可能的實(shí)現(xiàn)方式中,所述快照生成模塊,還用于生成包括各個(gè)處理器內(nèi)封裝的共享高速緩存的屬性信息的快照。
[0077]從以上技術(shù)方案可以看出,本發(fā)明實(shí)施例具有以下優(yōu)點(diǎn):
[0078]在本發(fā)明實(shí)施例中,首先對(duì)系統(tǒng)中處理器和高速緩存之間的拓?fù)浣Y(jié)構(gòu)生成快照,然后根據(jù)上述快照和用戶輸入的控制信息生成調(diào)度策略,根據(jù)上述快照、上述調(diào)度策略和待調(diào)度任務(wù)的屬性為該待調(diào)度任務(wù)分配處理器資源,最后根據(jù)分配給待調(diào)度任務(wù)的處理器資源執(zhí)行該調(diào)度任務(wù)。由于在為待調(diào)度任務(wù)分配處理器資源之前針對(duì)系統(tǒng)中處理器和高速緩存之間的拓?fù)浣Y(jié)構(gòu)生成了快照,分配處理器資源時(shí)也是基于該快照、調(diào)度策略和待調(diào)度任務(wù)的屬性而分配,而快照能夠更準(zhǔn)確更細(xì)致的描述系統(tǒng)的真實(shí)狀況,結(jié)合這樣的快照向待調(diào)度任務(wù)分配處理器資源,能夠使各個(gè)處理器之間任務(wù)分配更均衡,更精細(xì)化,并且通過快照能夠感知系統(tǒng)的拓?fù)浣Y(jié)構(gòu),從而可以自行獲知處理器的親和性,不需要用戶的手動(dòng)下發(fā),提聞?wù){(diào)度的智能化。
【專利附圖】

【附圖說明】
[0079]為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域的技術(shù)人員來講,還可以根據(jù)這些附圖獲得其他的附圖。
[0080]圖1為現(xiàn)有技術(shù)中提供的用于負(fù)載均衡的Linux調(diào)度域的實(shí)現(xiàn)方式示意圖;
[0081]圖2為本發(fā)明實(shí)施例提供的一種多核處理器的調(diào)度方法的流程方框示意圖;
[0082]圖3為本發(fā)明實(shí)施例提供的系統(tǒng)中的多核處理器的拓?fù)浣Y(jié)構(gòu)示意圖;
[0083]圖4為本發(fā)明實(shí)施例提供的根據(jù)處理器和高速緩存的拓?fù)浣Y(jié)構(gòu)生成快照以及根據(jù)快照進(jìn)行統(tǒng)計(jì)分析的實(shí)現(xiàn)方式示意圖;
[0084]圖5為本發(fā)明實(shí)施例提供的核處理器的調(diào)度裝置的一種具體實(shí)現(xiàn)過程的示意圖;
[0085]圖6為本發(fā)明實(shí)施例提供的應(yīng)用于無線控制器的調(diào)度與控制實(shí)現(xiàn)方式示意圖;
[0086]圖7為本發(fā)明實(shí)施例提供的以快照和統(tǒng)計(jì)分析結(jié)果為基礎(chǔ)的任務(wù)分發(fā)機(jī)制的實(shí)現(xiàn)過程示意圖;
[0087]圖8_a為本發(fā)明實(shí)施例提供的一種多核處理器的調(diào)度裝置的組成結(jié)構(gòu)示意圖;
[0088]圖8_b為本發(fā)明實(shí)施例提供的另一種多核處理器的調(diào)度裝置的組成結(jié)構(gòu)示意圖;
[0089]圖8-c為本發(fā)明實(shí)施例提供的另一種多核處理器的調(diào)度裝置的組成結(jié)構(gòu)示意圖;
[0090]圖8-d為本發(fā)明實(shí)施例提供的一種統(tǒng)計(jì)分析模塊的組成結(jié)構(gòu)示意圖;
[0091]圖9為本發(fā)明實(shí)施例提供的另一種多核處理器的調(diào)度裝置的組成結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0092]本發(fā)明實(shí)施例提供了一種多核處理器的調(diào)度方法和相關(guān)裝置,用于在調(diào)度前精細(xì)化分配給各個(gè)處理器的任務(wù)。
[0093]為使得本發(fā)明的發(fā)明目的、特征、優(yōu)點(diǎn)能夠更加的明顯和易懂,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,下面所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而非全部實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域的技術(shù)人員所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0094]本發(fā)明多核處理器的調(diào)度方法其中一個(gè)實(shí)施例,可以包括:對(duì)系統(tǒng)中處理器和高速緩存之間的拓?fù)浣Y(jié)構(gòu)生成快照;根據(jù)上述快照和用戶輸入的控制信息生成調(diào)度策略;根據(jù)上述快照、上述調(diào)度策略和待調(diào)度任務(wù)的屬性為上述待調(diào)度任務(wù)分配處理器資源;使用分配給上述待調(diào)度任務(wù)的處理器資源執(zhí)行所述待調(diào)度任務(wù)。
[0095]請(qǐng)參閱如圖2所示,本發(fā)明實(shí)施例提供的一種多核處理器的調(diào)度方法,可以包括:
[0096]201、對(duì)系統(tǒng)中處理器和高速緩存之間的拓?fù)浣Y(jié)構(gòu)生成快照。
[0097]本發(fā)明實(shí)施例中,對(duì)于系統(tǒng)中處理器和高速緩存之間的拓?fù)浣Y(jié)構(gòu),首先做快照,通過快照就可以記錄下系統(tǒng)中處理器和高速緩存之間的拓?fù)浣Y(jié)構(gòu)信息,為后續(xù)的調(diào)度提供參考依據(jù)。
[0098]具體的,在本發(fā)明的一些實(shí)施例中,上述快照可以包括上述系統(tǒng)中處理器的個(gè)數(shù)、各個(gè)處理器的屬性信息、各個(gè)處理器內(nèi)封裝的高速緩存的屬性信息、每個(gè)處理器包括的內(nèi)核的個(gè)數(shù)、每個(gè)內(nèi)核是否包括同時(shí)多線程(SMT, Simultaneous Multithreading)以及上述SMT的個(gè)數(shù)。
[0099]在本發(fā)明的一些實(shí)施例中,為了能夠使用處理器內(nèi)的共享高速緩存,則生成的快照還可以包括:各個(gè)處理器內(nèi)封裝的共享高速緩存的屬性信息。[0100]在本發(fā)明實(shí)施例中,系統(tǒng)指的是包括有多個(gè)內(nèi)核的處理器的系統(tǒng)(system),系統(tǒng)包括有多個(gè)非一致性共享內(nèi)存訪問(NUMA, Non-Uniform Memory Access)節(jié)點(diǎn),每個(gè)NUMA包括有多個(gè)對(duì)稱多處理機(jī)(SMP, Symmetrical Mult1-Processing),每個(gè)SMP包括多個(gè)套接口(Socket),每個(gè)Socket包括多個(gè)處理器,各個(gè)處理器可以是同構(gòu)多核,也可以是異構(gòu)多核,如圖3所示,CPUl為X86處理器,CPUl包括有四個(gè)核,分別為C0RE#0、C0RE#1、C0RE#2、C0RE#3,每個(gè)CORE內(nèi)都包括有兩個(gè)SMT,分別為SMT#0、SMT#1,每個(gè)CORE分別對(duì)應(yīng)有兩級(jí)的高速緩存,分別為:Llcache:(—級(jí)高速緩存)、L2cache (二級(jí)高速緩存),并且在CPUl內(nèi)還封裝有L3cache,其中L3cache稱之為共享高速緩存,另外,CPU2為ARM (Advanced RISCMachines)處理器,CPU2 包括有四個(gè)核,分別為 C0RE#0、C0RE#1、C0RE#2、C0RE#3,每個(gè) CORE分別對(duì)應(yīng)有一個(gè)高速緩存,為Llcache:(—級(jí)高速緩存),并且在CPUl內(nèi)還封裝有L2cache(共享高速緩存)。可知,如圖3所示的系統(tǒng)各個(gè)處理器包括的內(nèi)核數(shù),各個(gè)內(nèi)核包括的SMT,各個(gè)內(nèi)核對(duì)應(yīng)的高速緩存等各種情況都不相同,本發(fā)明實(shí)施例通過對(duì)系統(tǒng)中處理器和高速緩存之間的拓?fù)浣Y(jié)構(gòu)生成快照就可以準(zhǔn)確、細(xì)致的獲取到系統(tǒng)的真實(shí)情況,為制定調(diào)度策略、分配處理器資源提供真實(shí)可靠的依據(jù),使各個(gè)處理器之間分配任務(wù)更均衡,這和現(xiàn)有技術(shù)中總是在事后進(jìn)行負(fù)載均衡實(shí)現(xiàn)的“補(bǔ)救性策略”是完全不同的,可以在調(diào)度前就實(shí)現(xiàn)各個(gè)處理器之間任務(wù)分配更均衡,更精細(xì)化。由于系統(tǒng)的組成結(jié)構(gòu)的復(fù)雜性,現(xiàn)有技術(shù)中在分配處理器資源時(shí)沒有考慮到系統(tǒng)復(fù)雜的組成結(jié)構(gòu),故為任務(wù)分配處理器資源時(shí)不夠精細(xì)化,而本發(fā)明實(shí)施例中可以首先針對(duì)系統(tǒng)中處理器和高速緩存之間的拓?fù)浣Y(jié)構(gòu)生成快照,可以根據(jù)系統(tǒng)復(fù)雜的組成結(jié)構(gòu)分配處理器資源。
[0101 ] 在本發(fā)明的一些實(shí)施例中,可以周期性的對(duì)系統(tǒng)中處理器和高速緩存之間的拓?fù)浣Y(jié)構(gòu)生成快照;或,根據(jù)預(yù)置的快照范圍對(duì)系統(tǒng)中上述快照范圍內(nèi)的處理器和高速緩存之間的拓?fù)浣Y(jié)構(gòu)生成快照;或,根據(jù)預(yù)置的快照范圍、周期性的對(duì)系統(tǒng)中處理器和高速緩存之間的拓?fù)浣Y(jié)構(gòu)生成快照。也就是說,對(duì)系統(tǒng)中處理器和高速緩存之間的拓?fù)浣Y(jié)構(gòu)生成快照可以三種具體實(shí)現(xiàn)方式,第一根據(jù)預(yù)置的快照范圍,第二根據(jù)預(yù)置的時(shí)間間隔,第三根據(jù)預(yù)置的快照范圍和預(yù)置的時(shí)間間隔。例如,可以設(shè)置時(shí)間間隔為Ims,每隔Ims就對(duì)系統(tǒng)中處理器和高速緩存之間的拓?fù)浣Y(jié)構(gòu)生成快照,則假如當(dāng)前時(shí)刻對(duì)系統(tǒng)中處理器和高速緩存之間的拓?fù)浣Y(jié)構(gòu)生成了快照后,有一個(gè)CPU被隔離或Cache被隔離或CPU出現(xiàn)了硬件故障,則在下一個(gè)時(shí)刻點(diǎn)生成的快照后,通過前后兩次快照的比對(duì),就可以發(fā)現(xiàn)前后系統(tǒng)中的拓?fù)浣Y(jié)構(gòu)發(fā)生了變換,故通過快照能夠準(zhǔn)確細(xì)致的反映系統(tǒng)的真實(shí)狀況。其中,快照范圍用于指示針對(duì)系統(tǒng)中哪些器件生成快照,例如,預(yù)置的快照范圍為只采集CPUl中C0RE#2,則可以只針對(duì)系統(tǒng)中CPUl內(nèi)的處理器和高速緩存之間的拓?fù)浣Y(jié)構(gòu)生成快照,這樣能夠有更強(qiáng)的針對(duì)性,可以根據(jù)預(yù)先設(shè)置的快照范圍針對(duì)特定的應(yīng)用程序關(guān)心的一個(gè)或一系列對(duì)調(diào)度有影響的指標(biāo)來生成快照,如應(yīng)用程序感興趣的處理器負(fù)載大小生成快照,那么在生成調(diào)度策略以及分配處理器資源時(shí)就可以針對(duì)各個(gè)處理器負(fù)載的大小來選擇適當(dāng)?shù)奶幚砥鳎员WC各個(gè)處理器之間的負(fù)載均衡。需要說明的是,生成快照的時(shí)間間隔和快照的范圍具體可以由用戶通過人機(jī)交換界面輸入,以控制信息的方式存儲(chǔ)在用戶態(tài)庫中,以備生成快照時(shí)調(diào)用。
[0102]在本發(fā)明的另一些實(shí)施例中,對(duì)系統(tǒng)中處理器和高速緩存之間的拓?fù)浣Y(jié)構(gòu)生成快照之后,還可以根據(jù)上述快照對(duì)上述各個(gè)處理器的屬性信息進(jìn)行統(tǒng)計(jì)分析,生成統(tǒng)計(jì)分析結(jié)果。也就是說采集到系統(tǒng)中處理器和高速緩存之間的拓?fù)浣Y(jié)構(gòu)之后,還可以對(duì)快照的內(nèi)容對(duì)各個(gè)處理器的屬性信息進(jìn)行統(tǒng)計(jì)分析,生成統(tǒng)計(jì)分析結(jié)果,這個(gè)統(tǒng)計(jì)分析結(jié)果同樣可以作為生成調(diào)度策略的依據(jù)之一,如此,生成的調(diào)度策略就能夠更精準(zhǔn)。
[0103]需要說明的是,上述統(tǒng)計(jì)分析結(jié)果具體可以以紅黑樹(RB tree, Red Black tree)或者二叉堆(binary heap)的形式進(jìn)行排序。接下來對(duì)生成統(tǒng)計(jì)分析結(jié)果的實(shí)現(xiàn)方式進(jìn)行詳細(xì)舉例說明,具體可以為以下舉例的其中一種,也可以是其中兩種以上的組合,此處不做限定。
[0104]其中,處理器的屬性信息具體可以為處理器的空閑狀態(tài)(Idle state)屬性,根據(jù)上述各個(gè)處理器的空閑狀態(tài)屬性進(jìn)行統(tǒng)計(jì)分析,生成第一統(tǒng)計(jì)分析結(jié)果,上述第一統(tǒng)計(jì)分析結(jié)果包括:空閑狀態(tài)隊(duì)列,上述空閑狀態(tài)隊(duì)列包括上述各個(gè)處理器的空閑狀態(tài)排序隊(duì)列;
[0105]其中,處理器的屬性信息具體可以為處理器的頻率(Frequency)屬性,根據(jù)上述各個(gè)處理器的頻率屬性進(jìn)行統(tǒng)計(jì)分析,生成第二統(tǒng)計(jì)分析結(jié)果,上述第二統(tǒng)計(jì)分析結(jié)果包括:頻率隊(duì)列,上述頻率隊(duì)列包括上述各個(gè)處理器的頻率高低排序隊(duì)列;
[0106]其中,處理器的屬性信息具體可以為處理器的負(fù)載(load)屬性,根據(jù)上述各個(gè)處理器的負(fù)載屬性進(jìn)行統(tǒng)計(jì)分析,生成第三統(tǒng)計(jì)分析結(jié)果,上述第三統(tǒng)計(jì)分析結(jié)果包括:負(fù)載隊(duì)列,上述負(fù)載隊(duì)列包括上述各個(gè)處理器的負(fù)載高低排序隊(duì)列;
[0107]其中,處理器的屬性信息具體可以為處理器的緩存錯(cuò)誤(Cache error)屬性,根據(jù)上述各個(gè)處理器的緩存錯(cuò)誤屬性進(jìn)行統(tǒng)計(jì)分析,生成第四統(tǒng)計(jì)分析結(jié)果,上述第四統(tǒng)計(jì)分析結(jié)果包括:緩存錯(cuò)誤隊(duì)列,上述緩存錯(cuò)誤隊(duì)列包括上述各個(gè)處理器的緩存錯(cuò)誤次數(shù)排序隊(duì)列;
[0108]其中,處理器的屬性信息具體可以為處理器的溫度(temperature)屬性,根據(jù)上述各個(gè)處理器的溫度屬性進(jìn)行統(tǒng)計(jì)分析,生成第五統(tǒng)計(jì)分析結(jié)果,上述第五統(tǒng)計(jì)分析結(jié)果包括:溫度隊(duì)列,上述溫度隊(duì)列包括上述各個(gè)處理器的溫度高低排序隊(duì)列;
[0109]其中,處理器的屬性信息具體可以為處理器的隊(duì)列(Queue)屬性,根據(jù)上述各個(gè)處理器的隊(duì)列屬性進(jìn)行統(tǒng)計(jì)分析,生成第六統(tǒng)計(jì)分析結(jié)果,上述第六統(tǒng)計(jì)分析結(jié)果包括:任務(wù)隊(duì)列,上述任務(wù)隊(duì)列包括上述各個(gè)處理器的隊(duì)列中任務(wù)量個(gè)數(shù)排序或任務(wù)優(yōu)先級(jí)高低排序隊(duì)列。
[0110]為了詳細(xì)說明本發(fā)明實(shí)施例中描述的快照以及統(tǒng)計(jì)分析結(jié)果,接下來進(jìn)行舉例說明:以對(duì)NUMA節(jié)點(diǎn)的一個(gè)SMP內(nèi)CPU和Cache之間的拓?fù)浣Y(jié)構(gòu)生成快照為例,如圖4所示,則該快照的內(nèi)容包括:SMP包括socket I和socket2,socketl包括CPU1,socket2包括CPU2,CPUl和CPU2同屬于一個(gè)SMP,CPU1包括兩個(gè)內(nèi)核,分別為coreO和corel,CPU2包括兩個(gè)內(nèi)核,分別為core2和Core3,每個(gè)core對(duì)應(yīng)高速緩存LI和L2,一級(jí)高速緩存LI分為用于存儲(chǔ)數(shù)據(jù)的LlD和用于存儲(chǔ)指令的L1I,每個(gè)core還對(duì)應(yīng)有一個(gè)共享高速緩存L3,每個(gè)core包括有兩個(gè)SMT,分別為SMTO和SMTl。
[0111]在圖4中,以SMP包括兩個(gè)CPU為例進(jìn)行了圖示說明,但是需要以SMP的真實(shí)情況進(jìn)行展示,此處只是示例。在生成快照之后,還可以根據(jù)快照對(duì)各個(gè)處理器的屬性信息進(jìn)行統(tǒng)計(jì)分析,生成統(tǒng)計(jì)分析結(jié)果,如圖4所示,以SMP包括了七個(gè)CPU (分別為CPU0、CPUUCPU2、CPU3、CPU4、CPU5、CPU6 )為例進(jìn)行說明,分別生成空閑狀態(tài)隊(duì)列、頻率隊(duì)列、負(fù)載隊(duì)列、緩存錯(cuò)誤隊(duì)列、溫度隊(duì)列、任務(wù)隊(duì)列,需要說明的是,每個(gè)隊(duì)列中從左到右依次表示CPU特定屬性的高低,例如對(duì)于溫度隊(duì)列,溫度最高的是CPU5,其次是CPU6,溫度最低的是CPU3,其它隊(duì)列的排序關(guān)系和此類似,不再贅述。并且統(tǒng)計(jì)分析結(jié)果可以RB tree或二叉堆進(jìn)行排序,如圖4右上方所示的,以負(fù)載隊(duì)列為例示出了排序方式,便于查找到各個(gè)CPU的負(fù)載聞低。
[0112]202、根據(jù)上述快照和用戶輸入的控制信息生成調(diào)度策略。
[0113]在本發(fā)明實(shí)施例中,生成快照以后,可以根據(jù)上述快照和用戶輸入的控制信息生成調(diào)度策略,通過快照能夠更準(zhǔn)確更細(xì)致的描述系統(tǒng)的真實(shí)狀況,結(jié)合這樣的快照以及用戶輸入的控制信息生成調(diào)度策略,能夠更符合系統(tǒng)的真實(shí)狀況,從而實(shí)現(xiàn)智能化調(diào)度。其中,用戶輸入的控制信息可以包括多種,例如,用戶可以設(shè)置一個(gè)白名單,將特定的任務(wù)ID(Identity,身份識(shí)別碼)以控制信息的方式寫入白名單中,還可以以控制信息的方式將指定的CPU也寫入白名單中,則只有白名單中出現(xiàn)的特定任務(wù)才能夠被分配這些指定的CPU資源,又如,用戶輸入的控制信息可以為特定的任務(wù)和特定的處理器資源綁定,對(duì)于滿足這種綁定關(guān)系的任務(wù)只能被分配這些綁定的處理器資源,另外,用戶輸入的控制信息還可以是特定的安全策略等等,在生成調(diào)度策略時(shí)需要依據(jù)用戶輸入的控制信息以及前述生成的快照。本發(fā)明實(shí)施例中需要根據(jù)用戶輸入的具體控制信息以及生成的快照的具體內(nèi)容來靈活生成調(diào)度策略,調(diào)度策略也可以生成有多種,例如,調(diào)度策略可以運(yùn)用在基于特定安全策略和資源占有機(jī)制的調(diào)度隔離機(jī)制中,特別是對(duì)用戶態(tài)調(diào)度有著更好的支持。又如,容錯(cuò)性調(diào)度策略還可以應(yīng)用于調(diào)度遷移機(jī)制中,在為調(diào)度器提供調(diào)度優(yōu)化所需處理器資源的同時(shí),動(dòng)態(tài)監(jiān)視、隔離故障實(shí)體并完成調(diào)度遷移,避免了關(guān)鍵任務(wù)失效,同時(shí)兼顧了效率與可靠性。
[0114]在本發(fā)明的一些實(shí)施例中,若根據(jù)上述快照對(duì)各個(gè)處理器的屬性信息進(jìn)行統(tǒng)計(jì)分析,生成了統(tǒng)計(jì)分析結(jié)果,則在生成調(diào)度策略時(shí)同樣也可以將統(tǒng)計(jì)分析結(jié)果作為生成調(diào)度策略的依據(jù)之一,也就是說,可以根據(jù)上述快照、上述統(tǒng)計(jì)分析結(jié)果和用戶輸入的控制信息生成調(diào)度策略。例如,若統(tǒng)計(jì)分析結(jié)果具體指的是穩(wěn)定隊(duì)列時(shí),可以生成的調(diào)度策略為:每次優(yōu)先選擇溫度低的CPU執(zhí)行待調(diào)度任務(wù)。
[0115]在本發(fā)明的另一些實(shí)施例中,調(diào)度策略還可以為當(dāng)出現(xiàn)基于統(tǒng)計(jì)分析結(jié)果的錯(cuò)誤時(shí)或系統(tǒng)的硬件出現(xiàn)故障時(shí)將待調(diào)度任務(wù)遷移到哪些處理器上,以避免任務(wù)調(diào)度失敗。其中,基于統(tǒng)計(jì)分析結(jié)果的錯(cuò)誤指的是通過生成的統(tǒng)計(jì)分析結(jié)果可以獲取到的錯(cuò)誤,例如,當(dāng)處理器的緩存錯(cuò)誤超過預(yù)置的閾值時(shí)就判定出現(xiàn)了基于統(tǒng)計(jì)分析結(jié)果的錯(cuò)誤,又如,當(dāng)處理器的溫度超過預(yù)置的溫度值時(shí)就判定出現(xiàn)了基于統(tǒng)計(jì)分析結(jié)果的錯(cuò)誤。
[0116]需要說明的是,有些系統(tǒng)沒有設(shè)置共享高速緩存,而有的系統(tǒng)設(shè)置有共享高速緩存,若系統(tǒng)中的處理器內(nèi)封裝有共享高速緩存,如圖3中的L2、L3,則前述步驟201中生成的快照還可以包括共享高速緩存的屬性信息,那么在生成調(diào)度策略時(shí)就可以使用這個(gè)共享高速緩存,生成的調(diào)度策略就可以是將共享高速緩存分配給待調(diào)度任務(wù)使用。
[0117]203、根據(jù)上述快照、上述調(diào)度策略和待調(diào)度任務(wù)的屬性為上述待調(diào)度任務(wù)分配處理器資源。
[0118]在本發(fā)明實(shí)施例中,生成快照和調(diào)度策略后,還需要考慮待調(diào)度任務(wù)的屬性,針對(duì)這些信息可以為待調(diào)度的任務(wù)分配處理器資源了,例如,根據(jù)待調(diào)度任務(wù)的屬性滿足調(diào)度策略中設(shè)置的白名單,則結(jié)合快照,就可以找到能夠正常工作的處理器,優(yōu)先將調(diào)度策略中指定的處理器資源分配給該調(diào)度任務(wù),若通過快照發(fā)現(xiàn)調(diào)度策略中指定的處理器資源已經(jīng)被隔離或者出現(xiàn)了故障,則為了避免該調(diào)度任務(wù)的失敗,還根據(jù)快照選擇能夠正常工作的處理器,將該能夠正常工作的處理器分配給待調(diào)度任務(wù),以避免關(guān)鍵任務(wù)的調(diào)度失敗。
[0119]在本發(fā)明的一些實(shí)施例中,為待調(diào)度任務(wù)分配處理器資源時(shí)除了將生成的快照、調(diào)度策略和待調(diào)度任務(wù)的屬性作為分配依據(jù)外,可以結(jié)合系統(tǒng)的負(fù)載作為分配依據(jù),盡量保證系統(tǒng)不會(huì)超負(fù)荷。
[0120]204、使用分配給上述待調(diào)度任務(wù)的處理器資源執(zhí)行所述待調(diào)度任務(wù)。
[0121]其中,為待調(diào)度任務(wù)分配過處理器資源之后,就可以使用分配給上述待調(diào)度任務(wù)的處理器資源執(zhí)行該待調(diào)度任務(wù)。
[0122]在本發(fā)明的一些實(shí)施例中,使用分配給上述待調(diào)度任務(wù)的處理器資源執(zhí)行上述待調(diào)度任務(wù)的同時(shí),本發(fā)明實(shí)施例還可以包括如下方法:若周期性的對(duì)系統(tǒng)中處理器和高速緩存之間的拓?fù)浣Y(jié)構(gòu)生成有快照,還可以根據(jù)周期性生成的快照判斷上述系統(tǒng)的負(fù)載是否超過負(fù)載門限;若系統(tǒng)的負(fù)載超過負(fù)載門限,根據(jù)上述周期性生成的快照、上述調(diào)度策略和待調(diào)度任務(wù)的屬性重新為上述待調(diào)度任務(wù)分配處理器資源;使用重新分配給上述待調(diào)度任務(wù)的處理器資源繼續(xù)執(zhí)行所述待調(diào)度任務(wù)。即可以在待調(diào)度任務(wù)在執(zhí)行的過程中,基于時(shí)間間隔例如Ims不斷地生成系統(tǒng)的快照,通過對(duì)及時(shí)生成的最新快照,實(shí)時(shí)監(jiān)測(cè)系統(tǒng)的負(fù)載是否過重,若系統(tǒng)的負(fù)載是否過重,還可以重新為該待調(diào)度任務(wù)分配處理器資源,則可以使用重新分配的處理器資源繼續(xù)執(zhí)行待調(diào)度任務(wù)。
[0123]在本發(fā)明的另一些實(shí)施例中,使用分配給上述待調(diào)度任務(wù)的處理器資源執(zhí)行上述待調(diào)度任務(wù)的同時(shí),本發(fā)明實(shí)施例還可以包括如下方法:若周期性的對(duì)系統(tǒng)中處理器和高速緩存之間的拓?fù)浣Y(jié)構(gòu)生成有快照,還可以判斷上述待調(diào)度任務(wù)的屬性是否發(fā)生變化;若待調(diào)度任務(wù)的屬性發(fā)生變化,根據(jù)上述周期性生成的快照、上述調(diào)度策略和變化后待調(diào)度任務(wù)的屬性重新為上述待調(diào)度任務(wù)分配處理器資源;使用重新分配給上述待調(diào)度任務(wù)的處理器資源繼續(xù)執(zhí)行上述待調(diào)度任務(wù)。即可以在待調(diào)度任務(wù)在執(zhí)行的過程中,基于時(shí)間間隔例如Ims不斷地生成系統(tǒng)的快照,當(dāng)待調(diào)度任務(wù)的屬性發(fā)生變化后,通過對(duì)及時(shí)生成的最新快照、調(diào)度策略和變化后待調(diào)度任務(wù)的屬性重新為該待調(diào)度任務(wù)分配處理器資源,則可以使用重新分配的處理器資源繼續(xù)執(zhí)行待調(diào)度任務(wù)。
[0124]在本發(fā)明的另一些實(shí)施例中,使用分配給上述待調(diào)度任務(wù)的處理器資源執(zhí)行上述待調(diào)度任務(wù)的同時(shí),本發(fā)明實(shí)施例還可以包括如下方法:還可以根據(jù)上述統(tǒng)計(jì)分析結(jié)果判斷是否出現(xiàn)基于統(tǒng)計(jì)分析結(jié)果的錯(cuò)誤;若出現(xiàn)基于統(tǒng)計(jì)分析結(jié)果的錯(cuò)誤,根據(jù)上述調(diào)度策略將上待調(diào)度任務(wù)遷移到所述調(diào)度策略指定的處理器上。即可以在待調(diào)度任務(wù)在執(zhí)行的過程中,基于時(shí)間間隔例如Ims不斷地生成系統(tǒng)的快照,通過對(duì)及時(shí)生成的最新快照,根據(jù)統(tǒng)計(jì)分析結(jié)果判斷是否出現(xiàn)了基于統(tǒng)計(jì)分析結(jié)果的錯(cuò)誤,若出現(xiàn)基于統(tǒng)計(jì)分析結(jié)果的錯(cuò)誤,還可以根據(jù)調(diào)度策略將待調(diào)度任務(wù)遷移到調(diào)度策略指定的處理器上,以避免待調(diào)度任務(wù)的失敗。
[0125]在本發(fā)明的另一些實(shí)施例中,使用分配給上述待調(diào)度任務(wù)的處理器資源執(zhí)行上述待調(diào)度任務(wù)的同時(shí),本發(fā)明實(shí)施例還可以包括如下方法:還可以判斷系統(tǒng)中的處理器是否出現(xiàn)軟件方面或硬件方面的故障;若系統(tǒng)中的處理器出現(xiàn)了軟件方面或硬件方面的故障,根據(jù)上述調(diào)度策略將上待調(diào)度任務(wù)遷移到所述調(diào)度策略指定的處理器上。即可以在待調(diào)度任務(wù)在執(zhí)行的過程中,基于時(shí)間間隔例如Ims不斷地生成系統(tǒng)的快照,通過對(duì)及時(shí)生成的最新快照,根據(jù)統(tǒng)計(jì)分析結(jié)果判斷系統(tǒng)中處理器的硬件方面是否出現(xiàn)了故障,若系統(tǒng)中處理器的硬件方面出現(xiàn)故障,還可以根據(jù)調(diào)度策略將待調(diào)度任務(wù)遷移到調(diào)度策略指定的處理器上,以避免待調(diào)度任務(wù)的失敗,若系統(tǒng)中處理器的軟件方面出現(xiàn)故障,還可以根據(jù)調(diào)度策略將待調(diào)度任務(wù)遷移到調(diào)度策略指定的處理器上,以避免待調(diào)度任務(wù)的失敗。
[0126]由上述實(shí)施例可知,首先對(duì)系統(tǒng)中處理器和高速緩存之間的拓?fù)浣Y(jié)構(gòu)生成快照,然后根據(jù)上述快照和用戶輸入的控制信息生成調(diào)度策略,根據(jù)上述快照、上述調(diào)度策略和待調(diào)度任務(wù)的屬性為該待調(diào)度任務(wù)分配處理器資源,最后根據(jù)分配給待調(diào)度任務(wù)的處理器資源執(zhí)行該調(diào)度任務(wù)。由于在為待調(diào)度任務(wù)分配處理器資源之前針對(duì)系統(tǒng)中處理器和高速緩存之間的拓?fù)浣Y(jié)構(gòu)生成了快照,分配處理器資源時(shí)也是基于該快照、調(diào)度策略和待調(diào)度任務(wù)的屬性而分配,而快照能夠更準(zhǔn)確更細(xì)致的描述系統(tǒng)的真實(shí)狀況,結(jié)合這樣的快照向待調(diào)度任務(wù)分配處理器資源,能夠使各個(gè)處理器之間任務(wù)分配更均衡,更精細(xì)化,并且通過快照能夠感知系統(tǒng)的拓?fù)浣Y(jié)構(gòu),從而可以自行獲知處理器的親和性,不需要用戶的手動(dòng)下發(fā),提高調(diào)度的智能化。
[0127]為便于更好的理解和實(shí)施本發(fā)明實(shí)施例的上述方案,下面舉例幾個(gè)應(yīng)用場(chǎng)景來進(jìn)行說明。如圖5所示為實(shí)際應(yīng)用中的多核處理器的調(diào)度裝置的一種具體實(shí)現(xiàn)方式,可以包括:快照生成及分析模塊、用戶管理模塊、處理器資源分配與控制模塊、調(diào)度控制與遷移模塊、用戶態(tài)調(diào)度器、任務(wù)分發(fā)模塊、內(nèi)核態(tài)調(diào)度器。其中,
[0128]快照生成及分析模塊對(duì)系統(tǒng)中處理器和高速緩存之間的拓?fù)浣Y(jié)構(gòu)生成快照,并對(duì)處理器的屬性信息做出基于歷史統(tǒng)計(jì)的分析,生成統(tǒng)計(jì)分析結(jié)果。其中對(duì)系統(tǒng)生成快照可以基于可控的時(shí)間粒度和/或深度粒度反映處理器和高速緩存之間的拓?fù)浣Y(jié)構(gòu),可以支持多個(gè)處理器的不同能力集,可以實(shí)現(xiàn)拓?fù)涓兄8鶕?jù)應(yīng)用場(chǎng)景和用戶需求的不同,可以靈活的配置快照生成及分析模塊,例如,圖5中表示的是將快照生成及分析模塊設(shè)置在用戶空間(Uesr space)中,同樣也可以將快照生成及分析模塊設(shè)置在操作系統(tǒng)的內(nèi)核(Kernel)中,其中,圖5中對(duì)于設(shè)置在操作系統(tǒng)的內(nèi)核中的快照生成及分析模塊以虛線來表示,特此說明。另外,設(shè)置在用戶空間中可以實(shí)現(xiàn)完全在用戶態(tài)實(shí)現(xiàn)相關(guān)功能,設(shè)置在操作系統(tǒng)的內(nèi)核中還可以實(shí)現(xiàn)內(nèi)核態(tài)調(diào)度器實(shí)現(xiàn)內(nèi)容調(diào)度。
[0129]快照生成及分析模塊主要包括如下兩方面的功能:
[0130]I)、生成快照對(duì)象:反映處理器和高速緩存之間的拓?fù)浣Y(jié)構(gòu)以及實(shí)時(shí)數(shù)據(jù)采集,包括以樹狀結(jié)構(gòu)組織的處理器及cache的拓?fù)浣Y(jié)構(gòu)以及相關(guān)屬性(數(shù)據(jù)),對(duì)于同構(gòu)和異構(gòu)平臺(tái)都能夠準(zhǔn)確的生成快照對(duì)象。仍以圖4為例,每一個(gè)快照生成點(diǎn)都會(huì)生成一個(gè)樹狀結(jié)構(gòu),體現(xiàn)出CPU/CACHE之間的親緣關(guān)系,葉子節(jié)點(diǎn)代表每一個(gè)系統(tǒng)可用的處理器和相關(guān)屬性數(shù)據(jù),以及指向處理器運(yùn)行隊(duì)列的指針。
[0131]2)、對(duì)快照的統(tǒng)計(jì)分析比對(duì),仍以圖4為例,每一次快照生成后都會(huì)做基于當(dāng)前和以往快照的對(duì)比分析,生成基于不同策略及屬性的統(tǒng)計(jì)分析結(jié)果,統(tǒng)計(jì)結(jié)果可以以不同的數(shù)據(jù)結(jié)構(gòu)(RB tree or binary heap)進(jìn)行排序或處理,并存儲(chǔ)在相應(yīng)的屬性隊(duì)列,便于快速索引,不同的屬性可以疊加以組形成組合策略。
[0132]用戶管理模塊,用于通過人機(jī)交換界面獲取到用戶輸入的控制信息,用于指示快照生成及分析模塊生成快照的時(shí)間粒度、特定程序感興趣的處理器屬性信息和快照的范圍粒度。并且通過控制與狀態(tài)、統(tǒng)計(jì)與查詢接口實(shí)現(xiàn)控制信息、調(diào)度策略下發(fā),任務(wù)分發(fā)控制與統(tǒng)計(jì)、狀態(tài)監(jiān)聽。
[0133]處理器資源分配與控制模塊,用于根據(jù)快照和用戶輸入的控制信息生成調(diào)度策略;根據(jù)快照、調(diào)度策略和待調(diào)度任務(wù)的屬性為待調(diào)度任務(wù)分配處理器資源。
[0134]調(diào)度控制與遷移模塊,用于自動(dòng)檢測(cè)的調(diào)度狀態(tài),針對(duì)基于統(tǒng)計(jì)分析結(jié)果的錯(cuò)誤或硬件錯(cuò)誤對(duì)待調(diào)度任務(wù)進(jìn)行遷移。可以基于正常調(diào)度策略的主動(dòng)調(diào)度遷移機(jī)制(資源動(dòng)態(tài)調(diào)配),也可以基于容災(zāi)性調(diào)度策略的調(diào)度遷移機(jī)制,避免關(guān)鍵任務(wù)長時(shí)間失效。如圖5中,MCA (Machine Check Architecture,機(jī)器自動(dòng)檢查架構(gòu))檢測(cè)到出現(xiàn)了內(nèi)核錯(cuò)誤事件或者處理器的溫度超過閾值的錯(cuò)誤事件。調(diào)度控制與遷移模塊可以結(jié)合快照與統(tǒng)計(jì)分析,可提供基于特定安全策略和資源占有機(jī)制的調(diào)度隔離機(jī)制,特別是對(duì)用戶態(tài)調(diào)度有著更好的支持。調(diào)度管理及控制模塊提供基于快照和統(tǒng)計(jì)分析的調(diào)度遷移機(jī)制,特別是對(duì)于容錯(cuò)性調(diào)度策略的支持,在為調(diào)度器提供調(diào)度優(yōu)化所需資源的同時(shí),動(dòng)態(tài)監(jiān)視、隔離故障實(shí)體并完成調(diào)度遷移,避免了關(guān)鍵任務(wù)失效,同時(shí)兼顧了效率與可靠性。
[0135]用戶態(tài)調(diào)度器,用于使用分配給待調(diào)度任務(wù)的處理器資源執(zhí)行待調(diào)度任務(wù),如圖5中將兩個(gè)CPU分配給待調(diào)度任務(wù),則直接可以使用者兩個(gè)CPU來執(zhí)行待調(diào)度任務(wù)。用戶態(tài)調(diào)度器可以實(shí)現(xiàn)均衡的或基于統(tǒng)計(jì)分析的作業(yè)調(diào)度,選擇待調(diào)度任務(wù)并分發(fā)至合適的處理器調(diào)度隊(duì)列,不需要用戶下發(fā)處理器及cache親和性策略,就可以具備親和性的自我感知和動(dòng)態(tài)設(shè)置的能力,這樣對(duì)于系統(tǒng)性能的提升會(huì)有幫助。
[0136]任務(wù)分發(fā)模塊,用于根據(jù)系統(tǒng)的快照和統(tǒng)計(jì)分析結(jié)果將待調(diào)度任務(wù)分配到調(diào)度隊(duì)列中。
[0137]內(nèi)核態(tài)調(diào)度器,用于使用CPU資源執(zhí)行各個(gè)調(diào)度隊(duì)列中的待調(diào)度任務(wù)。例如,內(nèi)核態(tài)調(diào)度器基于CFS (Completely Fair Scheduler,完全公平調(diào)度算法)感興趣的統(tǒng)計(jì)分析結(jié)果(例如單一內(nèi)核或局部溫度過高時(shí)啟動(dòng)卸載(off loading)或自動(dòng)下線程序),還可以結(jié)合系統(tǒng)的快照,實(shí)現(xiàn)一定程度智能化的調(diào)度。
[0138]請(qǐng)參閱如圖6所示,以本發(fā)明實(shí)施例中提供的多核處理器的調(diào)度方法應(yīng)用在諸如無線控制器之類的實(shí)時(shí)系統(tǒng)中為例,通過綁定處理器來實(shí)現(xiàn)用戶態(tài)調(diào)度,從而達(dá)到不修改內(nèi)核而匹配特殊的調(diào)度策略以及減少系統(tǒng)調(diào)用的開銷的目的。
[0139]請(qǐng)結(jié)合圖6所示,在此應(yīng)用場(chǎng)景下的實(shí)施流程包括以下幾個(gè)步驟:
[0140]S01、循環(huán)處理用戶輸入的控制信息。其中,通過用戶管理模塊設(shè)置用戶態(tài)調(diào)度的控制信息可以包括:需要的CPU個(gè)數(shù),進(jìn)程/線程個(gè)數(shù),Cache資源的使用策略,能力集劃分等一些可以支持的屬性。
[0141]S02、判斷針對(duì)系統(tǒng)是否生成有快照?若是,執(zhí)行步驟S03,若沒有執(zhí)行步驟S04。
[0142]S03、獲取快照和統(tǒng)計(jì)分析結(jié)果,然后觸發(fā)步驟S05執(zhí)行。
[0143]S04、對(duì)系統(tǒng)中處理器和高速緩存之間的拓?fù)浣Y(jié)構(gòu)生成快照,若成功生成,執(zhí)行步驟S03,若生成快照失敗,重新回到步驟S01。
[0144]S05、根據(jù)快照和用戶輸入的控制信息生成調(diào)度策略,根據(jù)快照、調(diào)度策略和待調(diào)度任務(wù)的屬性為待調(diào)度任務(wù)分配處理器資源。
[0145]S06、將待調(diào)度任務(wù)和分配的處理器資源綁定。[0146]S07、使用分配給待調(diào)度任務(wù)的處理器資源開始執(zhí)行待調(diào)度任務(wù),然后分別觸發(fā)步驟S08、S15執(zhí)行。
[0147]S08、實(shí)時(shí)提供快照內(nèi)容監(jiān)測(cè)系統(tǒng)的負(fù)載和待調(diào)度任務(wù),判斷系統(tǒng)的負(fù)載是否超過負(fù)載門限,以及判斷待調(diào)度任務(wù)的屬性是否發(fā)生變化,分別執(zhí)行步驟S09和S13。
[0148]S09、判斷系統(tǒng)的負(fù)載是否過重,若是,觸發(fā)步驟SlO和步驟Sll執(zhí)行。
[0149]S10、檢查快照內(nèi)容,動(dòng)態(tài)擴(kuò)展處理器資源。
[0150]S11、根據(jù)快照內(nèi)容確定是否釋放某些資源,若決定釋放某些資源,執(zhí)行步驟S12。例如根據(jù)任務(wù)所占用的資源比如處理器的數(shù)目、是否獨(dú)占資源等可以進(jìn)行動(dòng)態(tài)調(diào)整。
[0151]S12、動(dòng)態(tài)減少處理器資源。
[0152]S13、判斷待調(diào)度任務(wù)的屬性是否需要調(diào)整或者待調(diào)度任務(wù)的屬性是否發(fā)生變化,若是,觸發(fā)步驟Sll和步驟S14執(zhí)行。
[0153]S14、判斷是否動(dòng)態(tài)調(diào)整處理器資源,若是,回到步驟S09。
[0154]S15、實(shí)時(shí)提供快照內(nèi)容監(jiān)測(cè)基于統(tǒng)計(jì)分析結(jié)果的錯(cuò)誤和硬件故障,觸發(fā)步驟S16執(zhí)行。
[0155]S16、判斷是否發(fā)現(xiàn)錯(cuò)誤,若是,分別觸發(fā)步驟S17和步驟S18執(zhí)行。例如通過實(shí)時(shí)監(jiān)測(cè),發(fā)現(xiàn)錯(cuò)誤時(shí)根據(jù)快照內(nèi)容進(jìn)行處理器資源的動(dòng)態(tài)調(diào)整。
[0156]S17、判斷cache錯(cuò)誤是否達(dá)到閾值,若是執(zhí)行步驟S19。
[0157]S18、判斷CPU是否出現(xiàn)故障,若是執(zhí)行步驟S19。
[0158]S19、借助實(shí)時(shí)提供的快照內(nèi)容進(jìn)行任務(wù)遷移和重新調(diào)度。
[0159]通過統(tǒng)計(jì)分析的某類錯(cuò)誤(如cache error)達(dá)到閾值或發(fā)生硬件故障時(shí)進(jìn)行容錯(cuò)調(diào)度,隔離故障資源并根據(jù)快照將調(diào)度遷移到事先指定的處理器上,避免關(guān)鍵應(yīng)用失效。
[0160]請(qǐng)參閱如圖7所示,為本發(fā)明的多核處理器的調(diào)度方法在任務(wù)分發(fā)機(jī)制中的應(yīng)用場(chǎng)景,以快照生成及分析模塊設(shè)置在操作系統(tǒng)的內(nèi)核中為例,該實(shí)現(xiàn)方法的流程可以包括以下幾個(gè)步驟:
[0161 ] I )、基于預(yù)配置文件或用戶管理模塊,通過控制與狀態(tài)查詢接口下發(fā)內(nèi)核態(tài)調(diào)度的任務(wù)分發(fā)策略和能力集合劃分以及快照間隔等參數(shù);
[0162]2)、快照生成及分析模塊(設(shè)置在內(nèi)核中)根據(jù)能力集合或任務(wù)要求的不同劃分不同的任務(wù)分發(fā)域,每個(gè)域包含至少一個(gè)處理器調(diào)度隊(duì)列;
[0163]3)、根據(jù)快照、統(tǒng)計(jì)分析結(jié)果及根據(jù)用戶輸入的控制信息生成最終的調(diào)度策略并設(shè)置內(nèi)核中的任務(wù)分發(fā)模塊。
[0164]4)、任務(wù)分發(fā)模塊實(shí)時(shí)調(diào)整待調(diào)度任務(wù)至不同的處理器調(diào)度隊(duì)列,避免頻繁的調(diào)度后再進(jìn)行負(fù)載均衡;
[0165]5)、內(nèi)核態(tài)調(diào)度器通過與快照生成及分析模塊的接口,在具體進(jìn)程/線程調(diào)度時(shí)可以做到拓?fù)涓兄?,并且?huì)基于調(diào)度器所關(guān)注的屬性(例如處理器負(fù)載、即時(shí)頻率、idle狀態(tài)、高速緩存共享(cache sharing)、高速緩存一致性(cache coherency)、處理器溫度等)生成調(diào)度策略,以此作為調(diào)度的參考,從而使得內(nèi)核態(tài)的調(diào)度更加智能化,CPU的親和性不必通過用戶態(tài)手動(dòng)下發(fā),在內(nèi)核態(tài)調(diào)度器中就可以實(shí)現(xiàn)智能化調(diào)度。
[0166]由上可見,首先對(duì)系統(tǒng)中處理器和高速緩存之間的拓?fù)浣Y(jié)構(gòu)生成快照,該快照可包括系統(tǒng)中處理器的個(gè)數(shù)、各個(gè)處理器的屬性信息、各個(gè)處理器內(nèi)封裝的高速緩存的屬性信息、每個(gè)處理器包括的內(nèi)核的個(gè)數(shù)、每個(gè)內(nèi)核是否包括SMT以及SMT的個(gè)數(shù),然后根據(jù)上述快照和用戶輸入的控制信息生成調(diào)度策略,根據(jù)上述快照、上述調(diào)度策略和待調(diào)度任務(wù)的屬性為該待調(diào)度任務(wù)分配處理器資源,最后根據(jù)分配給待調(diào)度任務(wù)的處理器資源執(zhí)行該調(diào)度任務(wù)。由于在為待調(diào)度任務(wù)分配處理器資源之前針對(duì)系統(tǒng)中處理器和高速緩存之間的拓?fù)浣Y(jié)構(gòu)生成了快照,分配處理器資源時(shí)也是基于該快照、調(diào)度策略和待調(diào)度任務(wù)的屬性而分配,而快照能夠更準(zhǔn)確更細(xì)致的描述系統(tǒng)的真實(shí)狀況,結(jié)合這樣的快照向待調(diào)度任務(wù)分配處理器資源,能夠使各個(gè)處理器之間任務(wù)分配更均衡,更精細(xì)化,并且通過快照能夠感知系統(tǒng)的拓?fù)浣Y(jié)構(gòu),從而可以自行獲知處理器的親和性,不需要用戶的手動(dòng)下發(fā),提高調(diào)度的智能化。
[0167]為便于更好的實(shí)施本發(fā)明實(shí)施例的上述方案,下面還提供用于實(shí)施上述方案的相
關(guān)裝置。
[0168]請(qǐng)參閱如圖8-a所示,本發(fā)明實(shí)施例提供的多核處理器的調(diào)度裝置800,包括:快照生成模塊801、獲取模塊802、資源分配模塊803、調(diào)度模塊804,其中,
[0169]快照生成模塊801,用于對(duì)系統(tǒng)中處理器和高速緩存之間的拓?fù)浣Y(jié)構(gòu)生成快照;
[0170]獲取模塊802,用于根據(jù)快照生成模塊801獲取到的所述快照和用戶輸入的控制信息生成調(diào)度策略;
[0171]資源分配模塊803,用于根據(jù)快照生成模塊801獲取到的所述快照、獲取模塊802生成的所述調(diào)度策略和待調(diào)度任務(wù)的屬性為所述待調(diào)度任務(wù)分配處理器資源;
[0172]調(diào)度模塊804,用于使用資源分配模塊803分配給所述待調(diào)度任務(wù)的處理器資源執(zhí)行所述待調(diào)度任務(wù)。
[0173]在本發(fā)明的一些實(shí)施例中,快照生成模塊801,具體用于按照周期性的對(duì)系統(tǒng)中處理器和高速緩存之間的拓?fù)浣Y(jié)構(gòu)生成快照;或,根據(jù)預(yù)置的快照范圍,對(duì)系統(tǒng)中所述快照范圍內(nèi)的處理器和高速緩存之間的拓?fù)浣Y(jié)構(gòu)生成快照;或,根據(jù)預(yù)置的快照范圍,周期性的對(duì)系統(tǒng)中處理器和高速緩存之間的拓?fù)浣Y(jié)構(gòu)生成快照。
[0174]請(qǐng)參閱如圖8_b所示,在本發(fā)明的一些實(shí)施例中,多核處理器的調(diào)度裝置800,還可以包括:判斷模塊805,其中,
[0175]所述判斷模塊805,用于若周期性的對(duì)系統(tǒng)中處理器和高速緩存之間的拓?fù)浣Y(jié)構(gòu)生成有快照,則根據(jù)周期性生成的快照判斷所述系統(tǒng)的負(fù)載是否超過負(fù)載門限;
[0176]所述資源分配模塊803,還用于當(dāng)所述系統(tǒng)的負(fù)載超過負(fù)載門限時(shí),根據(jù)所述周期性生成的快照、所述調(diào)度策略和待調(diào)度任務(wù)的屬性重新為所述待調(diào)度任務(wù)分配處理器資源;
[0177]所述調(diào)度模塊804,還用于使用重新分配給所述待調(diào)度任務(wù)的處理器資源繼續(xù)執(zhí)行所述待調(diào)度任務(wù)。
[0178]在本發(fā)明的一些實(shí)施例中,判斷模塊805,還用于若周期性的對(duì)系統(tǒng)中處理器和高速緩存之間的拓?fù)浣Y(jié)構(gòu)生成有快照,則判斷所述待調(diào)度任務(wù)的屬性是否發(fā)生變化;
[0179]所述資源分配模塊803,還用于當(dāng)所述系統(tǒng)的負(fù)載超過負(fù)載門限時(shí),根據(jù)周期性生成的快照、所述調(diào)度策略和變化后待調(diào)度任務(wù)的屬性重新為所述待調(diào)度任務(wù)分配處理器資源;
[0180]所述調(diào)度模塊804,還用于使用重新分配給所述待調(diào)度任務(wù)的處理器資源繼續(xù)執(zhí)行所述待調(diào)度任務(wù)。
[0181]請(qǐng)參閱如圖8-c所示,在本發(fā)明的一些實(shí)施例中,多核處理器的調(diào)度裝置800,還可以包括:統(tǒng)計(jì)分析模塊806,其中,
[0182]所述統(tǒng)計(jì)分析模塊806,用于根據(jù)所述快照對(duì)所述各個(gè)處理器的屬性信息進(jìn)行統(tǒng)計(jì)分析,生成統(tǒng)計(jì)分析結(jié)果;
[0183]所述獲取模塊802,具體用于根據(jù)所述快照、所述統(tǒng)計(jì)分析結(jié)果和用戶輸入的控制信息生成調(diào)度策略。
[0184]請(qǐng)參閱如圖8-c所示,在本發(fā)明的一些實(shí)施例中,多核處理器的調(diào)度裝置800,除了包括統(tǒng)計(jì)分析模塊806,還可以包括:判斷模塊805和調(diào)度遷移模塊807,其中,
[0185]所述判斷模塊805,用于根據(jù)所述統(tǒng)計(jì)分析結(jié)果判斷是否出現(xiàn)基于統(tǒng)計(jì)分析結(jié)果的錯(cuò)誤;
[0186]所述調(diào)度遷移模塊807,用于當(dāng)出現(xiàn)基于統(tǒng)計(jì)分析結(jié)果的錯(cuò)誤時(shí),根據(jù)所述調(diào)度策略將所述待調(diào)度任務(wù)遷移到所述調(diào)度策略指定的處理器上。
[0187]在本發(fā)明的另一些實(shí)施例中,請(qǐng)參閱如圖8-d所示,統(tǒng)計(jì)分析模塊806,具體可以包括以下六個(gè)子模塊中的至少一個(gè):
[0188]第一統(tǒng)計(jì)分析子模塊8061,用于根據(jù)所述各個(gè)處理器的空閑狀態(tài)屬性進(jìn)行統(tǒng)計(jì)分析,生成第一統(tǒng)計(jì)分析結(jié)果,所述第一統(tǒng)計(jì)分析結(jié)果包括:空閑狀態(tài)隊(duì)列,所述空閑狀態(tài)隊(duì)列包括所述各個(gè)處理器的空閑狀態(tài)排序隊(duì)列;
[0189]第二統(tǒng)計(jì)分析子模塊8062,用于根據(jù)所述各個(gè)處理器的頻率屬性進(jìn)行統(tǒng)計(jì)分析,生成第二統(tǒng)計(jì)分析結(jié)果,所述第二統(tǒng)計(jì)分析結(jié)果包括:頻率隊(duì)列,所述頻率隊(duì)列包括所述各個(gè)處理器的頻率高低排序隊(duì)列;
[0190]第三統(tǒng)計(jì)分析子模塊8063,用于根據(jù)所述各個(gè)處理器的負(fù)載屬性進(jìn)行統(tǒng)計(jì)分析,生成第三統(tǒng)計(jì)分析結(jié)果,所述第三統(tǒng)計(jì)分析結(jié)果包括:負(fù)載隊(duì)列,所述負(fù)載隊(duì)列包括所述各個(gè)處理器的負(fù)載高低排序隊(duì)列;
[0191]第四統(tǒng)計(jì)分析子模塊8064,用于根據(jù)所述各個(gè)處理器的緩存錯(cuò)誤屬性進(jìn)行統(tǒng)計(jì)分析,生成第四統(tǒng)計(jì)分析結(jié)果,所述第四統(tǒng)計(jì)分析結(jié)果包括:緩存錯(cuò)誤隊(duì)列,所述緩存錯(cuò)誤隊(duì)列包括所述各個(gè)處理器的緩存錯(cuò)誤次數(shù)排序隊(duì)列;
[0192]第五統(tǒng)計(jì)分析子模塊8065,用于根據(jù)所述各個(gè)處理器的溫度屬性進(jìn)行統(tǒng)計(jì)分析,生成第五統(tǒng)計(jì)分析結(jié)果,所述第五統(tǒng)計(jì)分析結(jié)果包括:溫度隊(duì)列,所述溫度隊(duì)列包括所述各個(gè)處理器的溫度高低排序隊(duì)列;
[0193]第六統(tǒng)計(jì)分析子模塊8066,用于根據(jù)所述各個(gè)處理器的隊(duì)列屬性進(jìn)行統(tǒng)計(jì)分析,生成第六統(tǒng)計(jì)分析結(jié)果,所述第六統(tǒng)計(jì)分析結(jié)果包括:任務(wù)隊(duì)列,所述任務(wù)隊(duì)列包括所述各個(gè)處理器的隊(duì)列中任務(wù)量個(gè)數(shù)排序或任務(wù)優(yōu)先級(jí)高低排序隊(duì)列。
[0194]其中圖8-d中示出了統(tǒng)計(jì)分析模塊806包括的所有子模塊,可以理解的是,在實(shí)際應(yīng)用中并不需要執(zhí)行這些所有的子模塊,而是根據(jù)具體的應(yīng)用場(chǎng)景來靈活決定選擇哪些子模塊。
[0195]在本發(fā)明的另一些實(shí)施例中,統(tǒng)計(jì)分析模塊806,具體用于以紅黑樹RB tree或者二叉堆的形式對(duì)所述統(tǒng)計(jì)分析結(jié)果進(jìn)行排序。
[0196]在本發(fā)明的另一些實(shí)施例中,多核處理器的調(diào)度裝置800包括的判斷模塊805和調(diào)度遷移模塊807,還用于如下方式:
[0197]所述判斷模塊805,用于判斷所述系統(tǒng)中的處理器是否出現(xiàn)軟件方面或硬件方面的硬障;
[0198]所述調(diào)度遷移模塊807,用于當(dāng)所述系統(tǒng)中的處理器出現(xiàn)了軟件方面或硬件方面的故障,根據(jù)所述調(diào)度策略將所述待調(diào)度任務(wù)遷移到所述調(diào)度策略指定的處理器。
[0199]在本發(fā)明的另一些實(shí)施例中,所述快照生成模塊801生成的所述快照包括至少一個(gè)以下的信息:所述系統(tǒng)中處理器的個(gè)數(shù)、各個(gè)處理器的屬性信息、各個(gè)處理器內(nèi)封裝的高速緩存的屬性信息、每個(gè)處理器包括的內(nèi)核的個(gè)數(shù)、每個(gè)內(nèi)核是否包括同時(shí)多線程SMT以及所述SMT的個(gè)數(shù)。
[0200]在本發(fā)明的另一些實(shí)施例中,所述快照生成模塊801,還用于生成包括各個(gè)處理器內(nèi)封裝的共享高速緩存的屬性信息的快照。
[0201]由上可見,首先對(duì)系統(tǒng)中處理器和高速緩存之間的拓?fù)浣Y(jié)構(gòu)生成快照,然后根據(jù)上述快照和用戶輸入的控制信息生成調(diào)度策略,根據(jù)上述快照、上述調(diào)度策略和待調(diào)度任務(wù)的屬性為該待調(diào)度任務(wù)分配處理器資源,最后根據(jù)分配給待調(diào)度任務(wù)的處理器資源執(zhí)行該調(diào)度任務(wù)。由于在為待調(diào)度任務(wù)分配處理器資源之前針對(duì)系統(tǒng)中處理器和高速緩存之間的拓?fù)浣Y(jié)構(gòu)生成了快照,分配處理器資源時(shí)也是基于該快照、調(diào)度策略和待調(diào)度任務(wù)的屬性而分配,而快照能夠更準(zhǔn)確更細(xì)致的描述系統(tǒng)的真實(shí)狀況,結(jié)合這樣的快照向待調(diào)度任務(wù)分配處理器資源,能夠使各個(gè)處理器之間任務(wù)分配更均衡,更精細(xì)化,并且通過快照能夠感知系統(tǒng)的拓?fù)浣Y(jié)構(gòu),從而可以自行獲知處理器的親和性,不需要用戶的手動(dòng)下發(fā),提高調(diào)度的智能化。
[0202]本發(fā)明實(shí)施例還提供一種計(jì)算機(jī)存儲(chǔ)介質(zhì),其中,該計(jì)算機(jī)存儲(chǔ)介質(zhì)存儲(chǔ)有程序,該程序執(zhí)行包括上述方法實(shí)施例中記載的部分或全部布置。
[0203]接下來介紹本發(fā)明實(shí)施例提供的另一種多核處理器的調(diào)度裝置,請(qǐng)參閱圖9所示,多核處理器的調(diào)度裝置900包括:
[0204]輸入裝置901、輸出裝置902、處理器903和存儲(chǔ)器904 (其中調(diào)度裝置900中的處理器903的數(shù)量可以一個(gè)或多個(gè),圖9中以一個(gè)處理器為例)。在本發(fā)明的一些實(shí)施例中,輸入裝置901、輸出裝置902、處理器903和存儲(chǔ)器904可通過總線或其它方式連接,其中,圖9中以通過總線連接為例。
[0205]其中,處理器903,用于執(zhí)行如下步驟:對(duì)系統(tǒng)中處理器和高速緩存之間的拓?fù)浣Y(jié)構(gòu)生成快照;根據(jù)所述快照和用戶輸入的控制信息生成調(diào)度策略;根據(jù)所述快照、所述調(diào)度策略和待調(diào)度任務(wù)的屬性為所述待調(diào)度任務(wù)分配處理器資源;使用分配給所述待調(diào)度任務(wù)的處理器資源執(zhí)行所述待調(diào)度任務(wù)。
[0206]在本發(fā)明的一些實(shí)施例中,處理器903具體用于執(zhí)行以下步驟:周期性的對(duì)系統(tǒng)中處理器和高速緩存之間的拓?fù)浣Y(jié)構(gòu)生成快照;或,
[0207]根據(jù)預(yù)置的快照范圍,對(duì)系統(tǒng)中所述快照范圍內(nèi)的處理器和高速緩存之間的拓?fù)浣Y(jié)構(gòu)生成快照;或,
[0208]根據(jù)預(yù)置的快照范圍,周期性的對(duì)系統(tǒng)中處理器和高速緩存之間的拓?fù)浣Y(jié)構(gòu)生成快照。
[0209]在本發(fā)明的一些實(shí)施例中,處理器903還用于執(zhí)行以下步驟:根據(jù)所述快照對(duì)所述各個(gè)處理器的屬性信息進(jìn)行統(tǒng)計(jì)分析,生成統(tǒng)計(jì)分析結(jié)果。
[0210]在本發(fā)明的另一些實(shí)施例中,處理器903還用于執(zhí)行以下步驟:若周期性的對(duì)系統(tǒng)中處理器和高速緩存之間的拓?fù)浣Y(jié)構(gòu)生成有快照,根據(jù)周期性生成的快照判斷所述系統(tǒng)的負(fù)載是否超過負(fù)載門限;若所述系統(tǒng)的負(fù)載超過負(fù)載門限,根據(jù)所述周期性生成的快照、所述調(diào)度策略和待調(diào)度任務(wù)的屬性重新為所述待調(diào)度任務(wù)分配處理器資源;使用重新分配給所述待調(diào)度任務(wù)的處理器資源繼續(xù)執(zhí)行所述待調(diào)度任務(wù)。
[0211]在本發(fā)明的一些實(shí)施例中,處理器903還用于執(zhí)行以下步驟:若周期性的對(duì)系統(tǒng)中處理器和高速緩存之間的拓?fù)浣Y(jié)構(gòu)生成有快照,判斷所述待調(diào)度任務(wù)的屬性是否發(fā)生變化;若所述待調(diào)度任務(wù)的屬性發(fā)生變化,根據(jù)周期性生成的快照、所述調(diào)度策略和變化后待調(diào)度任務(wù)的屬性重新為所述待調(diào)度任務(wù)分配處理器資源;使用重新分配給所述待調(diào)度任務(wù)的處理器資源繼續(xù)執(zhí)行所述待調(diào)度任務(wù)。
[0212]在本發(fā)明的一些實(shí)施例中,處理器903還用于執(zhí)行以下步驟:根據(jù)所述快照對(duì)所述各個(gè)處理器的屬性信息進(jìn)行統(tǒng)計(jì)分析,生成統(tǒng)計(jì)分析結(jié)果;根據(jù)所述快照、所述統(tǒng)計(jì)分析結(jié)果和用戶輸入的控制信息生成調(diào)度策略。
[0213]在本發(fā)明的一些實(shí)施例中,處理器903還用于執(zhí)行以下步驟:根據(jù)所述統(tǒng)計(jì)分析結(jié)果判斷是否出現(xiàn)基于統(tǒng)計(jì)分析結(jié)果的錯(cuò)誤;若出現(xiàn)基于統(tǒng)計(jì)分析結(jié)果的錯(cuò)誤,根據(jù)所述調(diào)度策略將所述待調(diào)度任務(wù)遷移到所述調(diào)度策略指定的處理器。
[0214]在本發(fā)明的一些實(shí)施例中,處理器903具體用于執(zhí)行以下步驟:根據(jù)所述各個(gè)處理器的空閑狀態(tài)屬性進(jìn)行統(tǒng)計(jì)分析,生成第一統(tǒng)計(jì)分析結(jié)果,所述第一統(tǒng)計(jì)分析結(jié)果包括:空閑狀態(tài)隊(duì)列,所述空閑狀態(tài)隊(duì)列包括所述各個(gè)處理器的空閑狀態(tài)排序隊(duì)列;
[0215]根據(jù)所述各個(gè)處理器的頻率屬性進(jìn)行統(tǒng)計(jì)分析,生成第二統(tǒng)計(jì)分析結(jié)果,所述第二統(tǒng)計(jì)分析結(jié)果包括:頻率隊(duì)列,所述頻率隊(duì)列包括所述各個(gè)處理器的頻率高低排序隊(duì)列;
[0216]根據(jù)所述各個(gè)處理器的負(fù)載屬性進(jìn)行統(tǒng)計(jì)分析,生成第三統(tǒng)計(jì)分析結(jié)果,所述第三統(tǒng)計(jì)分析結(jié)果包括:負(fù)載隊(duì)列,所述負(fù)載隊(duì)列包括所述各個(gè)處理器的負(fù)載高低排序隊(duì)列;
[0217]根據(jù)所述各個(gè)處理器的緩存錯(cuò)誤屬性進(jìn)行統(tǒng)計(jì)分析,生成第四統(tǒng)計(jì)分析結(jié)果,所述第四統(tǒng)計(jì)分析結(jié)果包括:緩存錯(cuò)誤隊(duì)列,所述緩存錯(cuò)誤隊(duì)列包括所述各個(gè)處理器的緩存錯(cuò)誤次數(shù)排序隊(duì)列;
[0218]根據(jù)所述各個(gè)處理器的溫度屬性進(jìn)行統(tǒng)計(jì)分析,生成第五統(tǒng)計(jì)分析結(jié)果,所述第五統(tǒng)計(jì)分析結(jié)果包括:溫度隊(duì)列,所述溫度隊(duì)列包括所述各個(gè)處理器的溫度高低排序隊(duì)列;
[0219]根據(jù)所述各個(gè)處理器的隊(duì)列屬性進(jìn)行統(tǒng)計(jì)分析,生成第六統(tǒng)計(jì)分析結(jié)果,所述第六統(tǒng)計(jì)分析結(jié)果包括:任務(wù)隊(duì)列,所述任務(wù)隊(duì)列包括所述各個(gè)處理器的隊(duì)列中任務(wù)量個(gè)數(shù)排序或任務(wù)優(yōu)先級(jí)高低排序隊(duì)列。
[0220]在本發(fā)明的一些實(shí)施例中,處理器903具體用于執(zhí)行以下步驟:所述統(tǒng)計(jì)分析結(jié)果以紅黑樹RB tree或者二叉堆的形式進(jìn)行排序。
[0221]在本發(fā)明的一些實(shí)施例中,處理器903還用于執(zhí)行以下步驟:判斷所述系統(tǒng)中的處理器是否出現(xiàn)軟件方面或硬件方面的硬障;[0222]若所述系統(tǒng)中的處理器出現(xiàn)了軟件方面或硬件方面的故障,根據(jù)所述調(diào)度策略將所述待調(diào)度任務(wù)遷移到所述調(diào)度策略指定的處理器。
[0223]在本發(fā)明的一些實(shí)施例中,處理器903具體用于執(zhí)行以下步驟:對(duì)至少一個(gè)以下的信息生成快照:所述系統(tǒng)中處理器的個(gè)數(shù)、各個(gè)處理器的屬性信息、各個(gè)處理器內(nèi)封裝的高速緩存的屬性信息、每個(gè)處理器包括的內(nèi)核的個(gè)數(shù)、每個(gè)內(nèi)核是否包括同時(shí)多線程SMT以及所述SMT的個(gè)數(shù)。
[0224]在本發(fā)明的一些實(shí)施例中,處理器903還用于執(zhí)行以下步驟:對(duì)各個(gè)處理器內(nèi)封裝的共享高速緩存的屬性信息生成快照。
[0225]綜上,首先對(duì)系統(tǒng)中處理器和高速緩存之間的拓?fù)浣Y(jié)構(gòu)生成快照,然后根據(jù)上述快照和用戶輸入的控制信息生成調(diào)度策略,根據(jù)上述快照、上述調(diào)度策略和待調(diào)度任務(wù)的屬性為該待調(diào)度任務(wù)分配處理器資源,最后根據(jù)分配給待調(diào)度任務(wù)的處理器資源執(zhí)行該調(diào)度任務(wù)。由于在為待調(diào)度任務(wù)分配處理器資源之前針對(duì)系統(tǒng)中處理器和高速緩存之間的拓?fù)浣Y(jié)構(gòu)生成了快照,分配處理器資源時(shí)也是基于該快照、調(diào)度策略和待調(diào)度任務(wù)的屬性而分配,而快照能夠更準(zhǔn)確更細(xì)致的描述系統(tǒng)的真實(shí)狀況,結(jié)合這樣的快照向待調(diào)度任務(wù)分配處理器資源,能夠使各個(gè)處理器之間任務(wù)分配更均衡,更精細(xì)化,并且通過快照能夠感知系統(tǒng)的拓?fù)浣Y(jié)構(gòu),從而可以自行獲知處理器的親和性,不需要用戶的手動(dòng)下發(fā),提高調(diào)度的智能化。
[0226]本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例方法中的全部或部分步驟是可以通過程序來指令相關(guān)的硬件完成,所述的程序可以存儲(chǔ)于一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,上述提到的存儲(chǔ)介質(zhì)可以是只讀存儲(chǔ)器,磁盤或光盤等。
[0227]以上對(duì)本發(fā)明所提供的一種多核處理器的調(diào)度方法和相關(guān)裝置進(jìn)行了詳細(xì)介紹,對(duì)于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明實(shí)施例的思想,在【具體實(shí)施方式】及應(yīng)用范圍上均會(huì)有改變之處,綜上所述,本說明書內(nèi)容不應(yīng)理解為對(duì)本發(fā)明的限制。
【權(quán)利要求】
1.一種多核處理器的調(diào)度方法,其特征在于,包括: 對(duì)系統(tǒng)中處理器和高速緩存之間的拓?fù)浣Y(jié)構(gòu)生成快照; 根據(jù)所述快照和用戶輸入的控制信息生成調(diào)度策略; 根據(jù)所述快照、所述調(diào)度策略和待調(diào)度任務(wù)的屬性為所述待調(diào)度任務(wù)分配處理器資源; 使用分配給所述待調(diào)度任務(wù)的處理器資源執(zhí)行所述待調(diào)度任務(wù)。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述對(duì)系統(tǒng)中處理器和高速緩存之間的拓?fù)浣Y(jié)構(gòu)生成快照包括: 周期性的對(duì)系統(tǒng)中處理器和高速緩存之間的拓?fù)浣Y(jié)構(gòu)生成快照;或, 根據(jù)預(yù)置的快照范圍,對(duì)系統(tǒng)中所述快照范圍內(nèi)的處理器和高速緩存之間的拓?fù)浣Y(jié)構(gòu)生成快照;或, 根據(jù)預(yù)置的快照范圍,周期性的對(duì)系統(tǒng)中處理器和高速緩存之間的拓?fù)浣Y(jié)構(gòu)生成快照。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,若周期性的對(duì)系統(tǒng)中處理器和高速緩存之間的拓?fù)浣Y(jié)構(gòu)生成有快照,所述使用分配給所述待調(diào)度任務(wù)的處理器資源執(zhí)行所述待調(diào)度任務(wù)的同時(shí)還包括: 根據(jù)周期性生成的快照.判斷所述系統(tǒng)的負(fù)載是否超過負(fù)載門限; 若所述系統(tǒng)的負(fù)載超過負(fù)載門限,根據(jù)所述周期性生成的快照、所述調(diào)度策略和待調(diào)度任務(wù)的屬性重新為所述待調(diào)度任務(wù)分配處理器資源; 使用重新分配給所述待調(diào)度任務(wù)的處理器資源繼續(xù)執(zhí)行所述待調(diào)度任務(wù)。
4.根據(jù)權(quán)利要求2所述的方法,其特征在于,若周期性的對(duì)系統(tǒng)中處理器和高速緩存之間的拓?fù)浣Y(jié)構(gòu)生成有快照,所述使用分配給所述待調(diào)度任務(wù)的處理器資源執(zhí)行所述待調(diào)度任務(wù)的同時(shí)還包括: 判斷所述待調(diào)度任務(wù)的屬性是否發(fā)生變化; 若所述待調(diào)度任務(wù)的屬性發(fā)生變化,根據(jù)周期性生成的快照、所述調(diào)度策略和變化后待調(diào)度任務(wù)的屬性重新為所述待調(diào)度任務(wù)分配處理器資源; 使用重新分配給所述待調(diào)度任務(wù)的處理器資源繼續(xù)執(zhí)行所述待調(diào)度任務(wù)。
5.根據(jù)權(quán)利要求1至4中任一項(xiàng)所述的方法,其特征在于,所述對(duì)系統(tǒng)中處理器和高速緩存之間的拓?fù)浣Y(jié)構(gòu)生成快照之后還包括: 根據(jù)所述快照對(duì)所述各個(gè)處理器的屬性信息進(jìn)行統(tǒng)計(jì)分析,生成統(tǒng)計(jì)分析結(jié)果; 所述根據(jù)所述快照和用戶輸入的控制信息生成調(diào)度策略具體包括: 根據(jù)所述快照、所述統(tǒng)計(jì)分析結(jié)果和用戶輸入的控制信息生成調(diào)度策略。
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,所述使用分配給所述待調(diào)度任務(wù)的處理器資源執(zhí)行所述待調(diào)度任務(wù)的同時(shí)還包括: 根據(jù)所述統(tǒng)計(jì)分析結(jié)果判斷是否出現(xiàn)基于統(tǒng)計(jì)分析結(jié)果的錯(cuò)誤; 若出現(xiàn)基于統(tǒng)計(jì)分析結(jié)果的錯(cuò)誤,根據(jù)所述調(diào)度策略將所述待調(diào)度任務(wù)遷移到所述調(diào)度策略指定的處理器。
7.根據(jù)權(quán)利要求5或6所述的方法,其特征在于,所述根據(jù)所述快照對(duì)所述各個(gè)處理器的屬性信息進(jìn)行統(tǒng)計(jì)分析,生成統(tǒng)計(jì)分析結(jié)果,包括以下六種實(shí)現(xiàn)方式的其中至少一種:根據(jù)所述各個(gè)處理器的空閑狀態(tài)屬性進(jìn)行統(tǒng)計(jì)分析,生成第一統(tǒng)計(jì)分析結(jié)果,所述第一統(tǒng)計(jì)分析結(jié)果包括:空閑狀態(tài)隊(duì)列,所述空閑狀態(tài)隊(duì)列包括所述各個(gè)處理器的空閑狀態(tài)排序隊(duì)列; 根據(jù)所述各個(gè)處理器的頻率屬性進(jìn)行統(tǒng)計(jì)分析,生成第二統(tǒng)計(jì)分析結(jié)果,所述第二統(tǒng)計(jì)分析結(jié)果包括:頻率隊(duì)列,所述頻率隊(duì)列包括所述各個(gè)處理器的頻率高低排序隊(duì)列;根據(jù)所述各個(gè)處理器的負(fù)載屬性進(jìn)行統(tǒng)計(jì)分析,生成第三統(tǒng)計(jì)分析結(jié)果,所述第三統(tǒng)計(jì)分析結(jié)果包括:負(fù)載隊(duì)列,所述負(fù)載隊(duì)列包括所述各個(gè)處理器的負(fù)載高低排序隊(duì)列; 根據(jù)所述各個(gè)處理器的緩存錯(cuò)誤屬性進(jìn)行統(tǒng)計(jì)分析,生成第四統(tǒng)計(jì)分析結(jié)果,所述第四統(tǒng)計(jì)分析結(jié)果包括:緩存錯(cuò)誤隊(duì)列,所述緩存錯(cuò)誤隊(duì)列包括所述各個(gè)處理器的緩存錯(cuò)誤次數(shù)排序隊(duì)列; 根據(jù)所述各個(gè)處理器的溫度屬性進(jìn)行統(tǒng)計(jì)分析,生成第五統(tǒng)計(jì)分析結(jié)果,所述第五統(tǒng)計(jì)分析結(jié)果包括:溫度隊(duì)列,所述溫度隊(duì)列包括所述各個(gè)處理器的溫度高低排序隊(duì)列; 根據(jù)所述各個(gè) 處理器的隊(duì)列屬性進(jìn)行統(tǒng)計(jì)分析,生成第六統(tǒng)計(jì)分析結(jié)果,所述第六統(tǒng)計(jì)分析結(jié)果包括:任務(wù)隊(duì)列,所述任務(wù)隊(duì)列包括所述各個(gè)處理器的隊(duì)列中任務(wù)量個(gè)數(shù)排序或任務(wù)優(yōu)先級(jí)高低排序隊(duì)列。
8.根據(jù)權(quán)利要求5至7中任一項(xiàng)所述的方法,其特征在于,所述統(tǒng)計(jì)分析結(jié)果以紅黑樹RB tree或者二叉堆的形式進(jìn)行排序。
9.根據(jù)權(quán)利要求1至8中任一項(xiàng)所述的方法,其特征在于,所述使用分配給所述待調(diào)度任務(wù)的處理器資源執(zhí)行所述待調(diào)度任務(wù)的同時(shí)還包括: 判斷所述系統(tǒng)中的處理器是否出現(xiàn)軟件方面或硬件方面的硬障; 若所述系統(tǒng)中的處理器出現(xiàn)了軟件方面或硬件方面的故障,根據(jù)所述調(diào)度策略將所述待調(diào)度任務(wù)遷移到所述調(diào)度策略指定的處理器。
10.根據(jù)權(quán)利要求1至9中任一項(xiàng)所述的方法,其特征在于,所述快照包括至少一個(gè)以下的信息:所述系統(tǒng)中處理器的個(gè)數(shù)、各個(gè)處理器的屬性信息、各個(gè)處理器內(nèi)封裝的高速緩存的屬性信息、每個(gè)處理器包括的內(nèi)核的個(gè)數(shù)、每個(gè)內(nèi)核是否包括同時(shí)多線程SMT以及所述SMT的個(gè)數(shù)。
11.根據(jù)權(quán)利要求1至10中任一項(xiàng)所述的方法,其特征在于,所述的方法,其特征在于,所述快照還包括各個(gè)處理器內(nèi)封裝的共享高速緩存的屬性信息。
12.—種多核處理器的調(diào)度裝置,其特征在于,包括: 快照生成模塊,用于對(duì)系統(tǒng)中處理器和高速緩存之間的拓?fù)浣Y(jié)構(gòu)生成快照; 獲取模塊,用于根據(jù)所述快照和用戶輸入的控制信息生成調(diào)度策略; 資源分配模塊,用于根據(jù)所述快照、所述調(diào)度策略和待調(diào)度任務(wù)的屬性為所述待調(diào)度任務(wù)分配處理器資源; 調(diào)度模塊,用于使用分配給所述待調(diào)度任務(wù)的處理器資源執(zhí)行所述待調(diào)度任務(wù)。
13.根據(jù)權(quán)利要求12所述的裝置,其特征在于,所述快照生成模塊,具體用于按照周期性的對(duì)系統(tǒng)中處理器和高速緩存之間的拓?fù)浣Y(jié)構(gòu)生成快照;或,根據(jù)預(yù)置的快照范圍,對(duì)系統(tǒng)中所述快照范圍內(nèi)的處理器和高速緩存之間的拓?fù)浣Y(jié)構(gòu)生成快照;或,根據(jù)預(yù)置的快照范圍,周期性的對(duì)系統(tǒng)中處理器和高速緩存之間的拓?fù)浣Y(jié)構(gòu)生成快照。
14.根據(jù)權(quán)利要求13所述的裝置,其特征在于,所述裝置還包括:判斷模塊,其中,所述判斷模塊,用于若周期性的對(duì)系統(tǒng)中處理器和高速緩存之間的拓?fù)浣Y(jié)構(gòu)生成有快照,則根據(jù)周期性生成的快照判斷所述系統(tǒng)的負(fù)載是否超過負(fù)載門限; 所述資源分配模塊,還用于當(dāng)所述系統(tǒng)的負(fù)載超過負(fù)載門限時(shí),根據(jù)所述周期性生成的快照、所述調(diào)度策略和待調(diào)度任務(wù)的屬性重新為所述待調(diào)度任務(wù)分配處理器資源; 所述調(diào)度模塊,還用于使用重新分配給所述待調(diào)度任務(wù)的處理器資源繼續(xù)執(zhí)行所述待調(diào)度任務(wù)。
15.根據(jù)權(quán)利要求13所述的裝置,其特征在于,所述裝置還包括:判斷模塊,其中, 所述判斷模塊,用于若周期性的對(duì)系統(tǒng)中處理器和高速緩存之間的拓?fù)浣Y(jié)構(gòu)生成有快照,則判斷所述待調(diào)度任務(wù)的屬性是否發(fā)生變化; 所述資源分配模塊,還用于當(dāng)所述系統(tǒng)的負(fù)載超過負(fù)載門限時(shí),根據(jù)周期性生成的快照、所述調(diào)度策略和變化后待調(diào)度任務(wù)的屬性重新為所述待調(diào)度任務(wù)分配處理器資源;所述調(diào)度模塊,還用于使用重新分配給所述待調(diào)度任務(wù)的處理器資源繼續(xù)執(zhí)行所述待調(diào)度任務(wù)。
16.根據(jù)權(quán)利要求12至15中任一項(xiàng)所述的裝置,其特征在于,所述裝置還包括:統(tǒng)計(jì)分析模塊,其中, 所述統(tǒng)計(jì)分析模塊,用于根據(jù)所述快照對(duì)所述各個(gè)處理器的屬性信息進(jìn)行統(tǒng)計(jì)分析,生成統(tǒng)計(jì)分析結(jié)果; 所述獲取模塊,具體用于根據(jù)所述快照、所述統(tǒng)計(jì)分析結(jié)果和用戶輸入的控制信息生成調(diào)度策略。
17.根據(jù)權(quán)利要求16所述的裝置,其特征在于,所述裝置還包括:判斷模塊和調(diào)度遷移模塊,其中, 所述判斷模塊,用于根據(jù)所述統(tǒng)計(jì)分析結(jié)果判斷是否出現(xiàn)基于統(tǒng)計(jì)分析結(jié)果的錯(cuò)誤;所述調(diào)度遷移模塊,用于當(dāng)出現(xiàn)基于統(tǒng)計(jì)分析結(jié)果的錯(cuò)誤時(shí),根據(jù)所述調(diào)度策略將所述待調(diào)度任務(wù)遷移到所述調(diào)度策略指定的處理器上。
18.根據(jù)權(quán)利要求16或17所述的裝置,其特征在于,所述統(tǒng)計(jì)分析模塊,包括以下六個(gè)子模塊中的至少一個(gè): 第一統(tǒng)計(jì)分析子模塊,用于根據(jù)所述各個(gè)處理器的空閑狀態(tài)屬性進(jìn)行統(tǒng)計(jì)分析,生成第一統(tǒng)計(jì)分析結(jié)果,所述第一統(tǒng)計(jì)分析結(jié)果包括:空閑狀態(tài)隊(duì)列,所述空閑狀態(tài)隊(duì)列包括所述各個(gè)處理器的空閑狀態(tài)排序隊(duì)列; 第二統(tǒng)計(jì)分析子模塊,用于根據(jù)所述各個(gè)處理器的頻率屬性進(jìn)行統(tǒng)計(jì)分析,生成第二統(tǒng)計(jì)分析結(jié)果,所述第二統(tǒng)計(jì)分析結(jié)果包括:頻率隊(duì)列,所述頻率隊(duì)列包括所述各個(gè)處理器的頻率聞低排序隊(duì)列; 第三統(tǒng)計(jì)分析子模塊,用于根據(jù)所述各個(gè)處理器的負(fù)載屬性進(jìn)行統(tǒng)計(jì)分析,生成第三統(tǒng)計(jì)分析結(jié)果,所述第三統(tǒng)計(jì)分析結(jié)果包括:負(fù)載隊(duì)列,所述負(fù)載隊(duì)列包括所述各個(gè)處理器的負(fù)載聞低排序隊(duì)列; 第四統(tǒng)計(jì)分析子模塊,用于根據(jù)所述各個(gè)處理器的緩存錯(cuò)誤屬性進(jìn)行統(tǒng)計(jì)分析,生成第四統(tǒng)計(jì)分析結(jié)果,所述第四統(tǒng)計(jì)分析結(jié)果包括:緩存錯(cuò)誤隊(duì)列,所述緩存錯(cuò)誤隊(duì)列包括所述各個(gè)處理器的緩存錯(cuò)誤次數(shù)排序隊(duì)列; 第五統(tǒng)計(jì)分析子模塊,用于根據(jù)所述各個(gè)處理器的溫度屬性進(jìn)行統(tǒng)計(jì)分析,生成第五統(tǒng)計(jì)分析結(jié)果,所述第五統(tǒng)計(jì)分析結(jié)果包括:溫度隊(duì)列,所述溫度隊(duì)列包括所述各個(gè)處理器的溫度高低排序隊(duì)列; 第六統(tǒng)計(jì)分析子模塊,用于根據(jù)所述各個(gè)處理器的隊(duì)列屬性進(jìn)行統(tǒng)計(jì)分析,生成第六統(tǒng)計(jì)分析結(jié)果,所述第六統(tǒng)計(jì)分析結(jié)果包括:任務(wù)隊(duì)列,所述任務(wù)隊(duì)列包括所述各個(gè)處理器的隊(duì)列中任務(wù)量個(gè)數(shù)排序或任務(wù)優(yōu)先級(jí)高低排序隊(duì)列。
19.根據(jù)權(quán)利要求16至18中任一項(xiàng)所述的裝置,其特征在于,所述統(tǒng)計(jì)分析模塊,具體用于以紅黑樹RB tree或者二叉堆的形式對(duì)所述統(tǒng)計(jì)分析結(jié)果進(jìn)行排序。
20.根據(jù)權(quán)利要求12至19中任一項(xiàng)所述的裝置,其特征在于,所述裝置還包括:判斷模塊和調(diào)度遷移模塊,其中, 所述判斷模塊,用于判斷所述系統(tǒng)中的處理器是否出現(xiàn)軟件方面或硬件方面的硬障; 所述調(diào)度遷移模塊,用于當(dāng)所述系統(tǒng)中的處理器出現(xiàn)了軟件方面或硬件方面的故障,根據(jù)所述調(diào)度策略將所述待調(diào)度任務(wù)遷移到所述調(diào)度策略指定的處理器。
21.根據(jù)權(quán)利要求12至20中任一項(xiàng)所述的裝置,其特征在于,所述快照生成模塊生成的所述快照包括至少一個(gè)以下的信息:所述系統(tǒng)中處理器的個(gè)數(shù)、各個(gè)處理器的屬性信息、各個(gè)處理器內(nèi)封裝的高速緩存的屬性信息、每個(gè)處理器包括的內(nèi)核的個(gè)數(shù)、每個(gè)內(nèi)核是否包括同時(shí)多線程SMT以及所述SMT的個(gè)數(shù)。
22.根據(jù)權(quán)利要求12至21中任一項(xiàng)所述的裝置,其特征在于,所述快照生成模塊,還用于生成包括各個(gè)處理器內(nèi)封裝的共`享高速緩存的屬性信息的快照。
【文檔編號(hào)】G06F9/50GK103440173SQ201310373371
【公開日】2013年12月11日 申請(qǐng)日期:2013年8月23日 優(yōu)先權(quán)日:2013年8月23日
【發(fā)明者】胡欣蔚 申請(qǐng)人:華為技術(shù)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
宝丰县| 鹤山市| 保亭| 枞阳县| 赣州市| 城步| 南皮县| 高平市| 江安县| 布尔津县| 松江区| 马山县| 邢台市| 汝州市| 中阳县| 鲁甸县| 镶黄旗| 额敏县| 横山县| 娄烦县| 司法| 和顺县| 琼海市| 叶城县| 璧山县| 博白县| 广德县| 抚顺县| 于田县| 汝阳县| 彰化县| 合阳县| 肥城市| 大邑县| 沙洋县| 郯城县| 甘洛县| 韶关市| 克什克腾旗| 台南县| 高青县|