亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

使用鎖定機(jī)制的高效任務(wù)調(diào)度的制作方法

文檔序號(hào):9635140閱讀:288來源:國知局
使用鎖定機(jī)制的高效任務(wù)調(diào)度的制作方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明一般地涉及計(jì)算系統(tǒng),更具體地說,涉及用于針對在計(jì)算環(huán)境中的多個(gè)線 程之間需要鎖的并行操作,使用鎖定機(jī)制進(jìn)行高效任務(wù)調(diào)度的系統(tǒng)和方法。
【背景技術(shù)】
[0002] 在當(dāng)今社會(huì)中,計(jì)算機(jī)系統(tǒng)普遍存在??梢栽诠ぷ鲌鏊⒓依锘?qū)W校中發(fā)現(xiàn)計(jì)算機(jī) 系統(tǒng)。計(jì)算機(jī)系統(tǒng)可以包括數(shù)據(jù)存儲(chǔ)系統(tǒng)或盤存儲(chǔ)系統(tǒng),以便處理和存儲(chǔ)數(shù)據(jù)??紤]到當(dāng) 今社會(huì)中對計(jì)算機(jī)的依賴性持續(xù)增加,計(jì)算機(jī)技術(shù)必須在許多方面都有所發(fā)展以便跟上增 加的需求。重要研究和開發(fā)工作的一個(gè)特定主題是并行性,即,多個(gè)任務(wù)的并行執(zhí)行。
[0003] 已開發(fā)多種計(jì)算機(jī)軟件和硬件技術(shù)以促進(jìn)增加的并行處理。從軟件角度來看,已 開發(fā)多線程操作系統(tǒng)和內(nèi)核,這允許在多個(gè)"線程"中同時(shí)執(zhí)行計(jì)算機(jī)程序,以使得可以基 本同時(shí)執(zhí)行多個(gè)任務(wù)。線程通常表示程序的獨(dú)立執(zhí)行路徑。例如,對于電子商務(wù)計(jì)算機(jī)應(yīng) 用,可能將不同線程分配給不同客戶,以使得在單獨(dú)的線程中處理每個(gè)客戶的特定電子商 務(wù)交易。從硬件角度來看,計(jì)算機(jī)越來越依賴多個(gè)微處理器來提供增加的工作負(fù)載能力。此 外,已開發(fā)某些微處理器,它們支持并行執(zhí)行多個(gè)線程的能力,從而有效地提供可通過使用 多個(gè)微處理器獲得的許多相同性能增益。

【發(fā)明內(nèi)容】

[0004] 在一個(gè)實(shí)施例中,提供一種用于在計(jì)算環(huán)境中通過至少一個(gè)處理器設(shè)備使用鎖定 機(jī)制進(jìn)行高效任務(wù)調(diào)度的方法。在一個(gè)實(shí)施例中,僅作為舉例,如果針對所述鎖定機(jī)制自旋 的任務(wù)的數(shù)量小于在多個(gè)線程之間需要鎖的并行操作的預(yù)定閾值,則允許新任務(wù)針對所述 鎖定機(jī)制自旋。
[0005] 在另一個(gè)實(shí)施例中,提供一種用于在計(jì)算環(huán)境中通過至少一個(gè)處理器設(shè)備使用鎖 定機(jī)制進(jìn)行高效任務(wù)調(diào)度的計(jì)算機(jī)系統(tǒng)。所述計(jì)算機(jī)系統(tǒng)包括計(jì)算機(jī)可讀介質(zhì)和處理器, 所述處理器可操作以與所述計(jì)算機(jī)可讀介質(zhì)通信。在一個(gè)實(shí)施例中,僅作為舉例,如果針對 所述鎖定機(jī)制自旋的任務(wù)的數(shù)量小于在多個(gè)線程之間需要鎖的并行操作的預(yù)定閾值,則所 述處理器允許新任務(wù)針對所述鎖定機(jī)制自旋。
[0006] 在另一實(shí)施例中,提供一種用于在計(jì)算環(huán)境中通過至少一個(gè)處理器設(shè)備使用鎖定 機(jī)制進(jìn)行高效任務(wù)調(diào)度的計(jì)算機(jī)程序產(chǎn)品。所述計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)具有存儲(chǔ)在其上的計(jì) 算機(jī)可讀程序代碼部分。所述計(jì)算機(jī)可讀程序代碼部分包括第一可執(zhí)行部分,其在針對所 述鎖定機(jī)制自旋的任務(wù)的數(shù)量小于在多個(gè)線程之間需要鎖的并行操作的預(yù)定閾值的情況 下,允許新任務(wù)針對所述鎖定機(jī)制自旋。
[0007] 除了上述示例性方法實(shí)施例之外,還提供其它示例性系統(tǒng)和計(jì)算機(jī)產(chǎn)品實(shí)施例并 且提供相關(guān)優(yōu)點(diǎn)。已提供上述概要以便以簡化形式引入概念的選擇,下面在"具體實(shí)施方 式"中進(jìn)一步描述這些概念。此"
【發(fā)明內(nèi)容】
"并非旨在標(biāo)識(shí)所要求保護(hù)的主題的關(guān)鍵特性或 基本特性,也并非旨在用于幫助確定所要求保護(hù)的主題的范圍。所要求保護(hù)的主題并不限 于解決"【背景技術(shù)】"中描述的任何或全部缺點(diǎn)的實(shí)施方式。
【附圖說明】
[0008] 為了容易地理解本發(fā)明的優(yōu)點(diǎn),將通過參考在附圖中示出的特定實(shí)施例給出上面 簡要描述的本發(fā)明的更具體的說明。要理解,這些附圖僅示出本發(fā)明的典型實(shí)施例,并且因 此不被視為其范圍的限制,將通過使用附圖以額外特殊性和細(xì)節(jié)描述和解釋本發(fā)明,這些 附圖是:
[0009] 圖1是示出其中可以實(shí)現(xiàn)本發(fā)明的各個(gè)方面的具有實(shí)例存儲(chǔ)設(shè)備的計(jì)算系統(tǒng)環(huán) 境的框圖;
[0010] 圖2是示出根據(jù)本發(fā)明的其中可以實(shí)現(xiàn)本發(fā)明的各個(gè)方面的計(jì)算機(jī)系統(tǒng)中的數(shù) 據(jù)存儲(chǔ)系統(tǒng)的示例性硬件結(jié)構(gòu)的框圖;
[0011] 圖3是示出其中可以實(shí)現(xiàn)本發(fā)明的各個(gè)方面的用于使用鎖定機(jī)制進(jìn)行高效任務(wù) 調(diào)度的示例性方法的流程圖;以及
[0012] 圖4是示出其中可以實(shí)現(xiàn)本發(fā)明的各個(gè)方面的用于使用鎖定機(jī)制進(jìn)行高效任務(wù) 調(diào)度的其它示例性方法的流程圖。
【具體實(shí)施方式】
[0013] 在一個(gè)實(shí)施例中,多處理計(jì)算機(jī)系統(tǒng)中的架構(gòu)是分布式共享存儲(chǔ)器架構(gòu)。分布式 共享存儲(chǔ)器架構(gòu)包括多個(gè)節(jié)點(diǎn),處理器和存儲(chǔ)器位于這些節(jié)點(diǎn)中。多個(gè)節(jié)點(diǎn)經(jīng)由耦合在其 間的網(wǎng)絡(luò)通信。當(dāng)被視為一個(gè)整體時(shí),包括在多個(gè)節(jié)點(diǎn)中的存儲(chǔ)器形成計(jì)算機(jī)系統(tǒng)的共享 存儲(chǔ)器??梢允褂媚夸洏?biāo)識(shí)哪些節(jié)點(diǎn)已緩存對應(yīng)于特定地址的數(shù)據(jù)的副本??梢越?jīng)由檢查 目錄生成一致性活動(dòng)。在一個(gè)實(shí)施例中,分布式共享存儲(chǔ)器系統(tǒng)是可伸縮的,從而克服與共 享總線架構(gòu)關(guān)聯(lián)的各種限制。因?yàn)樵S多處理器訪問都在一個(gè)節(jié)點(diǎn)中完成,所以與共享總線 架構(gòu)為了獲得可比較性能而必須針對其共享總線提供的帶寬要求相比,節(jié)點(diǎn)通常針對網(wǎng)絡(luò) 具有低得多的帶寬要求。節(jié)點(diǎn)可以在高時(shí)鐘頻率和帶寬下操作,從而在需要時(shí)訪問網(wǎng)絡(luò)???以向網(wǎng)絡(luò)添加其它節(jié)點(diǎn)而不影響節(jié)點(diǎn)的本地帶寬。借助邏輯分區(qū),共享資源(被稱為"系統(tǒng) 管理程序"或分區(qū)管理器)管理邏輯分區(qū)并促進(jìn)將資源分配給不同邏輯分區(qū)。例如,分區(qū)管 理器可以將諸如處理器、工作站適配器、存儲(chǔ)設(shè)備、存儲(chǔ)空間、網(wǎng)絡(luò)適配器之類的資源分配 給各分區(qū),以便支持每個(gè)邏輯分區(qū)以與單獨(dú)物理計(jì)算機(jī)基本相同的方式進(jìn)行相對獨(dú)立的操 作。
[0014] 此外,在一個(gè)實(shí)施例中,大型數(shù)據(jù)庫和因特網(wǎng)交易應(yīng)用需要并行服務(wù)器,這些服 務(wù)器能夠在具有二十到一百個(gè)處理器或更多處理器的機(jī)器上運(yùn)行。此外,在一個(gè)實(shí)施例 中,以某種方式的并行編程可以涉及使用最低級別的鎖定。鎖是提供互相排斥的基元 (primitive),它們允許數(shù)據(jù)結(jié)構(gòu)保持處于一致狀態(tài)。在一個(gè)實(shí)施例中,如果沒有鎖定機(jī)制, 則執(zhí)行的多個(gè)線程可能同時(shí)修改數(shù)據(jù)結(jié)構(gòu)。如果沒有深思熟慮并且通常復(fù)雜的無鎖算法, 則結(jié)果通常是崩潰或掛起,因?yàn)檫M(jìn)入非預(yù)期程序狀態(tài)。因?yàn)闊o鎖算法的創(chuàng)建極其困難,所以 大多數(shù)程序都使用鎖。如果更新數(shù)據(jù)結(jié)構(gòu)緩慢,則選擇的鎖是某種類型的互斥(例如,互相 排斥)。當(dāng)這些線程阻塞時(shí),它們將控制轉(zhuǎn)移到操作系統(tǒng)。這允許當(dāng)?shù)谝粋€(gè)線程休眠時(shí),另 一個(gè)線程運(yùn)行并且可能取得進(jìn)展。這種控制轉(zhuǎn)移包括一對上下文切換,它們是相當(dāng)緩慢的 操作。因此,如果鎖持有時(shí)間預(yù)計(jì)很短,則這可能不是最快的方法。
[0015] 在一個(gè)實(shí)施例中,自旋鎖(spin-lock)操作可以用于并行操作,并且自旋鎖操作 可以與軟件鎖關(guān)聯(lián),程序使用軟件鎖以便確保每次只有一個(gè)并行進(jìn)程可以訪問存儲(chǔ)器的關(guān) 鍵區(qū)域。在一個(gè)實(shí)施例中,自旋鎖可以用于互相排斥。自旋鎖是這樣的鎖:其導(dǎo)致嘗試獲得 該鎖的線程簡單地在循環(huán)中等待("自旋"),同時(shí)反復(fù)檢查該鎖是否可用。因?yàn)榫€程保持活 動(dòng)但未執(zhí)行有用任務(wù),所以此類鎖的使用是一種忙等待。在獲得之后,自旋鎖可以被持有到 它們被顯式釋放,然而在某些實(shí)現(xiàn)中,如果正在等待(持有鎖)的線程阻塞或"轉(zhuǎn)到休眠", 則自旋鎖可以被自動(dòng)釋放。
[0016] 在一個(gè)實(shí)施例中,自旋鎖(例如,信號(hào)量(semaphore))可以被實(shí)現(xiàn)為變量或令牌, 該變量或令牌與指向數(shù)據(jù)結(jié)構(gòu)的共享指針關(guān)聯(lián),并且可由多個(gè)線程讀取以便判定指針當(dāng)前 是否由線程之一使用。每當(dāng)線程讀取指示沒有其它線程當(dāng)前正在使用指針的信號(hào)量時(shí),該 線程能夠?qū)⑿盘?hào)量設(shè)置為一個(gè)值,該值向所有其它線程指示指針當(dāng)前在使用中(被稱為 "獲得"信號(hào)量的過程)。因此,當(dāng)另一個(gè)線程希望訪問數(shù)據(jù)結(jié)構(gòu),但檢測到信號(hào)量由另外一 個(gè)線程持有時(shí),需要該線程一直等待,直到另外一個(gè)線程釋放信號(hào)量以便指示其它線程可 再次訪問指針(并且因此訪問數(shù)據(jù)結(jié)構(gòu))。在一個(gè)實(shí)施例中,在任何給定時(shí)間僅允許一個(gè)線 程持有信號(hào)量。
[0017] 此外,在一個(gè)實(shí)施例中,自旋鎖將"自旋"并且反復(fù)檢查以便查看鎖是否被解鎖,而 不是上下文切換。自旋非??焖伲虼私怄i-鎖定對之間的延遲很小。但是,自旋不完成任 何工作,因此如果花費(fèi)的時(shí)間變得很多,則可能不如休眠互斥高效。因此,本發(fā)明提供一種 解決方案,其1)通過在始終自旋的同時(shí)減少CPU周期的浪費(fèi),提高計(jì)算效率,并且2)如果 任務(wù)不能立即獲得鎖,則允許任務(wù)避免轉(zhuǎn)到休眠并且始終重新分派任務(wù)。
[0018] 因此,本發(fā)明用于在計(jì)算環(huán)境中通過至少一個(gè)處理器設(shè)備使用鎖定機(jī)制進(jìn)行高效 任務(wù)調(diào)度。在一個(gè)實(shí)施例中,僅作為舉例,如果針對鎖定機(jī)制
當(dāng)前第1頁1 2 3 4 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會(huì)獲得點(diǎn)贊!
1