本發明專利技術實施例公開了一種線程調度方法、線程調度裝置及多核處理器系統,用于處理器核進行線程調度。本發明專利技術實施例方法包括:當第一處理器核發生線程上下文切換時,確定與第一處理器核具有對應關系的第二處理器核當前運行的線程的類型;若第二處理器核當前運行的是緩存敏感型線程,則在第一處理器核對應的處于就緒狀態的待運行線程的集合中查找一個緩存非敏感型線程,或者,若第二處理器核當前運行的是緩存非敏感型線程,則在第一處理器核對應的處于就緒狀態的待運行線程的集合中查找一個緩存敏感型線程;當在第一處理器核對應的處于就緒狀態的待運行線程的集合中查找到所需類型的線程時,將當前運行的線程切換成查找到的線程。
【技術實現步驟摘要】
本專利技術涉及計算機領域,尤其涉及一種線程調度方法、線程調度裝置及多核處理器系統。
技術介紹
線程是進程中的一個實體,不擁有系統資源,只有執行必須的一些數據結構,線程可以創建和撤銷,從而實現程序的并發執行。線程一般據具有就緒、堵塞和執行三種基本狀態。目前在多核處理器系統中,所有的處理器核都可以共享地訪問內存、I/O和外部中斷。系統中的硬件資源可以被多個處理器核共享,例如內存控制器、最后一級高速緩存存儲器(LLC, Last Level cache)等。現有技術中的多核處理器系統運行應用程序時,大多以線程為調度單位運行,然而,專利技術人在研究中發現,目前的線程調度過程中,是按照線程的優先級確定將要切換的線程,而忽略了多核處理器系統共享資源產生的資源競爭或浪費而導致多核處理器系統性能下降的問題。
技術實現思路
本專利技術實施例提供了一種線程調度方法、線程調度裝置及多核處理器系統,用于對多核處理器系統中的線程進行調度,能夠有效的提高共享資源的利用率,緩和處理器核對共享資源的競爭,從而提高多核處理器系統的性能。本專利技術實施例中的線程調度方法包括:當第一處理器核發生線程上下文切換時,確定與第一處理器核具有對應關系的第二處理器核當前運行的線程的類型;若第二處理器核當前運行的是緩存敏感型線程,則在第一處理器核對應的處于就緒狀態的待運行線程的集合中查找一個緩存非敏感型線程,或者,若第二處理器核當前運行的是緩存非敏感型線程,則在第一處理器核對應的處于就緒狀態的待運行線程的集合中查找一個緩存敏感型線程;當在第一處理器核對應的處于就緒狀態的待運行線程的集合中查找到所需類型的線程時,將當前運行的線程切換成查找到的線程。本專利技術實施例中的線程調度方法包括:當第一處理器核發生線程上下文切換時,將第一處理器核當前運行的線程在當前時間片的高速緩沖存儲器cache訪問率累加到第一處理器核總的cache訪問率中,將累加次數計數值加一;獲取與第一處理器核具有對應關系的第二處理器核總的cache訪問率及累加次數計數值;根據第一處理器核總的cache訪問率及累加次數計數值,計算第一處理器核的平均cache訪問率,根據第二處理器核總的cache訪問率及累加次數計數值,計算第二處理器核的平均cache訪問率,并將第一處理器核的平均cache訪問率和第二處理器核的平均cache訪問率求和作為第一參數值;掃描第一處理器核對應的處于就緒狀態的待運行線程的集合,計算當前掃描的線程在上個時間片的cache訪問率與第二處理器核當前運行的線程在上個時間片的cache訪問率的和,作為第二參數值;當第一參數值與第二參數值之間的差值大于或等于預置的數值,則將當前運行的線程切換成當前掃描的線程。本專利技術實施例中的線程調度裝置包括:確定單元,用于當第一處理器核發生線程上下文切換時,確定與第一處理器核具有對應關系的第二處理器核當前運行的線程的類型;查找單元,用于若第二處理器核當前運行的是緩存敏感型線程,則在第一處理器核對應的處于就緒狀態的待運行線程的集合中查找一個緩存非敏感型線程,或者,若第二處理器核當前運行的是緩存非敏感型線程,則在第一處理器核對應的處于就緒狀態的待運行線程的集合中查找一個緩存敏感型線程;切換單元,用于當在第一處理器核對應的處于就緒狀態的待運行線程的集合中查找到所需類型的線程時,則將當前運行的線程切換成查找到的線程。本專利技術實施例中的線程調度裝置包括:第一累加單元,用于當第一處理器核發生線程上下文切換時,將第一處理器核當前運行的線程的高速緩沖存儲器cache訪問率累加到第一處理器核總的cache訪問率中,將累加次數計數值加一;第一獲取單元,用于獲取與第一處理器核具有對應關系的第二處理器核總的cache訪問率及累加次數計數值;第一計算單元,用于根據第一處理器核總的cache訪問率及累加次數計數值,計算第一處理器核的平均cache訪問率,根據第二處理器核總的cache訪問率及累加次數計數值,計算第二處理器核的平均cache訪問率,并將第一處理器核的平均cache訪問率和第二處理器核的平均cache訪問率求和作為第一參數值;第一掃描計算單元,用于掃描第一處理器核對應的處于就緒狀態的待運行線程的集合,計算當前掃描的線程在上個時間片的cache訪問率與第二處理器核當前運行的線程在上個時間片的cache訪問率的和,作為第二參數值;第一處理單元,用于當第一參數值與第二參數值之間的差值大于或等于預置的數值,則將當前運行的線程切換成當前掃描的線程。本專利技術實施例中的多核處理器系統包括:第一處理器核和第二處理器核,以及共享的硬件資源;第一處理器核和第二處理器核訪問共享的硬件資源;第一處理器核用于:當第一處理器核發生線程上下文切換時,確定與第一處理器核具有對應關系的第二處理器核當前運行的線程的類型;若第二處理器核當前運行的是緩存敏感型線程,則在第一處理器核對應的處于就緒狀態的待運行線程的集合中查找一個緩存非敏感型線程,或者若第二處理器核當前運行的是緩存非敏感型線程,則在第一處理器核對應的處于就緒狀態的待運行線程的集合中查找一個緩存敏感型線程;當在第一處理器核對應的處于就緒狀態的待運行線程的集合中查找到所需類型的線程,將當前運行的線程切換成查找到的的線程;或者,第一處理器核用于:當第一處理器核發生線程上下文切換時,將第一處理器核當前運行的線程在當前時間片的高速緩沖存儲器cache訪問率累加到總的cache訪問率中,將累加次數計數值加一;獲取與第一處理器核具有對應關系的第二處理器核總的cache訪問率及累加次數計數值;根據第一處理器核總的cache訪問率及累加次數計數值,計算第一處理器核的平均cache訪問率,根據第二處理器核總的cache訪問率及累加次數計數值,計算第二處理器核的平均cache訪問率,并將第一處理器核的平均cache訪問率和第二處理器核的平均cache訪問率求和作為第一參數值;掃描第一處理器核對應的處于就緒狀態的待運行線程的集合,計算當前掃描的線程在上個時間片的cache訪問率與第二處理器核當前運行的線程在上個時間片的cache訪問率的和,作為第二參數值;當第一參數值與第二參數值之間的差值大于或等于預置的數值,則將當前運行的線程切換成當前掃描的線程。從以上技術方案可以看出,本專利技術實施例具有以下優點:當第一處理器核發生線程上下文切換時,確定與該第一處理器核具有對應關系的第二處理器核,若該第二處理器核當前運行的是緩存敏感型線程,則在第一處理器核對應的處于就緒狀態的待運行線程的集合中查找一個緩存非敏感型線程,或者若第二處理器核當前運行的是緩存非敏感型線程,則在第一處理器核對應的處于就緒狀態的待運行線程的集合中查找一個緩存敏感型線程,并將查找到的所需類型的線程切換成由該第一處理器核運行,從而本專利技術實施例中的線程調度裝置可使得不同緩存特征類型的線程能夠協調運行,進而避免第一處理器核及第二處理器核運行相同類型的線程而產生的資源競爭或者資源浪費,有效的緩和了處理器核對共享資源的競爭,且可提高共享資源的利用率,改善了多核處理器系統的性能。附圖說明圖1為本專利技術實施例中一種線程調度方法的一個示意圖;圖2為本專利技術實施例中一種線程調度方法的另一示意圖;圖3為本專利技術實施例中一種線程調度方法的另一示本文檔來自技高網...
【技術保護點】
一種線程調度方法,其特征在于,包括:當第一處理器核發生線程上下文切換時,將所述第一處理器核當前運行的線程在當前時間片的高速緩沖存儲器cache訪問率累加到所述第一處理器核總的cache訪問率中,將累加次數計數值加一;獲取與所述第一處理器核具有對應關系的第二處理器核總的cache訪問率及累加次數計數值;根據所述第一處理器核總的cache訪問率及累加次數計數值,計算所述第一處理器核的平均cache訪問率,根據所述第二處理器核總的cache訪問率及累加次數計數值,計算所述第二處理器核的平均cache訪問率,并將所述第一處理器核的平均cache訪問率和所述第二處理器核的平均cache訪問率求和作為第一參數值;掃描所述第一處理器核對應的處于就緒狀態的待運行線程的集合,計算當前掃描的線程在上個時間片的cache訪問率與所述第二處理器核當前運行的線程在上個時間片的cache訪問率的和,作為第二參數值;當所述第一參數值與第二參數值之間的差值大于或等于預置的數值,則將當前運行的線程切換成當前掃描的線程。
【技術特征摘要】
【專利技術屬性】
技術研發人員:劉儀陽,陳渝,譚璽,崔巖,
申請(專利權)人:華為技術有限公司,清華大學,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。