TW201405421A - 執行緒優先權調整方法及系統 - Google Patents
執行緒優先權調整方法及系統 Download PDFInfo
- Publication number
- TW201405421A TW201405421A TW101125544A TW101125544A TW201405421A TW 201405421 A TW201405421 A TW 201405421A TW 101125544 A TW101125544 A TW 101125544A TW 101125544 A TW101125544 A TW 101125544A TW 201405421 A TW201405421 A TW 201405421A
- Authority
- TW
- Taiwan
- Prior art keywords
- thread
- preset condition
- priority
- fast array
- fast
- Prior art date
Links
Landscapes
- Multi Processors (AREA)
Abstract
執行緒優先權調整方法及系統,該方法包含:指定優先權給新產生之執行緒,並將執行緒置入工作佇列中;判斷執行緒是否符合第一預設條件;若執行緒符合第一預設條件,則執行以下步驟:將執行緒置入快速陣列;判斷執行緒於快速陣列中之排列順序是否符合第二預設條件;以及若執行緒於快速陣列中之排列順序符合第二預設條件,則提升執行緒之優先權。
Description
本發明係關於一種執行緒優先權調整方法及系統;特別是一種可根據執行緒是否執行特定類型之工作以決定優先權之執行緒優先權調整方法及系統。
在任何時間點,一計算系統之一處理器上皆可有多個使用者程序(Process)或執行緒(Thread)等待執行。而為最佳地利用該系統之處理器,有必要使用一機制以適當地排列需執行的程序或執行緒。大多數電腦系統係使用排程器完成此工作。
在此需先說明程式(Program)、程序及執行緒之不同。一般所謂的程式係指一群程式碼的集合,為一可執行的應用程式,例如Word文書處理軟體。而當電腦載入一個程式執行時,執行中的電腦程式被稱作程序。一個程式可以同時執行多次,而產生多個程序。而執行緒則是程序中的一個單一控制流程,一個程序可以由一個或是多個執行緒組成。
排程器通常係一軟體程式,用以協調電腦系統之共享資源(例如處理器)的使用。為此,排程器通常使用諸如先進先出(first-in first-out;FIFO)、循環(round robin)或後進先出(last-in first-out;LIFO)、優先權佇列、樹狀等演算法,或結合使用複數演算法。因此,排程器係設計用以分配公
平份額的電腦系統資源給各執行緒。
一般當執行緒被產生時,會由系統給予一優先權,處理器則會根據執行緒之優先權以決定各執行緒的執行時間,優先權較高者會擁有較多的處理器執行時間。處理器並會根據優先權在不同的執行緒間作切換,以輪替執行各執行緒。
上述演算法並未考慮到執行緒的工作類型,但實際上執行緒的工作類型會影響整個系統的執行效率。舉例來說,當某執行緒係執行搜尋工作、複製工作等不會長時間執行的工作時,如果能集中系統資源加速完成該執行緒之工作,則可提早將占用之系統資源釋放,讓其他執行緒使用。有鑑於此,有必要提供一種執行緒優先權調整方法及系統,以解決先前技術之缺失。
本發明之主要目的係在提供一種執行緒優先權調整方法。
本發明之另一主要目的係在提供一種可調整執行緒優先權的處理器系統。
為達成上述之目的,依據本發明之一實施例,本發明之執行緒優先權調整方法係用於處理器系統,處理器系統包含工作佇列及快速陣列,用以容納待處理之執行緒。該方法包含以下步驟:指定優先權給新產生之執行緒,並將執行緒置入工作佇列中;判斷執行緒是否符合第一預設條
件;若執行緒符合第一預設條件,則執行以下步驟:將執行緒置入快速陣列;判斷執行緒於快速陣列中之排列順序是否符合第二預設條件;以及若執行緒於快速陣列中之排列順序符合第二預設條件,則提升執行緒之優先權。
依據本發明之一實施例,其中第一預設條件為執行緒是否為下載工作、搜尋工作或複製工作。
依據本發明之一實施例,其中第二預設條件為執行緒是否係快速陣列中之第一個執行緒。
依據本發明之一實施例,其中第二預設條件為執行緒於快速陣列中之排列順序是否位於預設範圍之內。
依據本發明之一實施例,其中預設範圍係根據系統資源狀況決定。
依據本發明之一實施例,處理器系統包含工作佇列及快速陣列,用以容納待處理之執行緒。該系統包含處理模組、判斷模組及排程模組。處理模組用以指定優先權給新產生之執行緒,並將執行緒置入工作佇列中。判斷模組用以判斷執行緒是否符合第一預設條件。排程模組用以當執行緒符合第一預設條件時執行以下機制:將執行緒置入快速陣列;判斷執行緒於快速陣列中之排列順序是否符合第二預設條件;若執行緒於快速陣列中之排列順序符合第二預設條件,則提升執行緒之優先權。
依據本發明之一實施例,其中第一預設條件為執行緒是否為下載工作、搜尋工作或複製工作。
依據本發明之一實施例,其中第二預設條件為執行緒
是否係快速陣列中之第一個執行緒。
依據本發明之一實施例,其中第二預設條件為執行緒於快速陣列中之排列順序是否位於預設範圍之內。
依據本發明之一實施例,其中預設範圍係根據系統資源狀況決定。
為讓本發明之上述和其他目的、特徵和優點能更明顯易懂,下文特舉出本發明之具體實施例,並配合所附圖式,作詳細說明如下。
以下請先參考圖1,係依據本發明之一實施例之處理器系統之系統架構圖。依據本發明之一實施例,處理器系統100可以為一般的桌上型電腦,但本發明不以此為限;亦可以是筆記型電腦或平板電腦等電子裝置。當使用者於處理器系統100上執行工作時,藉由執行本發明之執行緒優先權調整方法,調整待處理之執行緒之優先權,以提高執行效率。
如圖1所示,依據本發明之一實施例,本發明之處理器系統100為包含連接至系統匯流排206的處理器202之一處理器系統。處理器202包含處理模組10、判斷模組20及排程模組30,用以執行本發明之執行緒優先權調整方法。需注意的是,上述各個模組除可配置為硬體裝置、軟體程式、韌體或其組合外,亦可藉電路迴路或其他適當型式配置;並且,各個模組除可以單獨之型式配置外,亦可
以結合之型式配置。
另外,記憶體控制器/快取記憶體208亦連接至系統匯流排206,且提供連接至本地記憶體209之一介面。I/O(輸入/輸出)匯流排橋接器210亦連接至系統匯流排206,且提供連接至I/O匯流排212之一介面。記憶體控制器/快取記憶體208與I/O匯流排橋接器210可如圖解整合。
連接至I/O匯流排212之周邊組件互連(Peripheral component interconnect;PCI)匯流排橋接器214提供連接至PCI本地匯流排216之一介面。若干數據機可連接至PCI本地匯流排216。一般的PCI匯流排會支援四PCI擴充槽或附加連接器(add-in connector)。藉由附加板連接至PCI本地匯流排216之數據機218及網路配接器220可提供向外連接的通信連結。以此方式,處理器系統100即允許連接至多個網路電腦。一記憶體映射之圖形配接器222及硬碟224亦可如圖解直接或間接地連接至I/O匯流排212。
熟悉技術人士應明瞭,本實施方式僅例示本發明之較佳實施例,為避免贅述,並未詳加記載所有可能的變化組合。然而,本領域之通常知識者應可理解,上述各模組或元件未必皆為必要。且為實施本發明,亦可能包含其他較細節之習知模組或元件。各模組或元件皆可能視需求加以省略或修改,且任兩模組間未必不存在其他模組或元件。
本發明提供一種系統及方法,用以調整待處理執行緒之優先權,以提升執行效率。依據本發明之另一實施例,本發明可駐在於電腦系統所使用之任一資料儲存媒體(即軟磁碟、壓縮碟片、硬碟、ROM、RAM等)中以實現。
接下來請參考圖2,係依據本發明之一實施例之執行緒優先權調整方法之步驟流程圖;並請一併參考圖1及圖3至圖x,係關於本發明之一具體實施例。以下將以圖1所示之處理器系統100說明本發明之執行緒優先權調整方法。但需注意的是,本發明之執行緒優先權調整方法並不以使用在圖1所示之處理器系統100為限。
首先進行步驟S1:指定優先權給新產生之執行緒,並將執行緒置入工作佇列中。
請參考圖3A,依據本發明之一實施例,於處理器系統100中包含工作佇列300及快速陣列400。工作佇列300用以容納所有被產生的執行緒,而快速陣列400係用以容納符合特定條件的執行緒。處理器202會根據執行緒之優先權以決定各執行緒的執行時間,並在不同的執行緒間作切換,而優先權之數字越高者表示優先權較高,會擁有較多的處理器執行時間。而如圖3A所示,工作佇列300中已有兩個執行緒500及501,其優先權分別為20及30。
當新的執行緒被產生時,由處理模組10指定優先權給新的執行緒,並將其置入工作佇列300中。請參考圖3B,執行緒502被產生後,由處理模組10指定其優先權為10,並將其加入至工作佇列300。一般對執行緒指定優先權之方式,可以參照行程的優先權類別、執行緒的優先權層級、和作業系統當時所採用的動態提升做為計算的基礎。有關於如何計算或指定優先權給各執行緒,應為發明所屬技術領域中具通常知識者所熟悉,為習知技術之範疇,於說明
書中不再贅述。
接著進行步驟S2:判斷執行緒是否符合第一預設條件。
接著由判斷模組20判斷執行緒是否符合第一預設條件。依據本發明之一實施例,第一預設條件為執行緒是否為下載工作、搜尋工作或複製工作,但本發明並不以此為限。當執行緒屬於這些類型的工作時,讓處理器202快速地先將這些工作處理完,可以提升整體的執行效率。一般來說,判斷模組20可以根據此執行緒所屬之行程來判斷執行緒是否符合此條件,但本發明不以此為限。而需注意的是,如何判斷執行緒是否符合此條件,應為發明所屬技術領域中具通常知識者所熟悉,為習知技術之範疇,於說明書中不再贅述。
接著進行步驟S3:若執行緒符合第一預設條件,則將執行緒置入快速陣列。
請參考圖3C,假設執行緒502為一複製工作,則會被判斷為是符合此第一條件,由排程模組30將執行緒502加入至快速陣列400。
接著進行步驟S4:判斷執行緒於快速陣列中之排列順序是否符合第二預設條件。
接著由排程模組30判斷執行緒於快速陣列400中之排列順序是否符合第二預設條件。依據本發明之一實施例,
第二預設條件為執行緒於快速陣列400中之排列順序是否位於一預設範圍之內。舉例來說,執行緒是否為快速陣列400中之第一個執行緒(預設範圍為一個執行緒);或執行緒是否為快速陣列400中之前三個執行緒(預設範圍為三個執行緒)。當執行緒屬於快速陣列400中排列順序在前的工作時,才將其優先權提高,讓處理器202增加花在這些工作上的時間。
另需注意的是,依據本發明之一實施例,預設範圍可根據系統資源狀況來決定。舉例來說,若目前系統資源充足,則可將預設範圍提高,讓較多執行緒之優先權被提高,處理器202花在這些執行緒上的時間較多,可較早完成這些執行緒。而若目前系統資源不足,則可將預設範圍降低,較少執行緒之優先權被提高,因此只有這些執行緒會較早完成。
最後進行步驟S5:若執行緒於快速陣列中之排列順序符合第二預設條件,則提升執行緒之優先權。
請參考圖3D,由於當執行緒502加入快速陣列400後,為快速陣列400中之第一個執行緒,因此被判斷為符合第二預設條件,由排程模組30將執行緒502之優先權提升至40,超過原先在工作佇列300中的執行緒500、501的優先權,成為優先權最高之執行緒,因此處理器202會花較多時間在處理執行緒502。需注意的是,當執行緒符合第二預設條件時,優先權並不一定需提升至最高,可視執行緒之特徵或系統資源狀況來決定要將執行緒之優先權
提升至多少。例如於本實施例中,亦可將執行緒502之優先權提升至35,介於原先在工作佇列300中的執行緒500、501的優先權之間。
接著請參考圖3E,當另一符合第一預設條件之執行緒503被產生時,同樣經由步驟S1至S3,執行緒503被加入至工作佇列300,並指定其優先權為10;同時因為執行緒503符合第一預設條件,因此亦被加入至快速陣列400。接著同樣進行步驟S4,因執行緒503並非快速陣列400中之第一個執行緒,因此其優先權不會被改變,仍然維持在10。
依據本發明之一實施例,處理器202還需循環檢測快速陣列400中各執行緒的排列順序,當快速陣列400中之某一執行緒執行結束時,將此執行緒從快速陣列400中移除,並判斷快速陣列400中其他執行緒是否符合第二預設條件。請參考圖3F,當執行緒502結束執行,則執行緒502會從快速陣列400中移除,並且判斷執行緒503是否符合第二預設條件。由於在移除執行緒502後,執行緒503已經是快速陣列400中之第一個執行緒,因此會被判斷符合第二預設條件,將其優先權提高至40,藉此提高處理器202處理執行緒503之時間。
此處需注意的是,本發明之執行緒優先權調整方法並不以上述之步驟次序為限,只要能達成本發明之目的,上述之步驟次序亦可加以改變。
綜上所陳,本發明無論就目的、手段及功效,在在均顯示其迥異於習知技術之特徵,懇請 貴審查委員明察,早日賜准專利,俾嘉惠社會,實感德便。惟應注意的是,
上述諸多實施例僅係為了便於說明而舉例而已,本發明所主張之權利範圍自應以申請專利範圍所述為準,而非僅限於上述實施例。
10‧‧‧處理模組
20‧‧‧判斷模組
30‧‧‧排程模組
100‧‧‧處理器系統
202‧‧‧處理器
206‧‧‧系統匯流排
208‧‧‧記憶體控制器/快取記憶體
209‧‧‧本地記憶體
210‧‧‧I/O匯流排橋接器
212‧‧‧I/O匯流排
214‧‧‧PCI匯流排橋接器
216‧‧‧PCI本地匯流排
218‧‧‧數據機
220‧‧‧網路配接器
222‧‧‧圖形配接器
224‧‧‧硬碟
300‧‧‧工作佇列
400‧‧‧快速陣列
500,501,502,503‧‧‧執行緒
步驟‧‧‧S1~S5
圖1係依據本發明之一實施例之處理器系統之系統架構圖。
圖2係依據本發明之一實施例之執行緒優先權調整方法之步驟流程圖。
圖3A、圖3B、圖3C、圖3D、圖3E及圖3F係依據本發明之一實施例之調整執行緒優先權之示意圖。
S1~S5‧‧‧步驟
Claims (10)
- 一種執行緒優先權調整方法,應用於一處理器系統,該處理器系統包含一工作佇列及一快速陣列,用以容納待處理之執行緒,該方法包含:指定一優先權給新產生之一執行緒,並將該執行緒置入該工作佇列中;判斷該執行緒是否符合一第一預設條件;若該執行緒符合該第一預設條件,則執行以下步驟:將該執行緒置入該快速陣列;判斷該執行緒於該快速陣列中之一排列順序是否符合一第二預設條件;以及若該執行緒於該快速陣列中之該排列順序符合該第二預設條件,則提升該執行緒之優先權。
- 如申請專利範圍第1項所述之方法,其中該第一預設條件為該執行緒是否為一下載工作、一搜尋工作或一複製工作。
- 如申請專利範圍第1或2項所述之方法,其中該第二預設條件為該執行緒是否係該快速陣列中之第一個執行緒。
- 如申請專利範圍第1或2項所述之方法,其中該第二預設條件為該執行緒於該快速陣列中之該排列順序是否位於一預設範圍之內。
- 如申請專利範圍第4項所述之方法,其中該預設範圍係根據一系統資源狀況決定。
- 一種可調整執行緒優先權的處理器系統,該處理器系統包含一工作佇列及一快速陣列,用以容納待處理之執行緒,該系統包含:一處理模組,用以指定一優先權給新產生之一執行緒,並將該執行緒置入該工作佇列中;一判斷模組,用以判斷該執行緒是否符合一第一預設條件;以及一排程模組,用以當該執行緒符合該第一預設條件,則執行以下機制:將該執行緒置入該快速陣列;判斷該執行緒於該快速陣列中之一排列順序是否符合一第二預設條件;以及若該執行緒於該快速陣列中之該排列順序符合該第二預設條件,則提升該執行緒之優先權。
- 如申請專利範圍第6項所述之處理器系統,其中該第一預設條件為該執行緒是否為一下載工作、一搜尋工作或一複製工作。
- 如申請專利範圍第6或7項所述之處理器系統,其中該第二預設條件為該執行緒是否係該快速陣列中之第一個執行緒。
- 如申請專利範圍第6或7項所述之處理器系統,其中該第二預設條件為該執行緒於該快速陣列中之該排列順序是否位於一預設範圍之內。
- 如申請專利範圍第9項所述之處理器系統,其中該預設範圍係根據一系統資源狀況決定。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW101125544A TW201405421A (zh) | 2012-07-16 | 2012-07-16 | 執行緒優先權調整方法及系統 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW101125544A TW201405421A (zh) | 2012-07-16 | 2012-07-16 | 執行緒優先權調整方法及系統 |
Publications (1)
Publication Number | Publication Date |
---|---|
TW201405421A true TW201405421A (zh) | 2014-02-01 |
Family
ID=50550043
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW101125544A TW201405421A (zh) | 2012-07-16 | 2012-07-16 | 執行緒優先權調整方法及系統 |
Country Status (1)
Country | Link |
---|---|
TW (1) | TW201405421A (zh) |
-
2012
- 2012-07-16 TW TW101125544A patent/TW201405421A/zh unknown
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105183539B (zh) | 动态任务安排方法 | |
US9047196B2 (en) | Usage aware NUMA process scheduling | |
US8700838B2 (en) | Allocating heaps in NUMA systems | |
US9733982B2 (en) | Information processing device and method for assigning task | |
KR101770191B1 (ko) | 자원 할당 방법 및 그 장치 | |
JP2007108944A (ja) | 半導体集積回路装置 | |
US9740618B2 (en) | Memory nest efficiency with cache demand generation | |
US8862786B2 (en) | Program execution with improved power efficiency | |
US20140053163A1 (en) | Thread processing method and thread processing system | |
JP2011141703A (ja) | 資源配置システム、資源配置方法、及び資源配置用プログラム | |
EP3200083B1 (en) | Resource scheduling method and related apparatus | |
JP5444900B2 (ja) | ジョブ実行管理システム、ジョブ実行管理方法、ジョブ実行管理プログラム | |
JP6156379B2 (ja) | スケジューリング装置、及び、スケジューリング方法 | |
KR20160061726A (ko) | 인터럽트 핸들링 방법 | |
US9092273B2 (en) | Multicore processor system, computer product, and control method | |
TW201405421A (zh) | 執行緒優先權調整方法及系統 | |
JP5605477B2 (ja) | マルチコアプロセッサシステム、制御プログラム、および制御方法 | |
JP7064367B2 (ja) | デッドロック回避方法、デッドロック回避装置 | |
JP7157542B2 (ja) | プリフェッチコントローラ | |
JP2008097418A (ja) | ロードバランサ及び負荷振り分け方法 | |
Papadaki et al. | Syntix: A Profiling Based Resource Estimator for CUDA Kernels | |
KR102055617B1 (ko) | 운영 체제에서 수행되는 프로세스의 가상 주소 공간을 확장하는 방법 및 시스템 | |
JP5915706B2 (ja) | 調停回路、制御方法、および制御プログラム | |
JP2019179408A (ja) | コード生成方法、コード生成装置 | |
JP2019179418A (ja) | スケジューリング方法、スケジューリング装置 |