TWI332157B - Method, apparatus, and computer program product for managing a mutex in a data processing system - Google Patents

Method, apparatus, and computer program product for managing a mutex in a data processing system Download PDF

Info

Publication number
TWI332157B
TWI332157B TW093126167A TW93126167A TWI332157B TW I332157 B TWI332157 B TW I332157B TW 093126167 A TW093126167 A TW 093126167A TW 93126167 A TW93126167 A TW 93126167A TW I332157 B TWI332157 B TW I332157B
Authority
TW
Taiwan
Prior art keywords
thread
mutex
state
value
cost value
Prior art date
Application number
TW093126167A
Other languages
English (en)
Other versions
TW200517865A (en
Inventor
Joel Howard Schopp
Original Assignee
Ibm
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ibm filed Critical Ibm
Publication of TW200517865A publication Critical patent/TW200517865A/zh
Application granted granted Critical
Publication of TWI332157B publication Critical patent/TWI332157B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • G06F9/526Mutual exclusion algorithms

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Power Sources (AREA)

Description

1332157 九、發明說明: 【發明所屬之技術領域】 本發明與-種改良的資料處理系統有關 明有關於-種用於多重處理程序調和的方法^置。更丄 體的說,本發明提供一種方法與裝置 ^ 或使用互斥器(Mutex)之控制。 η 【先前技術】 現代的作業系統皆支援多重 ㈣),藉此Μ財轉啊地在單—ί 般’而此裝置可以是擁有單—個t央處理 算機,或是含有多個中央處理單元的對稱 ί器(S/mmetnCmUlti_eSS〇r)的機器。表面上同 对達成,此名詞即廣為人二; \L17 Tng):即—裝置的作㈣統,允許多個程 =的其中—個,於—段限定的咖_占地執行 =即稱為時間片(time snce),接下來則是由眾多^ 段時間的獨占性執作。由於程式間3 ^連度二迅速,使其外觀上看起來似乎是程式在同時g 而另一程 事貫ΐ它們是序列化的被執行。當—程式的時間片 尨束%,程式便被暫停,或進入「休眠」狀態 片 式便被「唤醒」,並開始執行。 “ 4IBM/04088TW » AUS9-2003-0450(JL) 5 1332157 :_〇η) ’、通常稱為「執行緒」(threads)。如此的程式 J程序典型上被描述為「多工」_賭 ;i(rthr,作業系統在執行緒二吏= 地里™時,铨供母個執行緒一時間片。典型上, =制,在這些同時執行的程式及/或執行緒之 :)目速且有效的方式切換;某些種_中央處理 供錄行緒的硬體支援給作職統。由於本發 二之,心同樣地可應用*並行的執化緒(c〇nc晴二 threads)及並行的程式上,其巾可能含 本文當中,「執行緒」之用語可用 i==?rreadedprcgram),或是多執行绪
㈣’無可聽的f轉师做理系統中 的魏,其分享的方式必須保護到資J 止,而這财衫-執行緒已成攸献用#源的^為 4乍型上ί供多種機制,來協調多執行緒之間對 I使^ίΐίί源的序列化存取,但應用程式開發』 分享資源的控制邏輯’喪入至多執行緒中=用 作業糸統特/的機制是相當有幫助的,此因其允;作 統將關於資源競爭的資訊,整合進時間片的功、因 4IBM/04088TW,AUS9,2003-0450(JL) 6 1332157 ^,作業系統依據需求性及競爭資源,將時間片配置到執 仃緒,而不是透過使用嚴格的週期性時間片的方法。 —種將存取共享資源序列化的常見機制是互斥器,或稱 為互斥鎖(mutual exclusion |0cks),其為一簡易鎖包含 =狀態:鎖定(locked)與解鎖㈣丨沉㈣。此種鎖通常被 只鈿為一資料物件,或是資料結構,其可用標準函示庫内 之軟體子程式(software subroutine)或模組,來加以建立、 =構(destroyed)或修改。互斥器可以在邏輯上關連至庄 【源丄使得執行緒若成功的鎖住互斥器,則此執行緒^皮稱 擁有者;唯有擁有特定互斥器的執行緒, 才了開始存取與此特定之互斥器相關連的共享 只有擁有特定互斥H之執行緒,才可解鎖此特^斥器。
如此-來’在欲存取共享#_執行緒裡_鍵 碼區段,便受限於一用以鎖定互斥器的呼叫,以 以解鎖同-互斥器的呼叫。若執行绪嘗試鎖定 ^敗時,則其必須等待至可以鎖定互斥器為止 執行其關鍵性程式碼區段,藉以存取共享資 jJ 被配置在由互相協調的程序所共享的記憶體中 = 可用於同步化單-程序中,或跨過多程序之間的執行 執行緒在存取互斥器失敗後等待互斥器的行 用的互斥器機制所決定。三種被廣泛運用的鎖如下疋 鎖(block丨’ng lock)、自轉鎖(spin I〇c㈣ ,的組合。若互斥器已經被郝’而另一 執行緒中止(cease)其可執行狀態,或是進入吏 (suspension) ’也就是進入「休眠狀態⑻剛」。^^ 4IBM/04088TW » AUS9-2003-0450(JL) 7 自轉鎖並不將科喊行緒放人休目驗態。取而代之的, ,等待中執行緒會執行-迴圈,也因此,執行緒將重複請 求此鎖’直到鎖被目前擁有互斥器的執行緒所釋放為止; 5迴,包含-空的疊代迴圈,即「忙碌迴圈(busyl0 巧忙碌等待(busywa丨t)」,此迴圈通常對某一個參數進 ^丁遞增或是遞減,使得執行緒不會立即重新請求 刪間取決於 - 鎖自轉鎖’互斥器通常實施為自轉鎖加上 i f ^^meout),也就是具有自轉鎖特性的阻擋 獲取互斥器時,則執行緒會被阻擋住 勃-㈤時間的時間週期通常是以忙碌等待迴圈中 々二固^數置的疊代來加以控制。除了鎖定常式及解鎖常 含一「嘗試鎖定」_ck)子程式, 中Γ卽:時,將控制回傳到發出請求的常式 時。X ^的巾式;f:是被強迫等待啦斥$可被獲得 地的動Γ同時具有益處也有壞處。阻稽可快速 道待中執订緒的執行。然而,此阻#的動作之可許 暫停„,而且執行緒的b =須被·例== ======啸源•若能 快速地獲取互斥器· 4IBM/04088TW , AUS9-2003-0450(JL) 1332157 消耗較少料算⑽、。_,哺或觸 取決於許多其他因素’特別是等待執: 的計算環境。 仃時,裝置中 為增進效能’自觀的暫停咖通常 作業系統—允許回轉㈣停時‘ ί i (system-w丨de)的基礎上是可以調整。在其^^糸白先 轉鎖的暫停時間值在個別應用程^ ’自 (per-apphcat丨on basis)是可調整的。自轉 ^ t 或由雜檔所提供的執行期間ίίίϊΖ 作f是而相暫停時間值’對系統管理者操 因此,使用自轉鎖加上暫停時_互斥 額外的手動調整便相當有優勢。 亚儿不而要 【發明内容】 本發明係提供一種管理資料處理系統中互斥器 法:,個互斥器而言,進行平均獲取成本的維持,以指 不出執行緒嘗試獲取互斥器時,平均消耗的計算資源。 是執行緒嘗試獲取定的互斥!!,雌行緒便進入一 自轉狀態或休眠狀態,並基於限制條件與當時 Z取成本值來判^特錄行緒的現在^=^= 維持,以代表執行緒於初始嘗試獲取互斥器,直到獲取互 斥,之前所消耗之計算資源。當執行緒獲取了互斥^,則 特疋執行緒的現在獲取成本值便被加入平均獲取成本 當中。 4IBM/04088TW » AUS9-2003-0450(JL) 9 【實施方式】 資廣泛的 統中的典型硬體和軟體組織: 路tf"々考圖式’圖1A描述一典型資料處理系統之網 Γ〇〇 ίί各柄可實施部份本發明。分散式資料處理系ΐ 弋資=路101 ’係做為一媒介來提供通訊鏈結於分散 統100之中互相連接的裝置與電腦之間'ΐ 01可包3固定連接’如電纜或光纖纜線,或是 話。、無線通訊等的暫時連接。如圖所示,舰器102與飼 服器103同時與儲存單元1Q4連接至網路1Q卜除^之 外,客戶端105-107也連接到網路1〇彳。客戶端1〇51〇7 與飼服If 1Q2-1Q3可;!:錄樣式之計算機裝置,例如大型 電腦、個人電腦、個人數位助理(PDAs)等。分散式資料處 理土統100可包括圖中未顯示之額外伺服器、客戶端、路 由器、其他裝置、以及同儕架構(peer_t〇_peer archjtectures) 等。 於圖式中,分散式資料處理系統100可包括網際網路 與網路101,代表了全球性的網路與閘道器之集合,並且 使用多樣化的通訊協定彼此溝通,諸如輕量目錄存取協定 (Lightweight Directory Access Protocol ’ 簡稱 LDAP)、傳 輸控制通訊協定/網際網路通訊協定(Tra ns port Control Protocol/ Internet Protocol ’ 簡稱 TCP/IP)、超文件傳輸通 訊協定(Hypertext Transport Protoco卜簡稱 HTTP)、無線 4ffiM/04088IW * AUS9-2003-0450(JL) 10 1332157 應用程式通訊協定(Wireless Application Protocol,簡稱 WAN)等等。當然的,分散式資料處理系統loo也可包含 各種不同的網路’例如内部網路(丨ntranet)、區域網路 (LAN)、廣域網路(WAN)等。舉個例子,伺服器1〇2直接 支援客戶端109與網路11〇,便使用無線網路的通訊鏈 結。具有網路功能的無線電話111透過無線鏈結1彳2連結 到網路110上,而個人數位助理(PDA) 113使用無線鏈結 114與網路彳1〇連接。電話hi與pda彳13可以使用適當 的技術,透過無線鏈結115直接傳輸資料,例如使用藍^ 無線技術(Bluetooth wireless technology),來創造出所謂 個人區域網路(簡稱PAN)或個人臨時網路(pers〇na| ad-hoc network)。同樣地,PDA113也可以藉由無線通訊 鏈結116來與PDA 107進行資料傳輸。 > 明可實施於各種的硬體平台上,圖1A意指一異質 ,算環境(heter〇geneous computjng 之範 例’而非對本發明作架構上的限制。 參^@ 1B ’此圖顯示一般資料處理系統中之計算機架 構,如同圖1A所示,本發明可實施於其中。 122資Hi系統120包含一或多個中央處理單元(CPUs) 23 123 5 盘憶體(_)124、唯讀記憶體126 卩表機⑽、磁碟單元彳32或其他未 至通垃哭1二訊輸出系統等。系統匯流排123之連接 土通訊配接is彳34,其提供存取至 介面配接器148連接各種使用結,°使用者 裡便用者裴置,如鍵盤140、滑鼠 4IBM/04088TW AUS9-2003-0450(JL) 11 42或其他未圖示之產品,諸如觸控螢幕、指示筆、麥克 風等。顯不配接器144則將系統匯流排123連接至顯示裝 置 146。 熟/此技藝人士將會體認到於圖1B之中所述的硬體會隨 ,體系統架構而有所差異。舉例來說,系統可具有單顆或 夕顆處理器’例如是Intel Pentium系列之處理器與一數 位訊號處理器(DSP);以及一或多種揮發性或非揮發性記 憶體。其餘周邊裝置可被添加或取代圖1B之硬體。圖示 所述之範例並非欲對本發明作架構上的限制。 ^發明除可以在多樣化之硬體平台實施,亦可用各種軟 體%境來實施。資料處理系統中可使用典型的作業系統來 控制程式運作。例如,某些裝置可執行論作業系統, 而:匕裝置則含有簡單的java執行環境(runtime ejivi「〇nment)e代表性的電腦平台可包含一瀏覽器,可以 是廣為人知的軟體程式,用於存取各種格式的^鏈結文 件,例如圖檔、文字處理檔 '可擴充標記語言(XML)、超 文件標記語言(HTML)、補絲置標記語言(hdm 線傳輸標記語言(WML)與其它各種格式與檔案型態。…、 本發明可財各種不_硬體與健平台上實施,如圖 时^«1B所表示’包含一對稱式多重處理器(SMp)的機 雖然並非圖1A與圖1B之所有組件都是必要之元 這些組件可以被實施本發明之元件所使用,如 應用程式或其他元件。此外,本發明可實施於—計'曾、環 ,含許多_接使卵壯允許系辭理者控鮮^元 件之組態),來支援本發明的元件,例如顯示裴置。〃 更具體地說,本發明係用於改良式互斥器,其可實施於 4JBM/04088TW * AUS9-2003-0450(JL) 12 1332157 作業系統内、應用程式内、或以其它方式實施於資料處理 系統内。在我們更深入探討調適互斥器前,先討論典型互 斥器的使用方式。如前所述,應用程式開發者可建立特定 應用程式(application-specific)之互斥器,如圖2A所示, 但應用程式開發者通常採用作業系統所提供的機制,或是 標準軟體函式庫(standardized software library)内的機 制,如圖2B所示。本發明可被實施於多種特定應用程式 或非特定應用程式之形式,而不影響本發明的有效範圍。 參考圖2A’此方塊圖摇述使用互斥器之典型多執行緒 應用程式’其中元件之邏輯架構(logical organjzatj〇n)。多 執行緒應用程式202包含多重的執行緒,如執行緒204 與執行緒206。為了序列化自身與一資源(由包含應用程式 的執緒所共享)有關的執行緒的運算,一應用程式可使用^ 己本身的互斥器函數208(由互斥器資料結構21〇所支 援),而不是依賴由作業系統提供或標準函式庫内的互斥函 數(如POSIX的「pthread」函式庫)。 現在參考圖2B,此方塊圖是描述一典型資料處理系統 亡元件之邏輯架構,其使用作業系統核心所支援之^斥 器。電腦220支援之作業系統包括核心層級函數 (kernel-level function) 222,其控制多執行緒應用程式224 與226(分別包含執行緒228與230)的執行。於核心内部 的執行緒排程器232使用執行緒排程資料結構234,來決 定執行緒何時應該執行與何時應該暫停,而執杆緒 眘 ?結構234可包含#料結構,用於協助執行 官理’例如資料結構可包含先進先出(F|F〇)件列,像是相 關於多種執行緒狀態的佇列,如準備執行 (Ready-to-executeK宁列、休眠佇列、輸入/輸出阻擔佇列、 4IBM/04088TW . AUS9-2003-0450(JL) 1332157 互斥器等待(rtiutex-waitingM宁列或其他狀態。常駐於核心 内的互斥器管理常式236(或以核心層級特權而執行的核 心延伸常式),提供建立、修改與解構互斥器之功能,如同 互斥器資料結構238内所反映。如前所述,縱然互斥器管 理常式與互斥器資料結構也可被施行於應用程式層級,而 不是核心層級,但本發明可以任一種形式來實施。於下文 中,「休眠(sleep)」一詞係等同於任一種形式之「暫停 (suspension)」° 參照圖3,此為一典型自轉鎖(spjn |〇ck)互斥器之實施 流程。流程開始於一執行緒請求獲取一互斥器(步驟 302),下文中「獲取(aCqUjre)」、「保留(resefVjng)」、「持 有(P〇ssessing)」、「擁有(owning)」或是「鎖定(丨0況叩)」 互斥器都是被視為等效的術語。在步驟304時決定互斥器 是否為自由且解鎖的,若否,則需檢查是否已經有可規劃 的(configurable)時間被執行緒於互斥器上回轉時使用(步 驟306)。若否則執行緒便進行一忙碡等待(busy_wait)迴圈 (步驟308) ’即在迴圈中回轉,並等待互斥器變成可用。 倘若執行緒先前已經過步驟302-308,則執行緒將繼續經 由完成另一忙碌等待迴圈,來繼續回轉運行。在完成回轉 後的一段時間’執行緒將重複步驟3〇2。 若互斥器於步驟304是自由狀態,則互斥器將被執行 緒鎖住(步驟310),而此執行緒則會開始存取共享資源(步 驟312),而不會因為與另一執行緒相互抵觸(⑺丨丨jde)而損 及與共旱資源相關之資料完整性(jnteg rity)。在執行緒完成 與共旱資源相關的操作後,執行緒會要求互斥器需被釋 放,於是互斥器便被解鎖(步驟314),由此結束整個流程。 在互斥器解鎖後,互斥器便可被其他同時執行中的執行緒 4IBM/04088TW > AUS9-2003-0450(JL) 14 戶^使用。若步驟306中確定已經有可規劃的(c〇nfigura 2間被執行胁互斥H上哺時朗,職倾於 中進行休眠(麵316),例如呼叫一核心 2 成休眠狀態。執行緒可以在可規__休眠將 具有能力於互斥器解鎖時無執行緒。無論如何 緒被喚醒後,此執行緒將再度嘗試獲取互斥器。 如先前所提,習知技術中一自轉鎖的暫停時間(s ,Ck tuneout)已經是可調整,以改進獲取互斥$流程的效 ,。某些作業系統核心允許回轉的暫停時間長度可以在泛 系統,基礎上膽。另—些情況τ,自觀的暫停時間可 以在母個應用程式(per_appljcat|’〇n)的基礎上調整。然 ,,巧實務經驗上,尋找適當之自轉鎖的暫停時間值,則 是相當耗時的工作。回到本㈣之說明,本發日腾應用於 獲取互斥器之流程,其基於個別互斥器(per_mutex)的基 礎,對先前嘗試獲取互斥器所消耗的計算資源為自主調適 (autonomically adaptive)。接下來的圖式說明本發明的各 種具體實施例。 參照圖4A,此方塊圖說明一資料結構,包含延伸資訊, 以支援依照本發明具體實施例的調適性互斥器。須要注意 的是,於圖式中所示的互斥器資料結構中,其資訊性資料 項目(informational data item)可被儲存在另一資料結構 中,並且圖4A之互斥器資料結構僅為多種資訊性資料項 目的邏輯架構之其中一種範例,其可於邏輯上彼此關連, 以支援本發明之具體實施例;其他資訊性資料項目可以被 包括在互斥器資料結構中。 互斥器資料結構402包含互斥器404,其為一資料數 4IBM/04088TW » AUS9-2003-0450(JL) 15 1332157 值用於切換(toggle)反應互斥鎖為鎖定或解鎖之狀熊。— 互斥器為鎖定狀態’鎖定執行緒識別符4〇6將指 f 緒識別符已被作業系統指派至目前擁有互斥器 = 緒,即鎖定住此互斥ϋ。若互料為鎖定,並且有 斥器在等待其解鎖,則等待執行緒列表4〇8會包含正J 待互斥器解鎖的執行緒之執行緒識別符。或者, 緒列表408包含-紀錄列表,其中每項記錄代表正在= 此互斥器的執行緒,並且每項記錄可包含執行緒管理資 訊,以下將更詳細地說明。互斥蹄料結構似 均獲取成本410 (average acquisition cost),於儲存平均 成本上特別重要,或於獲取互斥H 4Q4的執行緒 資 源的消耗特別重要,以下將詳述之。 、 參照圖4B ’此方塊圖表示一些資料攔位(data胎, 可依照本發明具體實施例而使用在特定執行緒細a d _ specific}且與互斥器相關的資料結構,以支援調適性互 器之獲取(acquisition)。圖4B所示之資料攔^立可代^如^ 4A所不等待執行緒麻4〇8巾特定執行緒記錄内所包含 =料^位。此外,於圖4B所示之資料搁位可被儲存在 ―01 _)中’而作業系統 行緒上的運行。搭_雜互斥器來 可隨著本發明的㈣频實施例而改 ί 之資料棚位也在®5Α-6+被使用,以說 明-些額外的執行緒相.理,可用 行排程。不論任何情況下,圖4Β所示之資料搁^執^ 試獲取特定調適性互斥器的特定執行緒所特有的。可以假 位Ϊ每次有特定執行緒嘗試要獲得一指定 的調適性互斥态時,皆會被初始化。 4DBM/04088TW * AUS9-20〇3-〇45〇(JL) 16 執行緒識射420指示出被作業祕指派給特定 執行緒識別符。等待旗標422指示出特定執行緒正等 巧取調適性互斥器。忙碌等待旗標424則指示出在 互斥器時’_執行緒已進人忙碌等待或自轉狀態: 民,標426則指7F出執行绪於等待調適性互斥器時,已進 狀態;休眠啟動時間標記428是—暫存值, ,,時進人休眠狀態’而休眠終止時間標記430則1 H雜,指示出執行緒何時 m—數值’指示出執行緒的現在互斥 义要二S mr「lc),指示出到目前的時間點為止,目 =獲叙調適性互斥11的嘗財,已經耗費的計算資 發示-依照本 成本。圖5A_5C說明—執行緒獲取調適性互 程:’可能經歷的各 :生二 態 Γ圖解鎖狀態下的調'適性互ΐ 休眠態’即執行緒因已鎖定的調=:== 此範例t,常式漏A「I $麟讀仃撕呼叫時。於 式被㈣_性互斥器管理常式加a_ 2003-0450(JL) 4IBM/04088TW > AUS9-: 17 ril:agement rc咖e),其可為核心層級之常式, 統呼叫來存取,妓可為其他種類的 二能以縣權限來執行。或*,應用程式可以實 ΐ ίΐ種實施例’其中將調適性互斥器管理常式 灯…睪(compile)至應用程式的目的碼(〇b)ect c〇de)中。 如為反應最近的執行離態,例如為了有益於執行緒排程 ^-=旗標值(flag value)被設定來指#出此執行緒正在 3互斥器(步驟5Q4)。許多特定執行_#料值可被初 ΪΪ,由t® 4B戶斤示。更具體來說,執行緒的目前獲取 成本(用於獲取特定所需的互斥器)會被設為零(步驟5〇6)。 堪調適性互斥器是否已被鎖定(步驟508)。倘若互斥 、’未被鎖疋,則互斥器會被執行緒鎖定(步驟51〇)。額 外需注意的是步驟5G8和步驟51Q應被實施為最小運算 (,tom丨Coperat_,即不可被中斷的運算。而目前已有許 =廣為人知的技術’可進行互斥!I相關的最小運算。為反 …執行緒最新的狀態,一執行緒識別符可以被儲存在任 n的資料結構巾,以指示出目前擁有互斥^的執行緒身 刀(步驟512) ’並且等待旗標值被清空,以指 不再等待此互斥器(步驟514)。 出執仃,,者 調適性互斥器的平均獲取成本,係連同執行緒對互斥器 的目前獲取成本被讀取(步驟516)。使用這些讀取到& ,,針對調適性互斥器的平均獲取成本之新值,便能被運 算並儲存(步驟518)。調適性互斥管理常式於是回傳給呼 叫的常,(步驟520),並且獲取互斥器的步驟於此結^。 用來汁异平均獲取成本的新值的演算法,可以隨著本發明 不同的具體實施例而有所變動,但並不影響到本發明的有 4IBM/04088TW » AUS9-2003-0450(JL) 18 效範圍。其中一種演算法的範例將在下面詳述。 ^步驟508 t,若_性互斥器已被鎖定,則進行一 決東判定’確定互斥器的平均獲取成本是否超出一門檻 (threshold),或者是否滿足一特定限制條件(restric^e condition)(步驟522)。門檻值或其他形式的條件將在下文 ^述。若互斥H的平均獲取成本並不超過服值, f足,定條件,則程序將進行到圖SB所示的執行區塊 右互斥11的平觸取成本超越—門健或滿足-特定 圖5C所示的執行區塊中。更具體 職執行緒於已鎖定的調適 /參賴5B,執行區塊開始於設定旗標值,以指 灯緒於調適性互斥器上回轉,或是忙綠等待(步驟5^執 =反映出最近的執行緒狀態。若是需要的話,忙) 532) ’且忙碌等待迴圈便開始 說:r等待迴圈 工作。 m其並不運彳τ任何實質上有用的 在計算資源方面,執行此特定等待迴圈的成本於产 的形式被算則步驟536)。絲 ς =待迴圈之成本的演算法,可以隨著本發明不 ^例1所變動,但並不影響到本發明的有效範圍了盆 文忙ϊίίίΓ斤耗費之計算成本的範例,於; 。右此成本已經被計算出並且儲存,此 為已知,例如藉由-預先設定值(p「_gured 4EBM/04088TW » AUS9-2003-0450(JL) 19 value),則成·本可以很簡單的被讀取,而不必被計算。 執行緒獲取調適性互斥器所需獲取成本值的更新,是藉 由加入最近完成的回轉迴圈中,所取得或計算而得的數^ (步驟538),從而建立-個全新的、特定執行緒的獲取成 本。如此一來,便能將執行緒獲取互斥器所需的獲取成 本,持續地維持其執行總成本(running t〇tai);縱然成本值 可被描述為總值(total value) ’但仍需注意成本值^現的是 一個近似的(approximate)總值,因為許多的指令執行 (instruction executions)等,並不會被包含入成本值中。既 然執行緒已經完成了忙碌等待迴圈,則指示出執行緒在調 適性互斥器上為自轉狀態或忙碌等待的旗標值便被清除 (步驟540),從而反映出最新的執行緒狀態,而執行區段 也到此結束。 參照圖5C,係延續圖5A中的步驟522,而執行區塊 開始於設定旗標值,以指示出執行緒於調適性互斥器上為 休眠狀態(步驟542),從而反應出執行緒最新的狀態。一 時間標記則於目前的時間點被取得(步驟544),例如透過 系統呼叫並且時間標記便在執行緒進行休眠狀態時,被 ,存到適*的資料結構(步驟546),即執行緒的休眠開始 知間。之後’執行緒便進入一段時間的休眠(步驟548)。 執行緒可休眠-段預先設定的時間,但是更佳的是,執行 ,會持續休眠,直至被來自另一執行緒的目標唤醒訊號 (targeted wake-upsignal)所喚起,或是由其他方式,例如 由執行緒排程器的動作來喚起。 在某些時間點,執行緒會離開休眠狀態(步驟55〇)。一 時間標記於此喃點取得(步驟552),而此時關記代表 4IBM/04088TW * AUS9-2003-0450(JL) 20 1332157 了執行緒離開休眠狀態的時間,即執行緒的休眠終止時 間。 、. 此特定的休眠時間所需之計算成本,接著以某種賦矩 (metric)的形式’並基於執行緒的休眠開始時間與執行緒 的休眠終止時間’被計算出來(步驟554)。用於計算給定 休眠時間之成本的演算法,可以隨著本發明不同的具體實 施例而有所變動,但並不影響到本發明的有效範圍7其中 一種用於計鼻休眠時間之計算成本的演算法範例將在下 面詳述。執行緒獲取調適性互斥器所需獲取成本值的更 新’疋藉由加入由將最近完成的休眠期間中,所取得或叶 算而得的數值(步驟556),從而建立一個全新的、特定^ 行緒的獲取成本。如此一來,便能將執行緒獲取互斥器所 需的獲取成本’持續地維持其執行總成本(「_丨ngt〇ta丨); 縱然成本值可被描述為總值(total value),但仍需注音成本 值表現的是一個近似的(approximate)總值,因的扣 令執行___删_择並)不 中。既然執行緒已經完成了忙綠休眠循迴,貝彳指示出執行 緒在調適性互斥器上為休眠狀態的旗標值便被清除(步驟 558),從而反映出最新的執行、緒狀態,而執行區段也到此 結束。 用於計算執行緒的目前獲取成本的演算法可以改變,任 ^具有適當的躲’而可以反映域行緒的計算資源消耗 二,可以被使用。例如,錄行緒於已鎖定的調適性 斥益上畴,騎算成本會以執行緒於㈣等待迴圈 數Ϊ形式被運算出。假若—執行緒於已鎖定 ΪΪ 器中休眠,則計算成本將以執行緒於休眠狀 恕中’所耗費的時間之形式被運算出。執行緒在休眠狀態 4IBM/04088TW,AUS9-2003-0450(JL) 21 1332157 中被視為引起計算成本,即消耗計算資源,是基於執行緒 a在各種執行緒管理結構中佔有登錄項目(㊀加⑺的事 實,而這些管理結構只能包含有限數目的登錄項目。除此 之外,即使在休眠態之下,執行緒也必須被管理,因此許 多執行緒管理函數會在執行緒的休眠期間被執行,例如, 決定執行緒是否需離開休眠狀態,並進行排程以執行。
^斥器的平均獲取成本,以及執行緒的目前獲取成本, 都是度量(metric values),並且反應計算資源的實際消耗 量。兩個不同的互斥器的平均獲取成本之值,可以使用代 數方,或以邏輯方法被推算、比較與結合。為實現此作 法,每個值都必須被正規化(normalize),使得每個成本值 可以,表相同的維度(dimensj0n)下的數量,例如秒、毫 秒、疊代數、千次疊代數(kHo_jteratjons)等等,因哞 成本值可以被比較或結合。
舉例來,,本發明的一具體實施例可使用疊代數量的形 式,來運异出計算成本,而當執行緒於已鎖定的調適性互 斥器中回轉時’疊代為一可輕易獲得的數量。若一執行緒 於一已鎖定的調適性互斥器上休眠,則執行緒將其於休眠 狀態的時間,轉換成為疊代的數量,例如可使用二轉換因 子來作轉換,此因子相關於執行緒能在一秒内不被中斷而 運行的疊代數量。舉例來說,六秒内休眠的成本值,可被 轉,成六十萬次回轉疊代,則其使用的轉換因子是每秒一 百單位的千次疊代(kn〇_iteratj〇ns),即每毫秒一百次疊代。 、此轉換因子可依據經驗而簡單地決定,例如藉由對疊代 迴,進行基準比較{benchmarking}。此量測可以是藉:作 業系統中特殊的函數自動化完成,或者使㈣殊模組在軟 4IBM/04088TW » AUS9-2003-0450(JL) 22 1332157 ?!行的裝置被啟動或初始化的階段時,對系統進行設 成。轉換因子的數值於是可以與其他的系統參數一 $被提供出來,例如透過纽f料區或組態設定播,以支 式的執行’藉此而避免傳統上系統安裝者 或系、,充管理員必須手動控制的時間浪費。 參^^ 6:-流程圖說明執行緒釋放調適性互斥器的過 由顯示出釋放調適性互斥器(先前使關队冗中 的執行緒’圖6與圖5A_5C為互補。流程 =於虽㊉式開始將調適性互斥器解鎖時(步驟6 在 解除鎖定觸性互斥器的執行緒,就是 t i調適性互斥糾執行緒之後,_性互斥器便 tiLt驟6Q4) ’·同時亦應注4步驟㈤4應被實施為最 ^存於讀結構中,用以指示先前鎖定此互斥器的^ 緒身分的執行緒識別符(步驟6〇6)。 接^確^是否有任何在此調適性互斥器上正在等待的 調適性互斥器上處於休眠狀態(1 :予互f器上休眠的執行緒,將 :二U 虎(步),例如透過-系統呼叫,可 ㈣便執行。若有翅執_於調適性互 式(步驟叫藉此而結束調適性互斥器的解 ,發明的伽藉*上述畴細 明自主地調整與特定已鎖定的互斥器二 4IBM/04088TW » AUS9-20〇3-0450(JL) 23 1332157 為’藉此錄行料進人自轉 係依照與先前互斥器相關的動作有所其 ’對每個調適性互斥器而言,每ΐ執ίίΐ 之前,由特定執行緒所可能進行的 執行緒所剛獲取_狀互斥H有=_取成本係與此 :SH3=== 式‘二i=據 :SiHSSS: :SHS?=: 待右疋特疋調適性互斥器的平均獲取成 4IBM/04088TW * AUS9-2003-0450(JL) 24 1332157 器上進 ,其行 本大於門檻值’職執行緒於已敏的調適性互斥 打休眠。如此-來’嘗試觀特定互斥器的執行緒 為便可被適用於此特定互斥II的使紐程中。 法如===獲8巧==, ^施例而有差異,但並不影響本㈣之纽獅。舉= 況’新的平觸取成本可心下的演算法算出。如果
零新的平均獲取成本被蚊為執行緒 的目則獲取成本。如果目前平均獲取成本非零,則由 緒的目前獲取成本巾扣除平均獲取成本;此結果以一加權 f i(T!!itfactor)進行整除(integer-divided)(使用div 函 數),此加_整後之結果,會加人至先前的平均獲取成 中’或從中扣除。加入或是扣除是取決於第一個減的運算 之結果是否為正或為負,即第—次減的運算結果的正 號(sign)會被儲存下來。 、 加權因子可選為方便的二的冪次方,如64,此舉 除,分解(division)變成簡單的位元位帅代麵)而已。此
演算法所财的優點是,它*會於固定精度纽中發生户 位(overflow) ’並且此演算法只需要三次讀取(三個單一循 環的指令),即兩個加法、一個位元位移與一個存 此演算法只制單-字福永續存郎,並卜好 的可擴充性,因為這是©定的_操作,其成本與鎖被獲 取的次數並不相關。 ,雖然此演算法縮減了維持平均值所需耗費的努力,並且 增加運算真實平均㈣效率,但此演算法仍只計算一近似 的平均值,並不是真實的平均。然而,對預測未來平均成 4IBM/04088TW » AUS9-2003-0450(JL) 時間取平均似的平均就已經足夠,因為以 輯展現的慣性行為(inertia丨behavi〇r)。 時,平均獲取成太你站幻胃在5周適性互斥器被獲得 取成本的精準度,足以及=為確保新計算所得之平均獲 史行為,較佳^門插值的關動作的歷 休眠態财緒一進入 眠# η、2 ^重複上决,則平均獲取成本應接近執行緒休 ίίίΓίίΐ树算縣;若服值難為獻於執ϊ ί立即被伽時利朗計算成本時,則 最執械’於決定要喃或休_決策時, ϊί糊整執行緒之行為,· 有效率來完成的情形下,於已鎖定的調適性互斥器 —執行回轉迴圈’並且執行緒也是在它能適當且有效率來 完成的情軒,於已鎖定的調雜互斥紅進行休眠。 若門檻值選擇為猶大於執行緒一進入休眠態便立即被 喚醒時所狀的計算穌時’制触可以醉的以經驗 的法則來決定,藉由量測執行緒休眠並被喚起的時間。以 4IBM/04088TW » AUS9-2003-0450(JL) 1332157 上的量測可以藉由作業系統中特殊的函數 者使用特殊模組在軟H所執行的裝置 系統參數-起被提供出來,例如透= 定檔,以支援系統上應用程式的執 ,統上系統安裝者或系統管理員必須手動控制^時S 費,以及人為判斷所易於發生的錯誤。
一另外需注意者,雖然本發明在本文中皆以可完整運行之 資料處理系統來描述,但熟此技藝者當知,本發明之程序 可被以指令形式散播於電腦可讀取媒體(computer readable media)中’或是以各種形式散佈,而不受限於散 佈時所實際使用的特定訊號承載媒體(Sjgna| bea「jng media)。電腦可讀取媒體的例子如下,像是可拭除且可程 式唯讀記憶體(EPROM)、唯讀記憶(rom)、磁帶、紙張、 軟碟、硬碟、P遺機存取記憶體(RAM)、光碟、以及傳輸型 媒體(transmission-type media) ’例如數位與類比通訊鏈 結。
本發明之詳細說明僅用於說明,而並非用於限制本發明 於所揭露的實施例。熟此技藝者當可由本說明而對本發明 進行許多修改及變化。上述之實施例僅用來解釋本發明之 原則’及其實際應用,以使熟此技藝人士能瞭解本發明, 而能夠進行多種修正之實施例,而可應用在其它的使用情 況上。 【圖式簡單說明】 本發明中新穎且獨特的特徵於以下所附之申請專利範 4ffiM/04088TW . AUS9-2003-0450(JL) 1332157 固中提出。更具體的說,發明太甘Ba 照詳細說明以及關連的圖式iiS相楚點I:參 本發圖明认為-般資料處理系統之網路,其中各項时實施 圖1B為-般用於資料處理系統 明可實施於其中; τ异钱木構’而本發 圖2Α為-方塊圖,顯示使用互斥器的 用程式中,元件的邏輯架構; /、生夕執仃緒應 為—方塊圖,顯示—典型資料處理系統中元件的 ,架構士能支援使用互斥器的多執行緒應用 订’而互斥H是由作靠馳心支援; %式之執 圖3為-典型自轉鎖互斥器的實施例; 為—方塊圖’顯示—種互斥11細結構,並包含 ^伸貝$ ’以支援依照本發明频實酬的調適性互斥 TO, 圖4B為一方塊圖,顯示一些資料棚位fi 可 行緒、與互斥11相_資料結構巾,以支援調 適性互斥器的獲取; 月 ,5A5C為-組流程圖,顯示一執行緒獲取調雜互 =並在所有欲獲取調雜互斥器时試巾,協助 執行中平均獲取成本的流程;以及 圖6為一流程圖’顯示一執行緒釋放調適性 流 程0 4IBM/04088TW » AUS9-2003-0450(JL) 28 1332157 【主要元件符號說明】 100分散式資料處理系統101 104 客戶端 102、103伺服器 105、1〇6、107、1〇9 110網路 111無線電話 113個人數位助理 12〇資料處理系統 123系統匯流排 126唯讀記憶體 130印表機 134通訊配接器 140鍵盤 144顯示配接器 148使用者介面配接器 204執行緒a 208互斥器函數 220電腦 224應用程式a 228執行緒 232執行緒排程器 網路 儲存單元 112無線鏈結 114、115、116無線鏈結 122中央處理單元 124隨機存取記憶體 128輪入/輪出配接器 132磁碟單元 136通訊鏈結 142滑鼠 146顯示裝置 202應用程式 206執行緒B 210互斥器資料結構 222核心層級函數 226應用程式b 230執行緒 234執行緒排程資料結構 41BM/04088TW » AUS9-2003^0450(JL) 29 1332157 236 互斥器管理常式 238 互斥器資料結構 402 互斥器資料結構 404 互斥器 406 鎖定執行緒識別符 408 等待執行緒列表 410 平均獲取成本 420 執行緒識別符 422 等待旗標 424 忙碌等待旗標 426 休眠旗標 428 休眠啟動時間標記 430 休眠終止時間標記 432 額外資料欄位 4EM/04088TW » AUS9-2003-0450(JL)

Claims (1)

1332157 十、申請專利範圍: 互斥器(mutex)的方 1· 一種用於管理一資料處理系統中之一 法’該方法包含: 維持一互斥器之一平均獲取成本值; 嘗試由一第一執行緒(thread)來獲取該互斥器;以及 回應於較該互斥H已纖—第二執行騎獲取時,決定 ,弟-執行緒要進人—自轉狀態(spin state)或—休眠狀態 (sle印state) ’該決定係基於該互斥器之該平均獲取成本值。 ^如請求項1所述之方法,其巾辭均獲取成本值指示出, 執订緒在獲取該互斥器時之一計算資源平均消耗量。 3.如睛求項1所述之方法,更包含: 維持-特定執行緒(thread-specific)的目前獲取成本 值’以代表該第一執行緒欲獲取該互斥器之一初嘗試後,直 到獲取該互斥器之前的一計算資源消耗量;以及#雜置 因應該第一執行緒獲取該互斥器,重新計算該互斥器之該 平均獲取成本值,吨括該特定執行緒的目前獲取成本值。 4·如請求項1所述之方法,更包含: 若該平均獲取成本值滿足一第一條件時,進入一自轉狀 態;以及 若該平均獲取成本值滿足一第二條件時,進入一休眠狀態。 5.如请求項4所述之方法,其中該第—條件是該平均獲取成 本值小於一門楼值(threshold value),且其中該第二條件 疋該平均獲取成本值大於或等於一門棰值。 4IBM/04088TW,AUS9-2003-0450(JL) ^ 嫌,一執行 亚镬者離開一休眠狀態所需之—時間量β 7. 如請求項1所述之方法,更包含: 仃緒進入一自轉狀態或-休眠狀態;以及 值二::狀S或該休眠狀態後,計算或讀取-成本 一計算骑於轉轉或該休眠狀細間之 8. 如請求項7所述之方法,更包含: 圈;it及第一執行緒進入一自轉狀態係藉由執行一忙碌等待迴 之一 么n曰以指不出該第一執行緒於該自轉狀態期間 迴圈中所執行的- 9. 如請求項7所述之方法,更包含: 10. 如凊求項7所述之方法,更包含. 該獲取成本值中,該成本值係指示出 、· 轉狀態或該休眠狀態期間之一計算資源 4IBM/04088TW » AUS9-2003-0450(JL) 32 器 量 該互斥 耗 11.如請求項7所述之方法,更包含: 執行正緒r=^zing)該成本值,該成本值係指示出該第一 該目或該休眠狀態_,並在加人該成本值至 »目别獲取成本值之前的一計算資源消耗量。 ^包含f用於官理-資料處理系統中之-互斥獅裝置,該裝 二=’—互斥器之—平均獲取成本; 一^ ’用於由—第—執行緒f試獲取該互斥器; 時,於確定該互斥11已經被—第二執行緒所獲取 定俜仃緒要進人—自轉狀態或—休眠狀態,該決 係基於該互斥狀該平均獲取成本值。 ^行所述之裝置,其中該平均獲取成本指示出’ 者在獲輯互斥科之—計算資源平均消耗量。 14._^°請求項12所述之裝置,更包含: 表該執^緒的目前獲取成本值,以代 互斤wj,,者欲獲取該互斥器之一初始嘗試後,直到獲取該 互斥一盜之:』的一計算資源消耗量;以及 該互斥手帛—執倾魅抑,重新計算 取成本值。句獲取成本值,以包括該特定執行緒的目前獲 4IBM/04088TW.AUS9-2〇〇3-〇45〇(JL) 1332157 15.如請求項12所述之裝置,更包含: 一手段,用於在該平均獲取成本值滿足一第一條件時,進 入一自轉狀態;以及 一手段,用於在該平均獲取成本值滿足一第二條件時,進 入一休眠狀態。 16.如請求項15所述之裝置,其中該第一條件是該平均獲取 成本值小於一門檻值,且其中該第二條件是該平均獲取成本大 於或等於一門植值。 如請求項ι6所述之裝置,其中該門檻值係有關於,一執 行緒進入並接著離開一休眠狀態所需之一時間量。 18. 如請求項12所述之裝置,更包含: 一手段,用於在該第一執行緒進入一自轉狀態或一休 態;以及 一手段,用於在離開該自轉狀態或該休眠狀態後,計算或 讀取一成本值’以指示出該第一執行緒於該自轉狀態或該休眠 狀態期間之一計算資源消耗量。 19. 如請求項18所述之裝置,更包含: -手段’驗藉由執行—忙料待迴_,而在該第一執行 緒進入一自轉狀態;以及 一用於基於在該忙碌等待迴圈中所執行的一疊代次 數’來計算職本值,以指示出該第—執行緒於該自轉狀態期 間之一計算資源消耗量。 4IBM/04088TW > AUS9-2003-0450(JL) 34 2〇._如請求項18所述之裝置,更包含: 入一 AL手段’用於藉由執行一系、统呼叫,而在該第-執杆接、# 民^•態’以暫停該第—執行緒之執行 ;S以及 卜進 量,來^於該第:執行緒於該休眠狀態的-時間 間之資源消耗量以指*出該第一執行緒於該休眠狀態期 21.如請求項18所述之裝置,更包含: 本值nm該成f值至一目前獲取成本值中,該成 緒欲it3而該目前獲取成本值係代表該第一執行 計算茲sc—初始f試後,直到獲取該互斥器之前的一 22.如請求項18所述之裝置,更包含: 手&,用於正規化該成本值,該成本值係指示出該第一 仃,於該自轉狀態或該休眠狀態期間,並在加人該成本值至 〜目前獲取成本值之前的一計算資源消耗量。 =·種於一電腦可讀取媒體上的電腦程式產品,用於在一資 料處理系統中管理—互斥器,該電腦程式產品包含: 一手段,用於維持一互斥器之一平均獲取成本; 一手段,用於由一第一執行緒嘗試獲取該互斥器; 手段,回應於確定該互斥器已經被一第二執行緒所獲取 ,’決定該第一執行緒要進入一自轉狀態或一休眠狀態,該決 定係基於該互斥器之該平均獲取成本值。 4ffiM/04088TW · AUS9-2003-0450(JL) 一如請求項23所述之電腦程式產品,其中該平均獲取成本 日不出,執行緒在獲取該互斥器時之一計算資源平均消耗量。 25· ^請^項23所述之電腦程式產品,更包含: 矣手段’用於維持一特定執行緒的目前獲取成本值’以代 ί行緒欲獲取該互斥器之一初始嘗試後,直到獲取該 作裔之前的一計算資源消耗量;以及 ^手ί免,用於因應該第一執行緒獲取該互斥器,重新計算 G成本器之該平均獲取成本值,以包括該特定執行緒的目前獲 26.如凊求項23所述之電腦程式產品,更包含: 一手段,用於在該平均獲取成本值滿足一第一 入一自轉狀態;以及 ^ 一第二條件時,進 一手段,用於在該平均獲取成本值滿足 入一休眠狀態。 ΐ均26所述之電腦程式產品,其中該第—條件是該 取二值’且其中該第二條件是該平均獲 tdr所述之-電腦程式產品,其中該門檻值係有關 、仃緒進入並接著離開一休眠狀態所需之一時間量。 约._如請求項23所述之電腦程式產品,更包含. -手段,用於在該第-執行绪進人—自轉狀態或一休眠狀 4IBM/04088TW . AUS9-2003-0450(JL) 態;以及 冷取一-手值用離Ϊ該自轉狀態或該休眠狀態後,計算或 ΐ態期間之-計算執行緒於該自轉狀態或該休目民 30·如請求項29所述之電腦程式產品,更包含: 緒進入手Λ轉用Γί由以 1丁—忙碌等待迴圈’而在該第―執行 數二段算該用成中所執行的-叠代:欠 間之-計算資源;肖耗量。該第—執雜於該自轉狀態期 31. 如請求項29所述之電腦程式產品,更包含: 入 一休執行—系統呼叫,喊該第—執行緒進 休^狀態’以料該第一執行緒之執行;以及 昙士呻^ 基於該第一執行緒於該休眠狀態的一時間 —執撕該休眠狀態期 32. 如請^項29所述之電腦程式產品,更包含: 餘加人軸本值至—目祕取成核中,該成 本值5,該第-執行緒於該自轉狀態或該休眠狀態期間 之-^具麟雜量,而該目前獲取成本健代表該第一執行 =;s以一初始嘗試後,直到獲取該互斥器之前的- 33. 如請求項29所述之電腦程式產品,更包含: 4IBM/04088TW > AUS9-2003-0450(JL) 37 ;手段,麟正聽誠本值,該縣㈣細出 耗並量在加入該成“ 4IBM/04088TW,AUS9-2003-0450(JL) 38
TW093126167A 2003-09-25 2004-08-31 Method, apparatus, and computer program product for managing a mutex in a data processing system TWI332157B (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/671,061 US7383368B2 (en) 2003-09-25 2003-09-25 Method and system for autonomically adaptive mutexes by considering acquisition cost value

Publications (2)

Publication Number Publication Date
TW200517865A TW200517865A (en) 2005-06-01
TWI332157B true TWI332157B (en) 2010-10-21

Family

ID=34422003

Family Applications (1)

Application Number Title Priority Date Filing Date
TW093126167A TWI332157B (en) 2003-09-25 2004-08-31 Method, apparatus, and computer program product for managing a mutex in a data processing system

Country Status (3)

Country Link
US (1) US7383368B2 (zh)
CN (1) CN100378668C (zh)
TW (1) TWI332157B (zh)

Families Citing this family (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7765543B1 (en) * 2003-12-17 2010-07-27 Vmware, Inc. Selective descheduling of idling guests running on a host computer system
US7921250B2 (en) * 2004-07-29 2011-04-05 International Business Machines Corporation Method to switch the lock-bits combination used to lock a page table entry upon receiving system reset exceptions
US7984439B2 (en) * 2005-03-08 2011-07-19 Hewlett-Packard Development Company, L.P. Efficient mechanism for preventing starvation in counting semaphores
US7984444B1 (en) * 2005-09-15 2011-07-19 Oracle America, Inc. Composite abortable locks
US20070136725A1 (en) * 2005-12-12 2007-06-14 International Business Machines Corporation System and method for optimized preemption and reservation of software locks
US7958510B2 (en) * 2005-12-30 2011-06-07 Intel Corporation Device, system and method of managing a resource request
US8028296B2 (en) * 2006-03-31 2011-09-27 Microsoft Corporation Providing a wrapper around native synchronization objects
JP4874165B2 (ja) * 2006-07-07 2012-02-15 ルネサスエレクトロニクス株式会社 マルチプロセッサシステム及びマルチプロセッサシステムにおけるアクセス権設定方法
US7949815B2 (en) * 2006-09-27 2011-05-24 Intel Corporation Virtual heterogeneous channel for message passing
US20080140345A1 (en) * 2006-12-07 2008-06-12 International Business Machines Corporation Statistical summarization of event data
US8132171B2 (en) * 2006-12-22 2012-03-06 Hewlett-Packard Development Company, L.P. Method of controlling thread access to a synchronization object
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
US9223637B1 (en) * 2007-07-31 2015-12-29 Oracle America, Inc. Method and apparatus to advise spin and yield decisions
US20090063881A1 (en) * 2007-08-31 2009-03-05 Mips Technologies, Inc. Low-overhead/power-saving processor synchronization mechanism, and applications thereof
WO2009118716A1 (en) * 2008-03-27 2009-10-01 Markport Limited Processing of messaging service attributes in communication systems
US8131983B2 (en) * 2008-04-28 2012-03-06 International Business Machines Corporation Method, apparatus and article of manufacture for timeout waits on locks
US20090307707A1 (en) * 2008-06-09 2009-12-10 International Business Machines Corporation System and method for dynamically adaptive mutual exclusion in multi-threaded computing environment
US8839253B2 (en) * 2008-06-18 2014-09-16 International Business Machines Corporation System and method for load-adaptive mutual exclusion with waiting process counts
US8752057B1 (en) * 2008-06-30 2014-06-10 Emc Corporation Techniques for synchronizing processing of at least two code threads
CN102301368B (zh) * 2009-02-06 2014-01-22 国际商业机器公司 用于保持数据完整性的设备
US9003413B1 (en) * 2009-09-28 2015-04-07 Xilinx, Inc. Thread synchronization by transitioning threads to spin lock and sleep state
WO2011046913A1 (en) * 2009-10-13 2011-04-21 Turck Holding Gmbh Single-stack real-time operating system for embedded systems
US8924534B2 (en) * 2009-10-27 2014-12-30 Vmware, Inc. Resource optimization and monitoring in virtualized infrastructure
US8683470B2 (en) 2009-11-24 2014-03-25 Microsoft Corporation Scalable thread locking with customizable spinning
US8607239B2 (en) * 2009-12-31 2013-12-10 International Business Machines Corporation Lock mechanism to reduce waiting of threads to access a shared resource by selectively granting access to a thread before an enqueued highest priority thread
US8595567B2 (en) * 2010-12-16 2013-11-26 Wind River Systems, Inc. Method and system for spinlock fault recovery
US8621464B2 (en) * 2011-01-31 2013-12-31 International Business Machines Corporation Adaptive spinning of computer program threads acquiring locks on resource objects by selective sampling of the locks
US20120291034A1 (en) 2011-05-14 2012-11-15 International Business Machines Corporation Techniques for executing threads in a computing environment
US8713262B2 (en) * 2011-09-02 2014-04-29 Nvidia Corporation Managing a spinlock indicative of exclusive access to a system resource
CN102693159B (zh) 2012-05-09 2015-07-01 上海晨思电子科技有限公司 基于用户模式多任务下控制硬件设备的方法及其装置
TWI495999B (zh) * 2012-07-05 2015-08-11 Compal Electronics Inc 切換資料傳輸路徑以傳輸資料的方法及儲存裝置
US9063796B2 (en) * 2012-08-02 2015-06-23 GM Global Technology Operations LLC Method and apparatus for improving processing performance of a multi-core processor
US9558035B2 (en) * 2013-12-18 2017-01-31 Oracle International Corporation System and method for supporting adaptive busy wait in a computing environment
GB2525215B (en) 2014-04-16 2019-05-08 Ibm A busy lock and a passive lock featuring embedded load management capabilities
US10528525B2 (en) * 2015-03-19 2020-01-07 International Business Machines Corporation Establishing connections in a multi-tenant environment
DE112016003949T5 (de) 2015-08-28 2018-05-17 Roman Glistvain Webbasierte programmierumgebung für eingebettete geräte
US10083068B2 (en) * 2016-03-29 2018-09-25 Microsoft Technology Licensing, Llc Fast transfer of workload between multiple processors
CN106874126A (zh) * 2017-01-24 2017-06-20 厦门天锐科技股份有限公司 一种软件开发中主进程异常检测方法
US10417057B2 (en) * 2017-01-30 2019-09-17 Oracle International Corporation Mutex profiling based on waiting analytics
US10331500B2 (en) 2017-04-05 2019-06-25 Cavium, Llc Managing fairness for lock and unlock operations using operation prioritization
US10445096B2 (en) 2017-04-05 2019-10-15 Cavium, Llc Managing lock and unlock operations using traffic prioritization
US11048562B2 (en) * 2017-06-04 2021-06-29 Apple Inc. Multi-thread synchronization primitive
CN109086124B (zh) * 2017-06-13 2021-08-20 龙芯中科技术股份有限公司 调整时间的方法、装置、电子设备及存储介质
CN111913810B (zh) * 2020-07-28 2024-03-19 阿波罗智能技术(北京)有限公司 多线程场景下的任务执行方法、装置、设备和存储介质

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5179702A (en) * 1989-12-29 1993-01-12 Supercomputer Systems Limited Partnership System and method for controlling a highly parallel multiprocessor using an anarchy based scheduler for parallel execution thread scheduling
US5442758A (en) * 1993-07-19 1995-08-15 Sequent Computer Systems, Inc. Apparatus and method for achieving reduced overhead mutual exclusion and maintaining coherency in a multiprocessor system utilizing execution history and thread monitoring
US5881313A (en) * 1994-11-07 1999-03-09 Digital Equipment Corporation Arbitration system based on requester class and relative priority including transmit descriptor valid bit for a shared resource having multiple requesters
US5644768A (en) * 1994-12-09 1997-07-01 Borland International, Inc. Systems and methods for sharing resources in a multi-user environment
US5768544A (en) * 1996-09-26 1998-06-16 Intel Corporation Deterministic latency characterization and mitigation
US6223204B1 (en) * 1996-12-18 2001-04-24 Sun Microsystems, Inc. User level adaptive thread blocking
US6151688A (en) * 1997-02-21 2000-11-21 Novell, Inc. Resource management in a clustered computer system
JPH1139209A (ja) * 1997-07-07 1999-02-12 Internatl Business Mach Corp <Ibm> コンピュータ資源アクセス制御装置およびその方法
US6247025B1 (en) * 1997-07-17 2001-06-12 International Business Machines Corporation Locking and unlocking mechanism for controlling concurrent access to objects
US5933825A (en) * 1997-07-21 1999-08-03 Apple Computer, Inc. Arbitrating concurrent access to file system objects
JPH1165863A (ja) * 1997-08-26 1999-03-09 Hitachi Ltd 共有資源管理方法
US6886162B1 (en) * 1997-08-29 2005-04-26 International Business Machines Corporation High speed methods for maintaining a summary of thread activity for multiprocessor computer systems
US6029190A (en) * 1997-09-24 2000-02-22 Sony Corporation Read lock and write lock management system based upon mutex and semaphore availability
US6026427A (en) * 1997-11-21 2000-02-15 Nishihara; Kazunori Condition variable to synchronize high level communication between processing threads
US6374285B1 (en) * 1998-05-15 2002-04-16 Compaq Computer Corporation Method for mutual exclusion of locks in a remote-write globally ordered network of processors
US6199094B1 (en) * 1998-06-05 2001-03-06 International Business Machines Corp. Protecting shared resources using mutex striping
US6112222A (en) * 1998-08-25 2000-08-29 International Business Machines Corporation Method for resource lock/unlock capability in multithreaded computer environment
FR2784478B1 (fr) * 1998-10-09 2000-11-17 Bull Sa Architecture de verrou pour grand systeme
US6480918B1 (en) * 1998-12-22 2002-11-12 International Business Machines Corporation Lingering locks with fairness control for multi-node computer systems
US6752836B1 (en) * 1999-07-22 2004-06-22 International Business Machines Corporation Method and apparatus for high-concurrency client locking with java in a data processing system
US6427235B1 (en) * 1999-11-05 2002-07-30 Sun Microsystems, Inc. Method and apparatus for performing prefetching at the critical section level
US20020095434A1 (en) * 2001-01-12 2002-07-18 Lane Robert M. Performance modeling based upon empirical measurements of synchronization points
US6845504B2 (en) * 2001-02-08 2005-01-18 International Business Machines Corporation Method and system for managing lock contention in a computer system
US6886081B2 (en) * 2002-09-17 2005-04-26 Sun Microsystems, Inc. Method and tool for determining ownership of a multiple owner lock in multithreading environments

Also Published As

Publication number Publication date
US20050080963A1 (en) 2005-04-14
TW200517865A (en) 2005-06-01
US7383368B2 (en) 2008-06-03
CN100378668C (zh) 2008-04-02
CN1601477A (zh) 2005-03-30

Similar Documents

Publication Publication Date Title
TWI332157B (en) Method, apparatus, and computer program product for managing a mutex in a data processing system
CN1307551C (zh) 用于在被争夺的互斥锁上被动态限定的自旋线程的方法与系统
US11537434B2 (en) System and method of providing system jobs within a compute environment
US7594234B1 (en) Adaptive spin-then-block mutual exclusion in multi-threaded processing
US8176494B2 (en) Alleviate denial-of-service conditions on a server
US9280393B2 (en) Processor provisioning by a middleware processing system for a plurality of logical processor partitions
US8839253B2 (en) System and method for load-adaptive mutual exclusion with waiting process counts
US7280558B1 (en) Asynchronous pattern
CN100481014C (zh) 用于信息处理的系统和方法
EP2756389B1 (en) Managing processes within suspend states and execution states
US20040019892A1 (en) Lock management thread pools for distributed data systems
US9262233B1 (en) Second-order tuning of spin loops
Krten Getting started with QNX Neutrino 2: a guide for realtime programmers
Biondi et al. Lightweight real-time synchronization under P-EDF on symmetric and asymmetric multiprocessors
Kim et al. Exploring the design space of fair scheduling supports for asymmetric multicore systems
Zhou et al. An autonomic‐computing approach on mapping threads to multi‐cores for software transactional memory
US9792419B2 (en) Starvationless kernel-aware distributed scheduling of software licenses
Liao et al. Concurrency control of real-time transactions with disconnections in mobile computing environment
Houston et al. The corba activity service framework for supporting extended transactions
Bahadur et al. FBOS: frequency based optimization strategy for thread pool system
Di Santo et al. Software distributed shared memory with transactional coherence-a software engine to run transactional shared-memory parallel applications on clusters
Aldinucci et al. Towards power-aware data pipelining on multicores
Kim et al. Gvts: Global virtual time fair scheduling to support strict fairness on many cores
US8572619B2 (en) System and method for integrating software schedulers and hardware interrupts for a deterministic system
Curley et al. Recovering from distributable thread failures in distributed real-time java

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees