TWI460659B - 用於降低競爭之鎖定窗 - Google Patents
用於降低競爭之鎖定窗 Download PDFInfo
- Publication number
- TWI460659B TWI460659B TW098122957A TW98122957A TWI460659B TW I460659 B TWI460659 B TW I460659B TW 098122957 A TW098122957 A TW 098122957A TW 98122957 A TW98122957 A TW 98122957A TW I460659 B TWI460659 B TW I460659B
- Authority
- TW
- Taiwan
- Prior art keywords
- thread
- time
- time window
- lock
- determining
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
- G06F9/526—Mutual exclusion algorithms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Debugging And Monitoring (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
本發明係在資料處理之領域中。更特定言之,本發明係關於用於向執行緒(thread)指派鎖定(lock)之方法及配置。
許多電腦處理程序由被稱為執行緒之小的半獨立區段組成。獨立性造成關於該等處理程序之正確操作的潛在問題。在不存在用以防止執行緒同時對資料操作之機制的情況下,執行緒之使用可導致不正確結果。舉例而言,一程式可處置銀行帳戶。該程式之一執行緒,Deposit,可處置存款,且另一執行緒,Withdrawal,可處置取款。Deposit可執行以下步驟:獲得上期餘額;使餘額增加存款之量;及儲存新餘額。
類似地,Withdrawal可執行以下步驟:獲得上期餘額;使餘額減少取款之量;及儲存新餘額。
假設John具有為$2,000之期初餘額、存款$500且取款$30。在無預防措施之情況下,Deposit執行緒及Withdrawal執行緒可操作如下:
在此實例中,藉由兩個執行緒對銀行帳戶之同時存取產生該帳戶之不正確餘額。實際上,存款交易未被計數。Withdrawal執行緒在John之帳戶藉由Deposit執行緒而增加之前獲得John之帳戶的餘額、計算新總額,且在Deposit執行緒已完成處理之後儲存該總額。
為了防止諸如以上錯誤之錯誤,電腦程式可允許一次僅一個執行緒在特定條件下存取資料(被稱為鎖定之原理)。藉由在以上實例中利用鎖定,Deposit執行緒可在獲得餘額之前獲取對銀行帳戶之鎖定。Deposit可接著完成對帳戶之處理,從而使餘額增加至$2,500。因為Deposit保持該鎖定,所以可能尚不准許Withdrawal存取John之帳戶以獲得上期餘額,直至Deposit已完成處理為止。在Deposit釋放該鎖定之後,Withdrawal獲取該鎖定。Withdrawal現可存取帳戶、在其操作之開始時獲得為$2,500之餘額,且繼續處理帳戶以產生為$2,470之正確結果。
執行緒可在等待獲得由另一執行緒所保持之鎖定的同時閒置。擁有一鎖定之一執行緒可能逾時,從而使該鎖定不能為其他執行緒所存取,直至該執行緒重新取得一時間配量(time slice)、完成其處理且釋放該鎖定為止。
以上所識別之問題在很大程度上係藉由將鎖定指派至執
行緒之方法及配置而解決。一實施例提供一種將鎖定指派至執行緒之方法。該方法可涉及在一執行緒之一時間配量之結束時設定一時間視窗。該方法亦可涉及基於判定該執行緒係在該時間視窗內及判定該執行緒不保持任何鎖定而禁止該執行緒在該時間視窗期間獲取一鎖定。其他實施例包括一種用以將鎖定指派至執行緒之裝置及一種用以將鎖定指派至執行緒之電腦程式產品。
在閱讀以下詳細描述及參看隨附圖式後,本發明之優點便將變得顯而易見,在隨附圖式中,相似參考可指示類似元件。
以下為隨附圖式中所描繪之本發明之實施例的詳細描述。該等實施例係以清楚地傳達本發明之細節。然而,所提供之細節的量不意欲限制實施例之預期變化;而相反地,本發明將涵蓋屬於如由附加申請專利範圍所界定的本發明之精神及範疇的所有修改、均等物及替代物。以下詳細描述經設計以使該等實施例對於一般熟習此項技術者為明顯的。
一般而言,預期基於時間視窗而將鎖定指派至執行緒之方法及配置。實施例包括用以在一執行緒之一時間配量之結束時設定一時間視窗之變換、程式碼、狀態機或其他邏輯。實施例亦可涉及禁止該執行緒在該時間視窗期間獲取一鎖定,其限制條件為該執行緒係在該時間視窗內且該執行緒不保持任何鎖定。
在另外實施例中,當開始一執行緒時,一執行緒程式庫可登錄一記憶體區域以儲存該時間視窗之開始時間。當一排程器對任務排程時,核心可將該時間視窗之開始傳達至該執行緒程式庫。在一些狀況下,該開始可為在時間配量期滿時間之前的某一小的固定時間量。只要在該執行緒之執行期間釋放一鎖定,該執行緒程式庫便可檢查該鎖定是否為由該執行緒所保持之唯一鎖定。若為如此,則該執行緒程式庫可接著檢查該執行緒是否晚於該時間視窗之開始。若為如此,則該執行緒可讓步,使得可對其他執行緒排程。
儘管現將在下文參考特定電路或邏輯組態來描述特定實施例,但熟習此項技術者應認識到,本發明之實施例可利用其他大體上等效組態進行有利地實施。
圖1描繪根據本發明之實施例的能夠將鎖定指派至執行緒之電腦100之實施例,電腦100包括藉由系統匯流排185而連接之隨機存取記憶體(RAM)105、處理器130或CPU、非揮發性記憶體140、通信配接器150及輸入/輸出(I/O)介面配接器160。儲存於RAM 105中的係作業系統110及應用程式125。作業系統110為可使系統資源(包括記憶體存取、對輸入/輸出資源之存取,及對處理器之存取)可用於其他程式之系統軟體層。作業系統110亦可控制用於對電腦資源之存取的分配及授權。作業系統執行低層級的基礎任務,諸如,辨識來自鍵盤之輸入、將輸出發送至顯示螢幕、將檔案及目錄記錄於磁碟機上,及控制諸如碟機及印
表機之周邊器件。作業系統亦負責安全性,從而確保未經授權之使用者不存取系統。在將鎖定指派至執行緒方面有用之作業系統包括UNIXTM、LinuxTM、SolarisTM、Microsoft Windows XPTM及VistaTM、ATXTM、IBM之i5/OSTM,及熟習此項技術者將想到的其他作業系統。作業系統110包括核心115及執行緒程式庫120。
核心115可包含作業系統110之常駐於記憶體中且提供基礎服務的基本部分。核心115可為作業系統110之最接近於電腦100之硬體層級的組件。核心115可直接啟動該硬體或可與驅動該硬體之另一軟體層建立介面連接。在圖1之實施例中,核心115可藉由將時間配量指派至執行緒而對該等執行緒排程。核心115亦可提供用於使系統資源可用於執行緒之功能。在一些實施例中,核心115可藉由向核心執行緒提供資源及在處理器上對該等核心執行緒排程來支援該等核心執行緒。
執行緒程式庫120可包含用以支援使用者執行緒之常式。使用者執行緒為藉由使用者應用程式而建立之執行緒。該應用程式(例如)可以支援執行緒之建立的語言(諸如,Java、C或C++)進行程式設計。執行緒為可執行電腦程式指令之單獨流。執行緒可擁有以下特性:˙其在一處理程序內具有其自己的獨立控制流˙其在一處理程序內與其他執行緒共用資源˙其可在處理程序終止之前自願地終止。
執行緒可由處理程序(獨立執行之程式)產生。一處理程
序之資源可包括位址空間、共用程式庫、處理器暫存器、程式碼片段及偏移暫存器、資料片段及偏移暫存器、堆疊片段及偏移暫存器、旗標暫存器、指令指標暫存器、程式計數器,及為軟體程式之執行所需要的其他資源。可將處理程序進一步組織為執行緒。多個使用者執行緒可存在於一處理程序內且使用此等處理程序資源,該等使用者執行緒仍能夠由作業系統排程且在一處理程序內作為獨立實體而執行。一使用者執行緒可擁有一獨立控制流且可經排程,因為其維持其自己的資源。儘管一處理程序之執行緒可擁有單獨暫存器及堆疊,但該等執行緒可共用同一記憶體空間且可能夠讀取及寫入至同一記憶體位址。
執行緒程式庫120可管理執行緒之執行,其包括將鎖定指派至使用者執行緒。在許多實施例中,執行緒程式庫120可藉由將使用者執行緒映射至核心執行緒而將資源提供至使用者執行緒。對於將鎖定指派至執行緒有用之執行緒程式庫包括POSIX P執行緒、Win32執行緒及Java執行緒。
應用程式125可包含用於執行電腦應用程式之電腦程式指令。藉由執行該程式而建立之處理程序可建立使用者執行緒128。執行緒程式庫120可監督使用者執行緒128之執行,且可將使用者執行緒128映射至核心115之執行緒。
圖1之RAM 105中展示作業系統110及應用程式125(軟體之組件),但該軟體之許多組件亦可儲存於非揮發性記憶體140中。另外,儘管將該軟體之該等組件展示為同時存在於RAM中,但在一些其他實施例中,在任何給定時間僅
可能存在RAM 105之該等組件中之一些。
非揮發性電腦記憶體140可實施為硬碟機142、光碟機144、電子可抹除可程式化唯讀記憶體空間(EEPROM或快閃記憶體)146、RAM驅動器(未圖示),或熟習此項技術者將想到的任何其他種類之電腦記憶體。通信配接器150可實施資料通信之硬體層級,經由通信配接器150,一電腦直接將資料通信發送至其他電腦(諸如,其他電腦155)或經由一網路而將資料通信發送至其他電腦(諸如,其他電腦155)。該等資料通信可經由RS-132連接件、經由諸如USB之外部匯流排、經由諸如IP網路之資料通信網路及以熟習此項技術者將想到的其他方式而連續地進行。通信配接器之實例包括用於有線撥號通信之數據機、用於有線網路通信之乙太網路(IEEE 802.3)配接器、用於無線網路通信之802.11a/b/g/n配接器,及行動寬頻卡。
I/O介面配接器160經由(例如)用於控制至諸如顯示器件165之顯示器件及音訊輸出器件170之輸出以及來自使用者輸入器件175及音訊輸入器件180之使用者輸入的軟體驅動器及電腦硬體而實施使用者導向式I/O。使用者輸入器件175可包括鍵盤及滑鼠兩者。一些實施例可包括其他使用者輸入器件,諸如,語音解譯器、條碼掃描器、文字掃描器、輸入板(tablet)、觸控螢幕,及/或其他形式之使用者輸入器件。音訊輸出170可包括揚聲器或頭戴式耳機,且音訊輸入器件180可包括用以捕獲聲音之麥克風或其他器件。
圖1所說明之電腦及組件係用於闡釋,而不用於限制。
在其他實施例中,嵌埋式系統、PDA、蜂巢式電話、BlackBerries®及其他器件可將鎖定指派至執行緒。在其他實施例中,用以將鎖定指派至執行緒之模組可以硬體、韌體或以狀態機進行實施,或可形成作業系統之組件。在若干實施例中,一計算器件可含有兩個或兩個以上處理器。在各種實施例中,一計算器件可使用點對點互連件來連接處理器或連接該計算系統之一處理器與另一元件。
轉至圖2,說明用以將鎖定指派至執行緒之任務執行模組200之實施例。鎖定為用以藉由同時對資料操作來防止兩個或兩個以上執行緒使資料惡化之構造。鎖定係有用的,因為單獨執行緒可能夠讀取及寫入至同一記憶體位址。將用以防止資料惡化之機制稱為「互斥」。在互斥中,將程式碼之部分(在其中讀取或修改共用資料)定義為「臨界區段」,且實施某一機制以保證兩個執行緒將永不同時在用於同一共用資料之臨界區段中。在本說明書中將保證兩個執行緒將永不同時在用於同一共用資料之臨界區段中的機制稱為「鎖定」。鎖定之實例包括UNIX旗語、以C++之監視器類別,及以Java之同步方法。據說請求對用於共用資料之臨界區段之獨佔式存取的執行緒請求一鎖定。據說具有對用於共用資料之臨界區段之獨佔式存取的執行緒保持該鎖定。請求一鎖定通常係利用一系統呼叫進行實施,若該鎖定不立即可用,則該系統呼叫使請求執行緒處於等待狀態,直至該鎖定變得可用為止。在一些狀況下,等待時間可能會增加,因為保持一鎖定之執行緒可能
會逾時。等待執行緒可能不會獲取該鎖定,直至保持該鎖定之執行緒重新取得一時間配量且完成其涉及該鎖定之臨界區段為止。
任務執行模組200包括核心205及執行緒程式庫225。核心205包括執行緒排程器210。執行緒排程器210可對執行緒排程。在一些實施例中,核心205可建立核心執行緒,且執行緒排程器210可對該等核心執行緒排程。在另外實施例中,可藉由將使用者執行緒映射至核心執行緒而對該等使用者執行緒排程。
執行緒排程器210包括時間配量判定器215及時間視窗判定器220。時間配量判定器215可判定執行緒之時間配量。在一種形式之排程中,向一執行緒給定一時間配量或時間量子以在一處理器上執行。當該時間配量期滿時,使該執行緒進入一等待狀態,直至對其下一時間配量排程為止。在一些實施例中,可向執行緒指派優先權。可向具有較高優先權之執行緒給定較大時間配量。在其他實施例中,可將等待執行緒置放於佇列中。最初可將執行緒指派至具有較小時間配量之佇列。若該執行緒在若干時間配量之後不能完成其任務,則可將該執行緒指派至具有較高時間配量之佇列。
時間視窗判定器220可判定在一執行緒之時間配量完結時結束的時間視窗,在該時間視窗中禁止該執行緒獲取一鎖定,其限制條件為該執行緒不保持任何鎖定。在一些實施例中,該時間視窗可包含該執行緒之時間配量之一固定
百分比,諸如,10%。舉例而言,若向執行緒分配為100ms之時間配量,則時間視窗判定器可指派具有該時間配量之最後10ms的視窗。在少數實施例中,該時間視窗可為一固定量,諸如,8ms。在一些實施例中,該時間視窗之判定可為可調諧的。系統管理者可能夠設定判定時間視窗持續時間之參數。在若干實施例中,諸如鎖定監督器235之模組可監視針對鎖定之等待時間,且可在針對鎖定之增加等待之條件下增加時間視窗。相反地,鎖定監督器235可在針對鎖定之減少等待之條件下減少時間視窗。在一些另外實施例中,可在一初始週期期間發生調諧。一旦經調諧,時間視窗之大小便可保持固定。在其他另外實施例中,可視條件而頻繁地更新時間視窗之大小。
執行緒程式庫225可含有用以支援使用者執行緒之執行的常式。執行緒程式庫225包括執行緒監督器230及鎖定監督器235。執行緒監督器230可監督資源至使用者執行緒之建立、刪除及指派。執行緒監督器230可藉由將使用者執行緒映射至核心執行緒來執行其功能之一部分。此等使用者執行緒能夠存取由核心205提供至該等核心執行緒之資源。執行緒監督器230包括時間配量監視器240。時間配量監督器240可管理執行緒之時間配量。時間配量監督器240可自核心205接收針對一執行緒之一時間配量的調配。當該執行緒已完成其時間配量時,時間配量監督器240可使該執行緒處於一等待狀態。此外,在一些實施例中,時間配量監督器240可使一執行緒逾時以在該執行緒不保持一
鎖定時防止該執行緒在一時間配量期滿時在其時間視窗期間獲取一鎖定。
鎖定監督器235可管理至執行緒之鎖定。鎖定監督器235包括時間視窗監視器245及鎖定保持監視器250。時間視窗監視器245可監視一執行執行緒之在該執行緒之時間配量之結束時的時間視窗。時間視窗監視器245可保留儲存空間以保持該時間視窗之開始或其他資訊(可自其計算該時間視窗之開始)。在許多實施例中,儲存空間可為諸如圖1之RAM 105的RAM中之記憶體。在其他實施例中,儲存空間可為暫存器中之空間。當一執行緒開始執行時,時間視窗監視器245可將開始時間或其他資訊儲存於經登錄之空間中。鎖定保持監視器250可監視由執行緒所保持之鎖定的數目。
鎖定監督器235可基於由時間視窗監視器245及鎖定保持監視器250所提供之資料而進行關於是否將鎖定授與至執行緒之決定。鎖定監督器235可在鎖定不保持任何執行緒時禁止執行緒在其時間視窗內獲取該等鎖定。在一些實施例中,鎖定監督器235可在一執行緒釋放一鎖定時檢查該執行緒。若該執行緒係在其時間視窗內且不保持任何鎖定,則鎖定監督器235可將一訊息發送至執行緒監督器230以使該執行緒逾時,以防止該執行緒在其時間配量之剩餘部分中獲得一鎖定。在其他實施例中,當一執行緒不保持任何鎖定時,鎖定監督器235可拒絕由該執行緒在其時間視窗內所進行的針對一鎖定之請求。
圖2係用於說明而不用於限制。一提前鍵入(type-ahead)模組之一些實施例可省略所展示之特徵中的一些,且許多實施例可包括額外特徵。類似地,在一任務執行模組之其他實施例中,功能性在模組之間的劃分可不同於圖2所示之劃分。可在一模組中組合若干模組之功能,或可在若干模組之間分裂一模組之功能。
圖3描繪用以將鎖定授與至執行緒之方法之實施例的流程圖。該方法可由諸如圖2之任務執行模組200之裝置執行。圖3之流程圖300始於藉由一執行緒程式庫來登錄一RAM區域以儲存一時間視窗之開始(元素305)。該方法包括在一執行緒之一時間配量之結束時設定一時間視窗(元素310)。該方法亦包括對該執行緒排程(元素315)。該執行緒之排程可判定該執行緒何時在一處理器上獲得其下一時間配量。自該時間配量之排程結束及該時間視窗之大小,可判定該時間視窗之開始。核心可將該時間視窗之開始或其他資訊(可自其判定該開始)傳達至該執行緒程式庫(元素320)。執行緒程式庫可將開始時間或其他資訊儲存於經登錄用於儲存該開始資訊之RAM區域中(元素325)。
可使用關於時間視窗之資訊以防止執行緒在其時間視窗期間獲得一鎖定,其限制條件為該執行緒不保持其他鎖定(元素335)。在許多實施例中,防止該執行緒獲得該鎖定可包括判定該執行緒已釋放一鎖定(元素340)。諸如圖2之鎖定監督器235之模組可監視由執行緒對鎖定之獲取及釋放。該方法可包括判定該執行緒係在該時間視窗內(元素
345)。該方法亦可包括判定該執行緒不保持其他鎖定(元素350)。基於以上三個判定,可接著使該執行緒在該執行緒之時間配量的剩餘部分中逾時(元素355)。若存在待監視之其他執行緒,則可重複元素310至335(元素360)。否則,圖3之方法可結束。
圖3之方法係用於說明而不用於限制。在其他實施例中,可以不同次序來執行元素,可執行額外元素,或可刪除一些元素。在一些實施例中,可使用暫存器以儲存一執行緒之時間視窗之開始。在少數實施例中,可准許一執行緒在其時間視窗期間釋放其最後鎖定之後繼續執行。實情為,在一些另外實施例中,可檢查執行緒之鎖定請求。若執行緒在其時間視窗期間進行一請求且該執行緒不保持任何鎖定,則可拒絕該請求。在一些實施例中,一執行緒監督器可檢查一執行緒在其時間視窗之開始時是否保持任何鎖定。若該執行緒不保持鎖定,則可使該執行緒逾時。
圖3之一些實施例可藉由減少針對保持者已逾時之鎖定之等待時間來加快諸如圖1之應用程式125的應用程式之執行時間。此等待時間可能相當大。希望存取由該鎖定所保護之資料的其他執行緒可能必須等待,直至該執行緒已重新取得一處理器且完成其涉及該鎖定之處理為止。該執行緒僅可在若干其他執行緒完成其時間配量之後重新取得一時間配量。
在此等實施例中,防止執行緒在時間配量之結束時在其時間視窗期間取得鎖定可減少該等執行緒逾時保持該等鎖
定之機會。此等實施例對於在使用鎖定之後重複地重新獲取該等鎖定的執行緒可特別有效。舉例而言,諸如[先前技術]部分中所提及之執行緒的Withdrawal執行緒可重複地獲取對一帳戶之鎖定、更新該帳戶且釋放該鎖定。當此等執行緒在其時間視窗期間釋放一鎖定時,該等執行緒可在不久以後獲取另一鎖定且不能夠在逾時之前完成處理。依據圖3之方法,此等執行緒將不能夠獲取該等鎖定且將不延遲其他執行緒。雖然本發明之一些實施例可降低鎖定競爭,但此結果並非對本發明之限制。本發明之其他實施例可出於熟習此項技術者可想到的其他目的而使用用於鎖定之時間視窗。
圖4為描繪元素335之詳細描述之時間圖400的實例。圖4之時間圖包括描繪兩個執行執行緒(執行緒A及執行緒B)之時間線402。在圖4之實例中,每一執行緒之時間配量在時間405開始,每一執行緒之時間視窗在時間415開始,且時間配量之規則排程之結束在時間425發生。在時間410,執行緒B釋放一鎖定(元素445)。該釋放係在執行緒B之時間視窗之開始415之前。因此,在此狀況下,執行緒B在其時間配量之剩餘部分中繼續執行。與此對比,執行緒A在時間420(在執行緒A之時間視窗內)釋放一鎖定(元素440)。在圖4之實例中,執行緒A在其釋放該鎖定之後可能不保持任何鎖定。接著使執行緒A時間配量逾時。該執行緒在時間配量期間之執行在時間420結束。
轉至圖5A及圖5B,描繪在本發明之一實施例中用以說
明等待鎖定所花費之時間之假想減少之時間線的實例。圖5A及圖5B檢查在不同操作環境下之相同執行緒。圖5A可說明執行緒在一不使用時間視窗來防止執行緒獲取鎖定之環境下的操作,且圖5B可說明根據本發明之一實施例的指派鎖定之方法。圖5A及圖5B包括描繪與五個執行緒(T1、T2、T3、T4及T5)之時間配量有關之事件之時序的時間線(501、520及552)。
在圖5A中,時間503對應於時間553(圖5B中的執行緒1之時間視窗之開始)。然而,在圖5A中,不使用時間視窗。在時間506,允許執行緒T1獲取一鎖定。在圖5A之實例中,執行緒T1不保持其他鎖定。T1之時間配量在T1仍保持該鎖定的情況下期滿。在時間509、512、515及518,執行緒T2、T3、T4及T5請求該鎖定,但該等請求被拒絕,因為執行緒T1仍保持該鎖定。
圖5A之時間線520為時間線501之延續。時間線501始於執行緒T1在一時間配量中再次在作用中。在時間521,T1完成其涉及由一鎖定所保護之資料的處理且釋放該鎖定。隨後,執行緒T2、T3、T4及T5變為在作用中,從而獲取時間配量,且在時間527、530、533及536取得對鎖定之擁有。每一執行緒完成其關於由該鎖定所保護之資料的處理,且在其時間配量期間分別在時間528、531、534及537釋放該鎖定。在圖5A之實例中,執行緒T1在其時間配量終止之前不久對該鎖定之獲取使執行緒T2、T3、T4及T5延遲。該等執行緒不能執行其任務,直至執行緒T1取得一
時間配量且完成其處理為止。
在圖5B中,時間線552類似於時間線501而開始。執行緒T1開始一時間配量且其時間視窗在時間553開始。在對應於圖5A之時間506的時間556,不保持任何鎖定之執行緒T1請求該鎖定。然而,在圖5B之實例中,該請求被拒絕,且T1不保持該鎖定。結果,執行緒T2、T3、T4及T5分別能夠在時間559、562、565及568獲取該鎖定。此等時間對應於圖5A之時間線501的時間509、512、515及518。每一執行緒在該時間配量內完成其對由該鎖定所保護之資料之處理,且在該時間配量期間在時間560、563、566及569釋放該鎖定。結果,在圖5B中,僅一執行緒(T1)經歷處理延遲,因為該執行緒不擁有一所需鎖定。另外,該延遲可具有短持續時間。如在圖5A中所見,在該等情況下,執行緒T1可能尚不能夠在當前時間配量期間完成其涉及該鎖定之處理,且可能必須等待,直至其下一時間配量為止。
熟習此項技術者應瞭解,本發明可體現為系統、方法或電腦程式產品。因此,本發明可採用完全硬體實施例、完全軟體實施例(包括韌體、常駐軟體、微碼,等等)或組合軟體態樣與硬體態樣之實施例之形式,該等實施例可在本文中通常均被稱為「電路」、「模組」或「系統」。此外,本發明可採用電腦程式產品之形式,該電腦程式產品體現於具有電腦可用程式碼之任何有形表達媒體中,該電腦可用程式碼體現於該媒體中。
可利用一或多個電腦可用或電腦可讀媒體之任何組合。
舉例而言,電腦可用或電腦可讀媒體可為(但不限於)電子、磁性、光學、電磁、紅外線或半導體系統、裝置、器件或傳播媒體。電腦可讀媒體之更特定實例(非詳盡清單)將包括以下各者:具有一或多個導線之電連接件、攜帶型電腦磁片、硬碟、隨機存取記憶體(RAM)、唯讀記憶體(ROM)、可抹除可程式化唯讀記憶體(EPROM或快閃記憶體)、光纖、攜帶型緊密光碟唯讀記憶體(CDROM)、光學儲存器件、傳輸媒體(諸如,支援網際網路或企業內部網路之傳輸媒體),或磁性儲存器件。應注意,電腦可用或電腦可讀媒體甚至可為列印有程式之紙張或另一適合媒體,因為程式可經由(例如)對紙張或其他媒體之光學掃描而以電子方式被捕獲,接著被編譯、解譯或另外在必要時以一適合方式被處理,且接著被儲存於電腦記憶體中。在此文件之情形中,電腦可用或電腦可讀媒體可為可含有、儲存、傳達、傳播或傳送由指令執行系統、裝置或器件所使用或與其結合而使用之程式的任何媒體。電腦可用媒體可包括在基頻中或作為載波之一部分的傳播資料信號(其中以此體現電腦可用程式碼)。電腦可用程式碼可使用包括(但不限於)無線、有線、光纖電纜、RF等等之任何適當媒體進行傳輸。
用於進行本發明之操作的電腦程式碼可以一或多種程式設計語言之任何組合進行寫入,包括物件導向式程式設計語言(諸如,Java、Smalltalk、C++或其類似者)及習知程序性程式設計語言(諸如,「C」程式設計語言或類似程式
設計語言)。程式碼可完全在使用者之電腦上執行、部分地在使用者之電腦上執行、作為獨立軟體套件而執行、部分地在使用者之電腦上且部分地在遠端電腦上執行或完全在遠端電腦或伺服器上執行。在後種情境中,遠端電腦可經由任何類型之網路(包括區域網路(LAN)或廣域網路(WAN))而連接至使用者之電腦,或可對外部電腦進行連接(例如,經由使用網際網路服務提供者之網際網路)。
以上參考根據本發明之實施例之方法、裝置(系統)及電腦程式產品之流程圖說明及/或方塊圖而描述本發明。應理解,可藉由電腦程式指令來實施流程圖說明及/或方塊圖中之每一區塊及流程圖說明及/或方塊圖中之區塊之組合。可將此等電腦程式指令提供至通用電腦、專用電腦或其他可程式化資料處理裝置之處理器以產生一機器,使得經由電腦或其他可程式化資料處理裝置之處理器而執行的指令建立用於實施該或該等流程圖及/或方塊圖區塊中所規定之功能/動作的構件。
此等電腦程式指令亦可儲存於電腦可讀媒體中,電腦可讀媒體可指導電腦或其他可程式化資料處理裝置以一特定方式而起作用,使得儲存於電腦可讀媒體中之指令產生一製品,該製品包括實施該或該等流程圖及/或方塊圖區塊中所規定之功能/動作的指令構件。
電腦程式指令亦可載入至電腦或其他可程式化資料處理裝置上以使一系列操作步驟在電腦或其他可程式化裝置上執行以產生一電腦實施處理程序,使得在電腦或其他可程
式化裝置上執行之指令提供用於實施該或該等流程圖及/或方塊圖區塊中所規定之功能/動作的處理程序。
諸圖中之流程圖及方塊圖說明根據本發明之各種實施例的系統、方法及電腦程式產品之可能實施的架構、功能性及操作。就此而言,流程圖或方塊圖中之每一區塊可表示程式碼之一模組、片段或部分,其包含用於實施規定邏輯功能之一或多個可執行指令。亦應注意,在一些替代實施中,區塊中所闡述之功能可不以諸圖中所闡述之次序發生。舉例而言,視所涉及之功能性而定,連續地展示之兩個區塊事實上可大體上同時被執行,或該等區塊有時可以相反次序被執行。亦應注意,方塊圖及/或流程圖說明中之每一區塊及方塊圖及/或流程圖說明中之區塊之組合可藉由執行規定功能或動作的基於專用硬體之系統或專用硬體與電腦指令之組合進行實施。
適用於儲存及/或執行程式碼之資料處理系統將包括直接耦接至記憶體元件或經由系統匯流排而間接耦接至記憶體元件之至少一處理器。記憶體元件可包括在程式碼之實際執行期間所使用之本端記憶體、大量儲存器及快取記憶體,快取記憶體提供對至少某程式碼之暫時儲存,以便減少在執行期間必須自大量儲存器擷取程式碼的次數。
輸入/輸出或I/O器件(其包括(但不限於)鍵盤、顯示器、指標器件,等等)可直接耦接至或經由介入I/O控制器而耦接至系統。
網路配接器亦可耦接至系統以使資料處理系統能夠經由
介入之私用或公眾網路而耦接至其他資料處理系統或遠端印表機或儲存器件。數據機、電纜數據機及乙太網路卡僅為當前可用類型之網路配接器中的少數幾種。
對於熟習具有本揭示案之益處之技術者而言將顯而易見的係,本發明預期用於將鎖定指派至執行緒之方法及配置。應理解,詳細描述及圖式中所展示及描述的本發明之形式僅僅係作為實例而被採用。意欲將以下申請專利範圍廣泛地解釋為包含所揭示之實例實施例的所有變化。
雖然已針對一些實施例而詳細地描述本發明及其優點中之一些,但應理解,可在不脫離如由附加申請專利範圍所界定的本發明之精神及範疇的情況下在本文中進行各種改變、取代及更改。雖然本發明之一實施例可達成多個目標,但並非屬於所附申請專利範圍之範疇的每一實施例均將達成每一目標。此外,本申請案之範疇不意欲限於本說明書中所描述之處理程序、機器、製造品、物質組成、構件、方法及步驟之特定實施例。一般熟習此項技術者應易於自本發明之揭示瞭解,根據本發明,可利用目前存在或以後待開發之處理程序、機器、製造品、物質組成、構件、方法或步驟,其執行與本文中所描述之相應實施例大體上相同的功能或達成與本文中所描述之相應實施例大體上相同的結果。因此,附加申請專利範圍意欲在其範疇內包括該等處理程序、機器、製造品、物質組成、構件、方法或步驟。
100‧‧‧電腦
105‧‧‧隨機存取記憶體(RAM)
110‧‧‧作業系統
115‧‧‧核心
120‧‧‧執行緒程式庫
125‧‧‧應用程式
128‧‧‧使用者執行緒
130‧‧‧處理器
140‧‧‧非揮發性記憶體
142‧‧‧硬碟機
144‧‧‧光碟機
146‧‧‧電子可抹除可程式化唯讀記憶體空間
150‧‧‧通信配接器
155‧‧‧其他電腦
160‧‧‧輸入/輸出(I/O)介面配接器
165‧‧‧顯示器件
170‧‧‧音訊輸出器件
175‧‧‧使用者輸入器件
180‧‧‧音訊輸入器件
185‧‧‧系統匯流排
200‧‧‧任務執行模組
205‧‧‧核心
210‧‧‧執行緒排程器
215‧‧‧時間配量判定器
220‧‧‧時間視窗判定器
225‧‧‧執行緒程式庫
230‧‧‧執行緒監督器
235‧‧‧鎖定監督器
240‧‧‧時間配量監視器/時間配量監督器
245‧‧‧時間視窗監視器
250‧‧‧鎖定保持監視器
T1‧‧‧執行緒
T2‧‧‧執行緒
T3‧‧‧執行緒
T4‧‧‧執行緒
T5‧‧‧執行緒
圖1描繪能夠基於時間視窗而將鎖定指派至執行緒之電腦;圖2描繪用以基於時間視窗而將鎖定指派至執行緒之裝置;圖3陳述用以基於時間視窗而將鎖定指派至執行緒之方法的流程圖;圖4陳述說明基於時間視窗而將鎖定指派至執行緒之時間線;圖5A陳述說明將鎖定指派至執行緒之時間線;且圖5B陳述說明基於時間視窗而將鎖定指派至執行緒之額外時間線。
100‧‧‧電腦
105‧‧‧隨機存取記憶體(RAM)
110‧‧‧作業系統
115‧‧‧核心
120‧‧‧執行緒程式庫
125‧‧‧應用程式
128‧‧‧使用者執行緒
130‧‧‧處理器
140‧‧‧非揮發性記憶體
142‧‧‧硬碟機
144‧‧‧光碟機
146‧‧‧電子可抹除可程式化唯讀記憶體空間
150‧‧‧通信配接器
155‧‧‧其他電腦
160‧‧‧輸入/輸出(I/O)介面配接器
165‧‧‧顯示器件
170‧‧‧音訊輸出器件
175‧‧‧使用者輸入器件
180‧‧‧音訊輸入器件
185‧‧‧系統匯流排
Claims (18)
- 一種將鎖定指派至執行緒之方法,該方法包含:在一非擱置之執行緒之一時間配量之結束時設定一時間視窗,該時間配量包括一排程結束且該時間視窗包括開始於該時間配量之該排程結束前之一段時間;判定該執行緒已在該時間視窗內請求一鎖定;基於判定該執行緒係在該時間視窗內及判定該執行緒不保持任何鎖定而禁止該執行緒在該時間視窗期間獲取一鎖定;及使該執行緒在該執行緒之該時間配量之剩餘部分中逾時。
- 如請求項1之方法,其進一步包含:登錄一記憶體區域以儲存該時間視窗之開始;及基於該執行緒之排程而將該時間視窗之該開始儲存於該記憶體區域中。
- 如請求項2之方法,其中分配為分配RAM中之一記憶體區域。
- 如請求項2之方法,其中該分配為分配一暫存器中之一記憶體區域。
- 如請求項1之方法,其中該設定包含調諧該時間視窗之持續時間。
- 一種將鎖定指派至執行緒之方法,該方法包含:在一非擱置之執行緒之一時間配量之結束時設定一時間視窗,該時間配量包括一排程結束且該時間視窗包括一 開始時間,其中至少部分基於該時間視窗之大小及該時間配量之該排程結束而判定該時間視窗之該開始時間;判定該執行緒已在該時間視窗內釋放一鎖定;判定該執行緒不保持其他鎖定;防止該執行緒在該時間視窗期間獲取一鎖定;基於判定該執行緒係在該時間視窗內、判定該執行緒已在該時間視窗內請求一鎖定、及判定該執行緒不保持任何鎖定而使該執行緒在該執行緒之該時間配量之剩餘部分中逾時。
- 如請求項6之方法,其中:該方法進一步包含:藉由一執行緒程式庫來登錄一記憶體區域以儲存該時間視窗之開始;對該執行緒排程;藉由一核心而將該時間視窗之該開始傳達至該執行緒程式庫;及將該時間視窗之該開始儲存於該記憶體區域中;且判定該執行緒已在該時間視窗內釋放一鎖定及判定該執行緒不保持其他鎖定包含藉由該執行緒程式庫來判定該執行緒已在該時間視窗內釋放一鎖定及藉由該執行緒程式庫來判定該執行緒不保持其他鎖定。
- 如請求項6之方法,其中該設定包含選擇一百分比及將該執行緒之該時間配量乘以該百分比。
- 一種用以將鎖定指派至執行緒之裝置,該裝置包含:一 浮動應用程式,該浮動應用程式包含:一時間視窗判定器,其係用以在一非擱置之執行緒之一時間配量之結束時設定一時間視窗,該時間配量包括一排程結束且該時間視窗包括開始於該時間配量之該排程結束前之一段時間;及一鎖定監督器,其係用以基於判定該執行緒係在該時間視窗內、判定該執行緒不保持任何鎖定、及判定該執行緒已在該時間視窗內請求一鎖定而禁止該執行緒在該時間視窗期間獲取一鎖定且係用以使該執行緒在該執行緒之該時間配量之剩餘部分中逾時。
- 如請求項9之裝置,其中:該裝置進一步包含一執行緒排程器,且該裝置係用以登錄一記憶體區域以儲存該時間視窗之開始,且用以基於該執行緒之排程而將該時間視窗之該開始儲存於該記憶體區域中。
- 如請求項9之裝置,其中:該鎖定監督器係用以判定該執行緒已在該時間視窗內釋放一鎖定及判定該執行緒不保持其他鎖定;且該裝置係用以使該執行緒在該執行緒之該時間配量之剩餘部分中逾時。
- 一種用於將鎖定指派至執行緒之電腦程式產品,該電腦程式包含一電腦可用媒體,該電腦可用媒體具有以此體現之一電腦可用程式碼,該電腦可用程式碼包含:經組態以在一非擱置之執行緒之一時間配量之結束時 設定一時間視窗的電腦可用程式碼,該時間配量包括一排程結束且該時間視窗包括開始於該時間配量之該排程結束前之一段時間;及經組態以基於判定該執行緒係在該時間視窗內、判定該執行緒不保持任何鎖定、及判定該執行緒已在該時間視窗內請求一鎖定而禁止該執行緒在該時間視窗期間獲取一鎖定且使該執行緒在該執行緒之該時間配量之剩餘部分中逾時的電腦可用程式碼。
- 如請求項12之電腦程式產品,該電腦可用程式碼進一步包含:經組態以登錄一記憶體區域以儲存該時間視窗之開始的電腦可用程式碼;及經組態以基於該執行緒之排程而將該時間視窗之該開始儲存於該記憶體區域中的電腦可用程式碼。
- 如請求項12之電腦程式產品,其中經組態以分配的電腦可用程式碼包含經組態以分配RAM中之一記憶體區域的電腦可用程式碼。
- 如請求項12之電腦程式產品,其中該經組態以分配的電腦可用程式碼包含經組態以分配一暫存器中之一記憶體區域的電腦可用程式碼。
- 如請求項12之電腦程式產品,其中該經組態以禁止及判定該執行緒不保持任何鎖定的電腦可用程式碼包含:經組態以判定該執行緒已在該時間視窗內釋放一鎖定的電腦可用程式碼。
- 如請求項12之電腦程式產品,其中該經組態以設定一時間視窗的電腦可用程式碼包含經組態以選擇一百分比及將該時間配量乘以該百分比的電腦可用程式碼。
- 如請求項12之電腦程式產品,其中該經組態以設定一時間視窗的電腦可用程式碼包含經組態以調諧該時間視窗之持續時間的電腦可用程式碼。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/170,101 US8701111B2 (en) | 2008-07-09 | 2008-07-09 | Lock windows for reducing contention |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201015440A TW201015440A (en) | 2010-04-16 |
TWI460659B true TWI460659B (zh) | 2014-11-11 |
Family
ID=41506241
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW098122957A TWI460659B (zh) | 2008-07-09 | 2009-07-07 | 用於降低競爭之鎖定窗 |
Country Status (4)
Country | Link |
---|---|
US (1) | US8701111B2 (zh) |
JP (1) | JP5356925B2 (zh) |
KR (1) | KR20100006530A (zh) |
TW (1) | TWI460659B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8510281B2 (en) * | 2008-12-18 | 2013-08-13 | Sap Ag | Ultimate locking mechanism |
WO2012070727A1 (ko) * | 2010-11-23 | 2012-05-31 | 경상대학교 산학협력단 | Arinc-653 기반 항공기용 컴퓨터 시스템에서 멀티 스레드 프로그램의 경합 치유 방법 및 시스템 |
US20130007322A1 (en) * | 2011-06-29 | 2013-01-03 | International Business Machines Corporation | Hardware Enabled Lock Mediation |
US9424103B2 (en) * | 2014-09-30 | 2016-08-23 | Hong Kong Applied Science and Technology Research Institute Company Limited | Adaptive lock for a computing system having multiple runtime environments and multiple processing units |
US10176014B2 (en) * | 2015-07-27 | 2019-01-08 | Futurewei Technologies, Inc. | System and method for multithreaded processing |
US10417057B2 (en) * | 2017-01-30 | 2019-09-17 | Oracle International Corporation | Mutex profiling based on waiting analytics |
US10331498B1 (en) * | 2017-04-26 | 2019-06-25 | EMC IP Holding Company LLC | ColoredLock synchronization object, allowing flow specific policy of lock canceling |
US11126474B1 (en) * | 2017-06-14 | 2021-09-21 | Amazon Technologies, Inc. | Reducing resource lock time for a virtual processing unit |
US10592281B1 (en) | 2017-09-28 | 2020-03-17 | Amazon Technologies, Inc. | Wait optimizer for recording an order of first entry into a wait mode by a virtual central processing unit |
TWI768649B (zh) * | 2021-01-08 | 2022-06-21 | 國立成功大學 | 執行緒束排程方法及使用該方法的串流多處理器 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6732363B1 (en) * | 2000-02-28 | 2004-05-04 | Sun Microsystems, Inc. | Supporting inter-process communication through a conditional trap instruction |
US20050081204A1 (en) * | 2003-09-25 | 2005-04-14 | International Business Machines Corporation | Method and system for dynamically bounded spinning threads on a contested mutex |
TW200709053A (en) * | 2005-06-16 | 2007-03-01 | Ibm | Fine grained multi-thread dispatch block mechanism |
TWI279717B (en) * | 2003-12-31 | 2007-04-21 | Intel Corp | Method, apparatus and system for multi-threaded processing |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05257902A (ja) | 1992-03-10 | 1993-10-08 | Fujitsu Ltd | 処理プログラム・モードにおけるロック獲得処理方式 |
JPH06259383A (ja) | 1993-03-02 | 1994-09-16 | Toshiba Corp | 割込み制御方法及び割込み制御装置 |
US5826081A (en) * | 1996-05-06 | 1998-10-20 | Sun Microsystems, Inc. | Real time thread dispatcher for multiprocessor applications |
US5937199A (en) | 1997-06-03 | 1999-08-10 | International Business Machines Corporation | User programmable interrupt mask with timeout for enhanced resource locking efficiency |
US6446225B1 (en) * | 1998-04-23 | 2002-09-03 | Microsoft Corporation | Server system with scalable session timeout mechanism |
US6631009B1 (en) * | 1999-09-24 | 2003-10-07 | Xerox Corporation | Avoiding deadlock situations in a printing system using a locking time-out mechanism |
US6820263B1 (en) * | 2000-12-29 | 2004-11-16 | Nortel Networks Limited | Methods and system for time management in a shared memory parallel processor computing environment |
US7080376B2 (en) * | 2001-09-21 | 2006-07-18 | Intel Corporation | High performance synchronization of accesses by threads to shared resources |
US7143414B2 (en) * | 2001-09-26 | 2006-11-28 | International Business Machines Corporation | Method and apparatus for locking multiple semaphores |
US6965961B1 (en) * | 2002-03-01 | 2005-11-15 | University Of Rochester | Queue-based spin lock with timeout |
JP3798726B2 (ja) * | 2002-04-26 | 2006-07-19 | インターナショナル・ビジネス・マシーンズ・コーポレーション | メモリ・アクセス順序付け及びロック管理の方法、装置、プログラム及び記録媒体 |
US7234143B2 (en) | 2002-06-20 | 2007-06-19 | Hewlett-Packard Development Company, L.P. | Spin-yielding in multi-threaded systems |
JP4476011B2 (ja) | 2004-04-26 | 2010-06-09 | 株式会社エヌ・ティ・ティ・データ | データベースシステム、データベース不整合回避方法およびプログラム |
US7594234B1 (en) * | 2004-06-04 | 2009-09-22 | Sun Microsystems, Inc. | Adaptive spin-then-block mutual exclusion in multi-threaded processing |
US20060037021A1 (en) * | 2004-08-12 | 2006-02-16 | International Business Machines Corporation | System, apparatus and method of adaptively queueing processes for execution scheduling |
US20060130062A1 (en) * | 2004-12-14 | 2006-06-15 | International Business Machines Corporation | Scheduling threads in a multi-threaded computer |
US7752620B2 (en) * | 2005-06-06 | 2010-07-06 | International Business Machines Corporation | Administration of locks for critical sections of computer programs in a computer that supports a multiplicity of logical partitions |
US7818743B2 (en) * | 2005-09-22 | 2010-10-19 | International Business Machines Corporation | Logging lock data |
US20070124728A1 (en) * | 2005-11-28 | 2007-05-31 | Mark Rosenbluth | Passing work between threads |
US8020166B2 (en) * | 2007-01-25 | 2011-09-13 | Hewlett-Packard Development Company, L.P. | Dynamically controlling the number of busy waiters in a synchronization object |
US9207997B2 (en) * | 2007-08-09 | 2015-12-08 | Novell, Inc. | Multithreaded lock management |
US8131983B2 (en) * | 2008-04-28 | 2012-03-06 | International Business Machines Corporation | Method, apparatus and article of manufacture for timeout waits on locks |
US8239871B2 (en) * | 2008-06-24 | 2012-08-07 | International Business Machines Corporation | Managing timeout in a multithreaded system by instantiating a timer object having scheduled expiration time and set of timeout handling information |
US8166480B2 (en) * | 2008-07-29 | 2012-04-24 | International Business Machines Corporation | Reducing lock contention by adding a time slice to an active thread holding a lock |
-
2008
- 2008-07-09 US US12/170,101 patent/US8701111B2/en active Active
-
2009
- 2009-06-15 JP JP2009142651A patent/JP5356925B2/ja active Active
- 2009-06-17 KR KR1020090053877A patent/KR20100006530A/ko active IP Right Grant
- 2009-07-07 TW TW098122957A patent/TWI460659B/zh active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6732363B1 (en) * | 2000-02-28 | 2004-05-04 | Sun Microsystems, Inc. | Supporting inter-process communication through a conditional trap instruction |
US20050081204A1 (en) * | 2003-09-25 | 2005-04-14 | International Business Machines Corporation | Method and system for dynamically bounded spinning threads on a contested mutex |
TWI279717B (en) * | 2003-12-31 | 2007-04-21 | Intel Corp | Method, apparatus and system for multi-threaded processing |
TW200709053A (en) * | 2005-06-16 | 2007-03-01 | Ibm | Fine grained multi-thread dispatch block mechanism |
Also Published As
Publication number | Publication date |
---|---|
US20100011360A1 (en) | 2010-01-14 |
JP2010020759A (ja) | 2010-01-28 |
KR20100006530A (ko) | 2010-01-19 |
JP5356925B2 (ja) | 2013-12-04 |
TW201015440A (en) | 2010-04-16 |
US8701111B2 (en) | 2014-04-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI460659B (zh) | 用於降低競爭之鎖定窗 | |
TWI552076B (zh) | 使用具有客作業系統及虛擬處理器之超管理器之系統及方法 | |
US9201693B2 (en) | Quota-based resource management | |
US10896065B2 (en) | Efficient critical thread scheduling for non privileged thread requests | |
CN105579961B (zh) | 数据处理系统及操作方法、用于数据处理系统的硬件单元 | |
CN106569891B (zh) | 一种存储系统中任务调度执行的方法和装置 | |
US9875141B2 (en) | Managing pools of dynamic resources | |
JP2013506179A (ja) | 命令スレッドを組み合わせた実行の管理システムおよび管理方法 | |
US10013264B2 (en) | Affinity of virtual processor dispatching | |
US10579416B2 (en) | Thread interrupt offload re-prioritization | |
US20080229319A1 (en) | Global Resource Allocation Control | |
CN114168271A (zh) | 一种任务调度方法、电子设备及存储介质 | |
RU2494446C2 (ru) | Восстановление управления ресурсом обработки, который исполняет внешний контекст исполнения | |
US20210149726A1 (en) | Scheduling device, scheduling system, scheduling method, and non-transitory computer-readable medium | |
US9229716B2 (en) | Time-based task priority boost management using boost register values | |
CN115408117A (zh) | 协程运行方法、装置、计算机设备和存储介质 | |
US11256549B2 (en) | Method and apparatus for thread scheduling | |
US8504749B2 (en) | Synchronization of multiple processor cores | |
JP2008225641A (ja) | コンピュータシステム、割り込み制御方法及びプログラム | |
US11348656B2 (en) | Efficient resource sharing | |
Kim et al. | Mixed-criticality on multicore (MC2): A status report | |
CN113806142A (zh) | 一种数据恢复方法、装置及相关设备 | |
US8566829B1 (en) | Cooperative multi-level scheduler for virtual engines | |
US20130042247A1 (en) | Starvationless Kernel-Aware Distributed Scheduling of Software Licenses |