應(yīng)用。
[0021]處理器核加載模塊112表示可以將(多個)任務(wù)指派和/或重新指派給(多個)處理器核104(0) —(η-1)的功能,比如(重新)指派一個或多個應(yīng)用110。盡管在圖1中被圖示為與(多個)操作系統(tǒng)模塊108分開的模塊,但是將會意識到和理解在不偏離要求保護(hù)的主題的范圍的情況下可以將處理器核加載模塊112包括作為(多個)操作系統(tǒng)模塊108的一部分。在一些情況下,處理器核加載模塊112可以基于處理器核的特性來將任務(wù)指派到一個或多個處理器核??商鎿Q地或附加地,如下文進(jìn)一步所描述的,處理器核加載模塊112可以基于正在被指派的任務(wù)的特性來將任務(wù)(重新)指派給一個或多個處理器核。這包括搜集數(shù)據(jù)來識別在給定時刻處理器核的“負(fù)載”或“忙碌”程度,和/或?qū)⑷蝿?wù)指派給各種不同的處理器核來作為在計算設(shè)備102上更平均地分配處理工作量的手段。
[0022](多個)數(shù)據(jù)結(jié)構(gòu)114表示包含諸如標(biāo)志(flag)、數(shù)字、字符串等之類信息的一個或多個數(shù)據(jù)結(jié)構(gòu)。在一些實施例中,某個或某些數(shù)據(jù)結(jié)構(gòu)114可以包括描述與一個或多個處理器核相關(guān)聯(lián)的特性的信息??商鎿Q地或附加地,某個或某些數(shù)據(jù)結(jié)構(gòu)114可以包括與一個或多個應(yīng)用110、(多個)操作系統(tǒng)模塊108和/或處理器核加載模塊112相關(guān)聯(lián)的信息。在任一和/或兩種情況下,(多個)數(shù)據(jù)結(jié)構(gòu)114可以以任何合適的格式來存儲信息,該信息可以被用來傳送諸如處理器速度、處理器核加載百分比、處理器核重負(fù)載狀態(tài)標(biāo)志、應(yīng)用是否包括(多個)時間敏感特性、時序測量等之類的任何合適的關(guān)聯(lián)的特性。
[0023]計算設(shè)備102也包括一個或多個內(nèi)部設(shè)備116,并且擁有一個或多個附接的外部設(shè)備118。在這個示例中,多個內(nèi)部和/或外部設(shè)備使用符號m-Ι和k-Ι進(jìn)行指示,其中“m”指示內(nèi)部設(shè)備的數(shù)量,以及“k”指示所附接的外部設(shè)備的數(shù)量。除了其他能力之外,(多個)內(nèi)部設(shè)備116和(多個)外部設(shè)備118包括在(多個)處理器核104上中斷和/或請求任務(wù)執(zhí)行的能力,比如中斷服務(wù)例程。盡管圖1將“m”和“k”圖示為具有大于I的數(shù)值,但是可以意識到和理解,在不偏離要求保護(hù)的主題的范圍的情況下,計算設(shè)備可以簡單地包括一個內(nèi)部設(shè)備和/或一個外部設(shè)備。
[0024]一般來說,本文所描述的功能中的任一個都可以使用軟件、固件、硬件(例如,固定邏輯電路)、人工處理或這些實現(xiàn)方式的組合來實現(xiàn)。本文所使用的術(shù)語“模塊”、“功能”和“邏輯”通常表示軟件、固件、硬件或它們的組合。在軟件實現(xiàn)方式的情況下,模塊、功能或邏輯表示當(dāng)在處理器(例如,一個或多個CPU)上被執(zhí)行或被處理器(例如,一個或多個CPU)執(zhí)行時執(zhí)行指定任務(wù)的程序代碼。該程序代碼可以被存儲在一個或多個計算機(jī)可讀存儲器設(shè)備中。下文所述的手勢技術(shù)的特征是與平臺無關(guān)的,從而意味著這些技術(shù)可以在具有多種處理器的多種商業(yè)計算平臺上來被實現(xiàn)。
[0025]已經(jīng)描述了各種不同的實施例可以在其中被使用的示例操作環(huán)境,現(xiàn)在考慮對于根據(jù)一個或多個實施例調(diào)度等待時間敏感的任務(wù)的討論。
[0026]調(diào)度等待時間敏感的任務(wù)
通?,F(xiàn)今,計算設(shè)備包括多任務(wù)能力,比如并行運行多個應(yīng)用,并行監(jiān)控來自多個設(shè)備的輸入等等。隨著技術(shù)進(jìn)步,用戶不僅期望計算設(shè)備支持多任務(wù),另外還希望在進(jìn)行多任務(wù)時來自計算設(shè)備的無縫性能。這意味著用戶希望并行運行若干應(yīng)用,并且在正工作的應(yīng)用之間進(jìn)行平滑的切換。當(dāng)多任務(wù)未被無縫地執(zhí)行時,用戶可以感知到在(多個)應(yīng)用如何執(zhí)行中的故障和/或停止。為了使得能夠?qū)崿F(xiàn)更加穩(wěn)健的性能,作為一種促進(jìn)多任務(wù)和/或并行處理的方式,一些計算設(shè)備包含多個處理器核。但是,在給定系統(tǒng)中的一些處理器核在一些時候可能變得比其他處理器核更加重負(fù)載。在不監(jiān)控系統(tǒng)中處理器核如何負(fù)載的情況下,當(dāng)任務(wù)被指派給更加重負(fù)載的(多個)處理器核時,任務(wù)可能在運行中停止。
[0027]作為一個示例,考慮圖2a_d,其圖示了計算設(shè)備的多個處理器核在如上所述的若干任務(wù)和/或應(yīng)用之間進(jìn)行多任務(wù)的時序圖。這些圖示捕獲了與諸如圖1的計算設(shè)備102之類的計算設(shè)備的“核O”和“核I”相關(guān)聯(lián)的時序圖。盡管這些示例圖示了兩個處理器核,但是可以被意識到和理解,在不偏離要求保護(hù)的主題的范圍的情況下,關(guān)于圖2a_d所描述的概念可以被應(yīng)用到任何數(shù)量的處理器核。為了簡潔起見,這些圖將核圖示為簡單地是“忙碌”或“空閑”。但是,其他實施例可以將處理器核忙碌的程度區(qū)分到更精細(xì)的粒度(即,處理器核為45%忙碌)等。圖2a和2b討論關(guān)于調(diào)度軟件中斷的示例時序圖,而圖2c和2d描述了關(guān)于調(diào)度任務(wù)的示例時序圖。
[0028]為了討論的目的,圖2a將核O和核I圖示為在O時刻是空閑的,其中O時刻表示時間上任意起始點。盡管此處將每個核圖示為在時刻O空閑,但是可以被意識到,替代地,一個和/或兩個核可以交替地忙于處理指令。在點202處,核O開始處理和/或執(zhí)行任務(wù)1,并且轉(zhuǎn)換到“忙碌”狀態(tài)。任務(wù)I表示任何合適的處理器核指令集,比如線程、應(yīng)用、處理器核指令分組等。在一些情況下,任務(wù)I另外還可以具有指派的優(yōu)先次序(pr1ritizat1n),該優(yōu)先次序相對于其他任務(wù)將任務(wù)I訪問處理器核的優(yōu)先級進(jìn)行分級。例如,相對于任務(wù)I具有更尚優(yōu)先級的任務(wù)可以潛在地先占和/或臨時掛起任務(wù)I對核O的訪冋。
[0029]在點204處,核I開始處理任務(wù)2,并且在點206處完成處理任務(wù)2。與在任務(wù)I的情況下一樣,任務(wù)2可以是具有如前所述的等級和/或優(yōu)先次序的任何合適的處理器指令分組。也可以觀察到在點204處和點206處的時間之間,核O和核I兩者都并行活躍地忙于處理任務(wù)。在完成任務(wù)2時,核I沒有其他任務(wù)指派,并轉(zhuǎn)換到“空閑”狀態(tài)。
[0030]在點208處,到達(dá)的中斷被檢測到并被指派為在核O上運行。此處,核O已經(jīng)被預(yù)先識別和/或被指派來處理該到達(dá)的中斷。由于任務(wù)I尚未運行完成,其在核O上被臨時掛起,并且替代地,運行中斷服務(wù)例程。此處,在從點208到點210所標(biāo)記的時間量期間,該到達(dá)的中斷由核O來服務(wù)。該時間長度表示任意的持續(xù)時間。因此,此處被圖示為與該到達(dá)的中斷相關(guān)聯(lián)的中斷服務(wù)例程的先占任務(wù)可以潛在地占用幾納秒、幾微秒、幾毫秒、幾秒等來執(zhí)行。當(dāng)該先占的中斷服務(wù)例程已經(jīng)完成(此處在點210處圖示)時,該中斷已經(jīng)被服務(wù)并且核O繼續(xù)執(zhí)行處理任務(wù)I直到在點212處完成。因此,任務(wù)I的總共被感知的執(zhí)行時間可以被計算為點202到點212之間的時間。根據(jù)在點208到點210之間的完成中斷服務(wù)例程所花的持續(xù)時間,用戶可以在任務(wù)I的執(zhí)行中注意到延遲,尤其是如果任務(wù)I具有時間敏感特性的話。另外可以指出的是,核I在時間208與210之間保持空閑和未使用。一些實施例可以識別一個處理器核在何時比另一個更加重負(fù)載,并且相應(yīng)地將任務(wù)(重新)指派給不同的處理器核。
[0031]考慮圖2b,其圖示了任務(wù)如何被重新指派給不同處理器核的替換的時序圖。與在圖2a的情況下一樣,圖2b包括在任意起始時間O處對處理器核O和I的觀察。核O在點202處開始處理任務(wù)1,而核I分別在點204處和點206處開始和完成處理任務(wù)2。在完成任務(wù)2時,核I轉(zhuǎn)換為“空閑”狀態(tài),而核O繼續(xù)忙于處理任務(wù)I。如在圖2a的情況下所同樣描述的,在點208處檢測到達(dá)的中斷。但是,在這種情況下,給出另外的考慮以便將該中斷服務(wù)任務(wù)指派給“空閑”的或者負(fù)載較少的處理器核。
[0032]在將任務(wù)指派和/或調(diào)度給處理器核時,一些實施例至少部分基于(多個)處理器核的使用率度量來調(diào)度任務(wù)。例如,在圖2b中當(dāng)檢測到該到達(dá)的中斷時,核O正忙于處理任務(wù)I而核I處于空閑。一些實施例監(jiān)控處理器核何時處于忙碌和/或空閑,并且基于這個度量來(重新)指派任務(wù)。此處,由于核O已經(jīng)被識別為忙碌,所以該中斷服務(wù)任務(wù)被(重新)指派給核I。這允許相關(guān)聯(lián)的計算設(shè)備在整體上更加高效地處理任務(wù)。通過將該中斷服務(wù)任務(wù)(重新)指派給核1,不僅該中斷服務(wù)任務(wù)立刻被執(zhí)行,而且該計算設(shè)備可以繼續(xù)并行地在核O上執(zhí)行任務(wù)I。此處,可以測量在開始點202和結(jié)束點214之間任務(wù)I總共的執(zhí)行時間。當(dāng)將圖2a和圖2b比較時,可以指出,使用在圖2b中采用的被討論的技術(shù),所有任務(wù)都比圖2a所圖示的任務(wù)更快地完成。
[0033]現(xiàn)在考慮圖2c,其圖示了處理器核O處理始于點