新四季網

線程調度方法及其裝置的製作方法

2023-05-08 17:07:51 2

專利名稱:線程調度方法及其裝置的製作方法
技術領域:
本發明涉及計算機領域,尤其涉及一種應用於對稱多處理器系統的線程調 度方法及其裝置。
背景技術:
進程通常被定義為一個正在運行的程序的實例,它是資源分配的單位。進 程可以支持多個線程, 一個進程中的多個線程共享相同的內存地址空間。線程是進程中的實體, 一個線程必須有一個父進程。線程不擁有系統資源,只有運行必須的一些數據結構;它與父進程的其它線程共享該進程所擁有的全 部資源。線程可以創建和撤消線程,從而實現程序的並發執行。線程一般具有 就緒、阻塞和運行三種基本狀態。某一線程的執行有可能依賴於其他線程的執行,或某一線程的開始需要等 待其他線程的結束以獲得資源的訪問權限。從時間上看,這兩個線程在時間上 不能並行執行或很難並行執行。這樣的線程被認為是有關聯度的線程。目前在對稱多處理系統中,所有的處理器都可以平等地訪問內存、I/O和 外部中斷。系統資源被系統中所有CPU共享,工作負載能夠相對均勻地分配 到所有可用處理器之上。在多處理器的系統中,不同線程可以同時在不同的中 央處理器上運行,甚至當它們屬於同一個進程時也是如此。例如,當對稱多處 理系統處理多線程的任務時,如果線程沒有指定在某個處理器上運行,空閒的 處理器會執行調度程序以取得可運行而暫時沒有被運行的線程。大多數支持多 處理器的作業系統都提供編程接口來讓進程可以控制自己的線程與各處理器 之間的關聯度。對稱多處理系統在處理有關聯的多線程的任務時,需要解決多 個處理器的相互通訊和協調,以及共享數據的同步保護。目前的對稱多處理器系統執行應用程式時,大多以線程為調度單位執行。 目前的對稱多處理器系統中,有兩種線程調用方法。在第一種線程調用方法中,不指定線程在哪個處理器上執行,由對稱多處 理器系統的調度程序對線程進行自由調度。相對空閒的處理器會從待執行線程 隊列取得線程執行。由對稱多處理器系統的調度程序自由調度線程,會出現多個相互關聯的線 程同時分別運行於不同的處理器上的情況。由於這些相互關聯的線程的資源是 共享的,在這些線程的執行過程中,不可避免地會發生處理器搶奪資源或等待 其他線程釋放資源,以執行本處理器上的線程。這樣,在一個處理器上本來應 該順暢執行完的時間片內,增加了因其他處理器的搶奪而被打斷的可能,導致 線程切換的機會大大高於正常水平。因此,兩個處理器同時處理關聯度比較高 的兩個線程,由於搶奪、等待資源的開銷,系統中如果還有其他任務等待執行, 處理器就不能及時執行卻把時間浪費在搶奪、等待資源上,從而降低了系統的 總體效率。為了解決上述問題,現有技術還提供了一種線程調度方法。在該方法中, 通過綁定一組關聯度較高的線程到某個固定的處理器上執行,使這些相互關聯 的線程從始至終綁定在該固定的處理器上執行。當有多組線程被綁定在相同的 處理器上執行時,就有可能造成該處理器忙於處理這些線程,即使當前有空閒到其它發出調度請求的處理器上執行。由於無法預知處理器的運行與空閒的情況,因此將線程綁定在某個處理器 上運行,容易發生上述被綁定的處理器很忙,而其他處理器卻空閒的情況,因 而無法發揮多處理器自由調度和並行處理的優勢,會導致壓力分布不均衡。綜上所述,目前的對稱對處理器處理關聯度比較高的多線程時,不能充分 體現對稱多處理器系統的優勢,降低了系統效率。發明內容本發明實施例提供了 一種線程調度方法,以提高對稱多處理器系統的運行效率,該方法包括如下步驟接收線程調度請求,選擇一個處於就緒狀態的待執行線程,獲取與所述待 執行線程相關聯的線程,並將獲取到的線程中處於就緒狀態的待執行線程設置 為非就緒狀態;將被選擇的待執行線程分配給所述發出調度請求的處理器執行,並在所述 被選擇的線程執行完成時,將被設置為非就緒狀態的與所述被選擇的線程相關 聯的線程恢復為就緒狀態。本發明的另 一個實施例還提供了 一種線程調度方法,該方法包括如下步驟根據線程間的關聯關係將所有線程分別綁定於線程集合,所述線程集合中 包含多個彼此關聯的線程,或者包含一個與其它線程沒有關聯關係的獨立線程;接收線程調度請求,選擇一個處於就緒狀態的待執行線程集合,並將所述 線程集合的狀態設置為非就緒狀態;將被選擇的待執行線程集合分配給所述發出調度請求的處理器執行,並在 該線程簇中的線程執行完成時,將所述線程集合的狀態設置為就緒狀態。本發明的另一個實施例提供了一種線程調度處理裝置,該裝置包括調度 單元、狀態設置單元和狀態恢復單元,其中調度單元,用於接收線程調度請求,選擇一個處於就緒狀態的待執行線程, 向所述狀態設置單元發送狀態設置指令,並將被選擇的待執行線程分配給發出 調度請求的處理器執行;在所述被選擇的線程執行完成時,向所述狀態恢復單 元發送狀態恢復指令;狀態設置單元,用於根據所述狀態設置指令,獲取與所述調度單元選擇的 待執行線程相關聯的線程,並將獲取到的線程中處於就緒狀態的待執行線程的就緒狀態設置為非就緒狀態;狀態恢復單元,用於根據所述狀態恢復指令,將所述狀態設置單元設置為 非就緒狀態的與所述被選擇的線程相關聯的線程恢復為就緒狀態。本發明的另一個實施例還提供了一種線程調度裝置,該裝置包括線程綁 定單元、調度單元、狀態設置單元和狀態恢復單元,其中線程綁定單元,用於根據線程間的關聯關係將所有線程分別綁定於線程集 合,並存儲綁定信息;所述線程集合中包含多個彼此關聯的線程,或者包含一 個與其它線程沒有關聯關係的獨立線程;調度單元,用於接收線程調度請求,選擇一個所述線程綁定單元設置的且 處於就緒狀態的線程集合,向所述狀態狀態設置單元發送狀態設置指令,並將 被選擇的線程集合分配給發出調度請求的處理器執行;在所述被調度的線程集 合執行完成時,向所述狀態恢復單元發送狀態恢復指令;狀態設置單元,用於根據所述狀態設置指令,將所述被選擇的線程集合的 狀態設置為運行狀態;狀態恢復單元,用於根據所述狀態恢復指令,將所述被選擇的線程集合的 狀態設置為就緒狀態。本發明的上述實施例中,將線程調度到發出調度請求的處理器上執行,並 將與其關聯的就緒狀態的線程設置為非就緒狀態,使該被調度的線程執行過程 中,與該被調度的線程關聯的其他線程不會被調度到其他處理器上執行,從而 減少了對稱多處理器系統對線程的自由調度所帶來的爭奪、同步資源開銷;並 且,在該線程執行完成之後,將設置為非就緒狀態的線程恢復為就緒狀態,以 使這些相互關聯的線程可以被其他處理器調度執行,從而避免了將相關聯的線 程綁定到固定的處理器上執行所造成的系統壓力分布不均衡,因此提高了系統 效率。


圖1為本發明實施例一的線程調度流程示意圖;圖2為本發明實施例的線程調度處理裝置的結構示意圖之一;圖3為本發明實施例的線程調度處理裝置的結構示意圖之二。
具體實施方式
下面結合附圖對本發明實施例進行詳細描述。 實施例一本實施例描述了以線程為調度單位,並將相互關聯的線程綁定於線程娛 (也可稱為線程集合,以下同),進行線程調度的流程。參見圖1,為本發明實施例一的線程調度流程示意圖,具體步驟包括步驟IOI、當某個處理器因當前空閒而發出調度請求時,線程調度程序接 收該處理器發出的調度請求,並根據線程調度規則,從待執行線程隊列中選擇 一個線程。待執行線程隊列中排列有處於就緒狀態的線程。線程的調度規則, 可以是根據調度方式或線程優先級進行調度。例如,線程調度程序從待執行線 程隊列中選擇一個優先級最高的線程。步驟102、調度程序獲取與被選擇的線程有關聯關係的線程的信息。可以 事先將彼此有關聯關係的線程進行標識,如將彼此有關聯關係的線程綁定為線 程簇,並保存線程與線程簇的綁定關係。當調度程序選擇一個線程進行調度時, 調度程序查詢線程與線程簇的綁定關係,獲取該線程所在的線程簇,並從該線 程簇中獲取除該線程以外的其它線程的線程標識,如線程名稱。步驟103、調度程序將待執行線程隊列中的線程名稱與步驟102中獲取到 的線程名稱進行比較,查找線程隊列中是否具有相同名稱的線程,如果有,則 將查找到的線程的狀態設置為非就緒狀態,使該線程從待執行線程隊列中被移 除。步驟104、處理器獲得調度程序分配的線程後執行該線程,在該線程執行 完畢時,調度程序將步驟103中被設置為非就緒狀態的線程恢復為就緒狀態,這些被恢復為就緒狀態的線程又回到待執行線程隊列中。線程簇(thread bundle)是一個或多個線程的集合, 一個線程簇由一個或 多個有一定關聯的線程組成。 一個線程從屬於一個線程簇。可根據需要創建一 個或多個線程簇。線程簇中的每個線程仍然保持自己的優先級等屬性。線程簇可通過應用函數接口實現,例如創建一個線程簇bundlel,其中包含2個線程threadl和thread2,其實現過 程為int ret;bundle一t bundle 1; thread一t threadl, thread2; ret = bundle—create(bundlel); assert(O ret);printf("Create bundle success.");ret = bundle_append(bundlel, threadl);if (0 == ret) printf("threadl add to bundlel.");ret = bundle—append(bundlel, thread2);if (0 == ret) printf("thread2 add to bundle2.");當移出bundlel中的線程threadl時,執行bundle一remove(bundle 1 , thread 1); 當刪除bundlel時,執行bundle—destroy (bundle 1); 刪除線程簇只是解除對該線程蔟中所包含的線程的綁定,因此當刪除線程簇時,即使該線程簇中有線程,也不會因此而刪除這些線程。創建線程簇的目的是對相互關聯的線程之間的關聯關係進行標識,從而使調度程序能夠通過查詢線程與線程簇的綁定關係,獲取與其中某個被調度的線程相關聯的線程。以下是對稱多處理器系統調度線程的 一個實例本實例中創建了 1個線程簇bundlel, bundlel中包含3個相互關聯的線程 threadl 、 thread2和thread3,系統保存線程蔟bundlel的信息,以及bundlel與 threadl 、 thread2和thread3的對應關係。對稱多處理器系統有2個處理器CPU1 和CPU2。當前待執行線程隊列中有thread 1、 thread2、 thread3,以及其他線程 待執行。CPU1當前空閒,請求調度程序執行調度;調度程序從待執行線程隊列中選擇線程threadl,分配給CPU1 (可以根據 優先級或調度方式選擇待執行線程,此為現有技術,在此不詳述),此時,threadl 的狀態從就緒狀態轉為運行狀態,並被從待執行線程隊列中移除。同時,調度 程序從保存的線程簇與線程的對應關係中,獲取到threadl所屬的線程簇是 bundlel ,從bundlel中獲取到與threadl關聯的線程有thread2和thread3,並查 詢當前的待執行線程隊列,查找到thread2和thread3 ,於是調度程序將待執行 隊列中的thread2和thread3的狀態設置為阻塞狀態,使thread2和thread3從待 執行隊列中被移除,例如將被移除的線程保存到被移除線程隊列中。CPU1得 到thread 1後執行該線程。在CUPl執行threadl的過程中,CUP2空閒,請求調度程序執行調度;執行期間內,與threadl關聯的線程thread2和thread3已經被設置為阻塞狀態 而從待執行線程隊列中移除,因此,在CPU2請求調度時,不可能將不在待執 行線程隊列中的thread2或thread3調度到CPU2上執行,因此避免了與threadl 相關聯的線程在同一時刻被不同的CPU執行。threadl執行完畢後從運行狀態轉為就緒狀態,進入到待執行線程隊列,同 時,調度程序將被設置為阻塞狀態的thread2和thread3轉為就緒狀態,例如將 被移除線程隊列中的thread2和thread3的狀態設置為就緒,使thread2和thread3 重新進入到待執行線程隊列。當任何一個CUP2請求調度時,可從待執行線程 隊列中獲得threadl或thread2或thread3執行,至於選擇哪個線程調度到CPU2,需要依據調度策略,此為現有技術,在此不詳述。由此可以看出,調度程序將與被調度的線程相關聯的線程從待執行線程隊 列中移除,使某個處理器在執行該被調度的線程的時間段內,使其它處理器不 可能得到與該被調度的線程相關聯的線程執行,從而避免了處理器之間為了執 行相互關聯的線程而搶奪資源,減少了在執行線程過程中被打斷的機率。並且, 由於本實施例中並沒有將線程簇綁定到固定的處理器上,因此, 一旦被調度的 線程調度完成後回到待執行線程隊列,以及與該線程相關聯的線程被恢復為就 緒狀態回到待執行線程隊列中時,這些線程可被自由調度,而不會象現有技術中 一樣只能由固定的處理器執行,因而使系統壓力分布均衡,提高了系統效率。 本實施例是通過將相互關聯的多個線程綁定於線程簇實現線程調度,也可 通過將相互關聯的多個線程綁定於進程實現線程調度。將相互關聯的線程綁定 於進程,可通過應用函數接口實現,如通過應用函數接口實現在進程中創建或刪除線程。當調度線程時,可通過與上述流程類似的方式,保證CPU執行該 進程中的某個線程的過程中,其他CPU不會得到該進程中的任何線程執行,在該被調度的線程執行完畢後,該進程中的處於就緒狀態的線程可以被自由調度。實施例二本實施例描述了將相互關聯的線程綁定於線程簇,並以線程簇為調度單位 進行線程調度的流程。首先,以與實施例一相同的方式創建並設置線程簇,當線程之間不存在關 聯時,可將這些獨立的線程分別獨自設置為線程簇,以使所有線程都綁定在相 應的線程簇中。線程簇中的線程保持各自的屬性。線程簇也具有屬性,如優先級。線程簇的屬性為該線程簇中處於就緒狀態 的最高優先級的線程的屬性。調度程序可根據線程簇的優先級等屬性調度線程 簇,例如,優先級高的線程簇被優先調度,這樣可保證優先級高的線程優先被 執行。線程簇也具有就緒、阻塞和運行等狀態,並可在各狀態之間進行轉換。處 於就緒狀態的線程簇可排列在待執行線程簇隊列中以等待調度程序的調度;處 於運行狀態或阻塞狀態的線程簇不會出現在待執行線程簇隊列中。當線程蔟中的某個線程被執行的時間段內,該線程簇處於運行狀態;當線程蔟中的線程執 行完畢後,該線程簇恢復到就緒狀態。以線程簇為調度單位進行調度的機制,與以線程為調度單位進行調度的機 制相似。以下為 一個以線程簇為調度單位實現線程調度的實例。例如,當前待執行線程簇隊列中有兩個待執行的線程簇bundlel和 bundle2,系統中有兩個處理器CPU1和CPU2。當CPU1空閒時發出調度請求, 調度程序接收到調度請求後,從待執行線程簇隊列中選擇一個線程簇,例如, 選擇優先級高的bundlel,並分配給CPU1執行。此時,bundlel當前為運行 狀態,從待執行線程簇隊列中移除。在CPUl執行線程簇bundle 1的過程中, CPU2空閒,並請求調度,調度程序從待執行線程簇隊列中選擇一個線程簇, 例如,選擇當前優先級高的bundle2,分配給CPU2執行。CPU在得到線程簇執行時,可依據該線程簇中的線程狀態和執行方式,執 行其中的線程,例如根據就緒狀態線程的優先級,先執行優先級高的線程。在 根據優先級或線程執行方式執行完該線程簇中的全部或部分就緒狀態線程後, 該線程簇的狀態變為就緒狀態,重新回到待執行線程簇隊列中。通過本實例可以看出,由於本實例中沒有將線程簇與處理器進行綁定,因 而空閒的處理器有可能獲得任何一個處於就緒狀態的線程簇執行,從而解決了問題。本發明實施例還提供了線程調度處理裝置。參見圖2,為本發明實施例提供的線程調度處理裝置的結構示意圖,該線 程調度處理裝置適用於實施例一所述的流程。該裝置包括線程綁定單元、調度單元、狀態設置單元和狀態恢復單元。線程綁定單元用於將相互關聯的線程綁定於線程簇,並存儲綁定信息,如線程及其所屬的線程簇的隸屬關係等信息;調度單元用於根據處理器發出的調度請求,從待執行線程隊列中選擇一個 線程,如選擇一個優先級最高的線程,並向狀態設置單元發送狀態設置指令, 狀態設置指令中可以攜帶被選擇的線程的信息,如線程名稱;狀態設置單元用於根據調度單元發出的狀態設置指令,從線程綁定單元獲 取被選擇的線程所屬的線程簇,並獲取該線程簇內除該被選擇的線程以外的線 程,然後,查詢待執行線程隊列中是否有與獲取到的線程相同的線程,並將查 詢到的相同的線程設置為阻塞狀態,使這些線程被移除待執行線程隊列;狀態恢復單元用於將狀態設置單元設置為非就緒狀態的與被選擇的線程 相關聯的線程恢復為就緒狀態,使這些線程又回到待執行線程隊列。參見圖3,為本發明實施例提供的線程調度處理裝置的結構示意圖,該線 程調度處理裝置適用於實施例二所述的流程。該裝置包括線程綁定單元、調度 單元、狀態設置單元和狀態恢復單元。線程綁定單元用於將相互關聯的線程綁定於線程簇,並存儲綁定信息。線 程綁定單元還為線程簇設置屬性,將線程簇中處於就緒狀態的優先級最高的線 程的屬性設置為該線程集合的屬性,如將優先級最高的線程的優先級作為所屬 線程簇的優先級。對於與其它線程沒有關聯關係的獨立線程,線程綁定單元將 其分別獨自綁定於線程簇,這樣使所有線程都綁定於相應的線程簇中。調度單元調度用於根椐處理器發出的調度請求,從待執行線程簇隊列中選 擇一個待執行線程蔟,並向狀態設置單元發送狀態設置指令,指令中可以攜帶線程簇的信息。調度單元調度線程簇時,可根據線程簇的屬性進行調度,如優 先調度優先級高的線程簇執行。待執行線程簇隊列中存儲有處於就緒狀態的線 程簇,如果一個線程簇中具有處於就緒狀態的線程,則該線程簇處於就緒狀態。 狀態設置單元用於根據調度單元發出的狀態設置指令,將被調度的線程簇態,該線程簇被從待執行線程隊列中移除;狀態恢復單元用於獲取線程簇的執行狀態,並在獲知被調度的線程簇中的 線程執行完成時,將該線程簇的狀態設置為就緒,使該線程蔟又回到待執行線程簇隊列。處理器在得到線程簇執行時,可依據該線程簇中的線程狀態和執行方式, 執行其中的線程,例如根據就緒狀態線程的優先級,先執行優先級高的線程。 在根據優先級或線程執行方式執行完該線程簇中的全部或部分就緒狀態線程 後,該線程簇的狀態變為就緒狀態,重新回到待執行線程簇隊列中。綜上所述,本發明實施例通過將相互關聯的線程綁定於線程蔟,使同一線 程簇內的線程同 一時刻只在一個處理器上運行,可以避免對稱多處理器系統對線程的自由調度所帶來的爭奪、同步資源開銷;同時,調度線程或線程簇時, 仍採用自由調度的機制,即不將線程或線程集合綁定在指定的處理器上執行, 避免由此帶來的被綁定的處理器很忙,而其他處理器卻空閒的請求發生,從而 在處理相互關聯的線程時,可發揮對稱多處理器的優勢,提高了系統運行效率。 顯然,本領域的技術人員可以對本發明進行各種改動和變型而不脫離本發 明的精神和範圍。這樣,倘若本發明的這些修改和變型屬於本發明權利要求及 其等同技術的範圍之內,則本發明也意圖包含這些改動和變型在內。
權利要求
1、一種線程調度方法,其特徵在於,包括如下步驟接收線程調度請求,選擇一個處於就緒狀態的待執行線程,獲取與所述待執行線程相關聯的線程,並將獲取到的線程中處於就緒狀態的待執行線程設置為非就緒狀態;將被選擇的待執行線程分配給所述發出調度請求的處理器執行,並在所述被選擇的線程執行完成時,將被設置為非就緒狀態的與所述被選擇的線程相關聯的線程恢復為就緒狀態。
2、 如權利要求1所述的方法,其特徵在於,所述被選擇的待執行線程和 與其關聯的線程綁定於線程集合;所述獲取與所述待執行線程相關聯的線程具 體包括獲取所述被選擇的待執行線程所屬的線程集合,獲取綁定於所述線程集合 的線程中,除所述被選擇的待執行線程以外的其它線程。
3、 如權利要求1所述的方法,其特徵在於,將獲取到的線程中處於就緒 狀態的待執行線程設置為非就緒狀態具體包括在待執行線程隊列中查詢與所述獲取到的線程相同的線程,並將查詢到的 線程的就緒狀態設置為非就緒狀態。
4、 如權利要求l所述的方法,其特徵在於,所述非就緒狀態為阻塞狀態。
5、 一種線程調度方法,其特徵在於,包括如下步驟根據線程間的關聯關係將所有線程分別綁定於線程集合,所述線程集合中 包含多個彼此關聯的線程,或者包含一個與其它線程沒有關聯關係的獨立線程;接收線程調度請求,選擇一個處於就緒狀態的待執行線程集合,並將所述 線程集合的狀態設置為非就緒狀態;將被選擇的待執行線程集合分配給所述發出調度請求的處理器執行,並在 該線程簇中的線程執行完成時,將所述線程集合的狀態設置為就緒狀態。
6、 如權利要求5所述的方法,其特徵在於,所述處於就緒狀態的線程集 合為具有就緒狀態線程的線程集合,所述線程集合的優先級為所述線程集合中處於就緒狀態的最高優先級線程的優先級;所述選擇一個處於就緒狀態的待執 行線程集合具體包括根據所述處於就緒狀態的線程集合的優先級選擇線程集合。
7、 如權利要求5所述的方法,其特徵在於,所述非就緒狀態為運行狀態。
8、 一種線程調度處理裝置,其特徵在於,包括調度單元、狀態設置單元 和狀態恢復單元,其中調度單元,用於接收線程調度請求,選擇一個處於就緒狀態的待執行線程, 向所述狀態設置單元發送狀態設置指令,並將被選擇的待執行線程分配給發出 調度請求的處理器執行;在所述被選擇的線程執行完成時,向所述狀態恢復單 元發送狀態恢復指令;狀態設置單元,用於根據所述狀態設置指令,獲取與所述調度單元選擇的 待執行線程相關聯的線程,並將獲取到的線程中處於就緒狀態的待執行線程的 就緒狀態設置為非就緒狀態;狀態恢復單元,用於根據所述狀態恢復指令,將所述狀態設置單元設置為 非就緒狀態的與所述被選擇的線程相關聯的線程恢復為就緒狀態。
9、 如權利要求8所述的線程調度處理裝置,其特徵在於,還包括線程 綁定單元,用於將相互關聯的線程綁定於線程集合,並存儲綁定信息;所述狀態設置單元從所述線程綁定單元獲取所述被選擇的線程所屬的線 程集合,獲取綁定於所述線程集合的線程中除所述被選擇的線程以外的其它線 程,並將其中處於就緒狀態的待執行線程設置為阻塞狀態;所述狀態恢復單元將所述線程集合中被所述狀態設置單元設置為阻塞狀 態的線程設置為就緒狀態。
10、 一種線程調度處理裝置,其特徵在於,包括線程綁定單元、調度單 元、狀態設置單元和狀態恢復單元,其中線程綁定單元,用於根據線程間的關聯關係將所有線程分別綁定於線程集 合,並存儲綁定信息;所述線程集合中包含多個彼此關聯的線程,或者包含一 個與其它線程沒有關聯關係的獨立線程;調度單元,用於接收線程調度請求,選擇一個所述線程綁定單元設置的且 處於就緒狀態的線程集合,向所述狀態狀態設置單元發送狀態設置指令,並將被選擇的線程集合分配給發出調度請求的處理器執行;在所述被調度的線程集 合執行完成時,向所述狀態恢復單元發送狀態恢復指令;狀態設置單元,用於根據所述狀態設置指令,將所述被選擇的線程集合的 狀態設置為運行狀態;狀態恢復單元,用於根據所述狀態恢復指令,將所述被選擇的線程集合的 狀態設置為就緒狀態。
全文摘要
本發明公開了一種應用於對稱多處理器系統的線程調度方法及其裝置。本發明方法包括以下步驟接收線程調度請求,選擇一個處於就緒狀態的待執行線程,獲取與所述待執行線程相關聯的線程,並將獲取到的線程中處於就緒狀態的待執行線程設置為非就緒狀態;將被選擇的待執行線程分配給所述發出調度請求的處理器執行,並在所述被選擇的線程執行完成時,將被設置為非就緒狀態的與所述被選擇的線程相關聯的線程恢復為就緒狀態。採用本發明,可減小對稱多處理器系統對線程的自由調度所帶來的爭奪、同步資源開銷,並且還可避免將線程指定到固定處理器上執行所造成的系統效率低,提高了系統運行效率。
文檔編號G06F9/46GK101324851SQ200710110988
公開日2008年12月17日 申請日期2007年6月12日 優先權日2007年6月12日
發明者李國柱 申請人:華為技術有限公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀