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

在單處理器或多處理器計算機系統(tǒng)中優(yōu)化多任務應用的存入和重放的方法

文檔序號:6566522閱讀:977來源:國知局
專利名稱:在單處理器或多處理器計算機系統(tǒng)中優(yōu)化多任務應用的存入和重放的方法
技術領域
本發(fā)明涉及一種用于管理的方法,更具體地,涉及用于通過在計算機或 計算機網(wǎng)絡中執(zhí)行的多任務應用內(nèi)的一個或多個軟件任務的運行的外部、透
明的和非侵入(non-intrusive)的控制進行的管理的方法。本管理具體包括以 存入(logging)數(shù)據(jù)形式對這些任務的運行進行記錄(record),以及從這種 存入數(shù)據(jù)中重放該運行,以便呈現(xiàn)與存入時所獲得的那些數(shù)據(jù)相對應的行為 和結(jié)果。
本發(fā)明還涉及一種在管理所執(zhí)行的軟件應用的運作(functioning )中實現(xiàn) 這種方法的系統(tǒng)。
背景技術
實現(xiàn)關于所管理的應用的非侵入的、透明的運作管理是非常有用的,具 體地,用于使得能夠在其原始狀態(tài)("遺產(chǎn)(legacy)應用")并具有更大的靈 活性、或可靠性、或性能地來使用大量現(xiàn)有應用。
專利申請FR 04 07180中,相同申請人已經(jīng)提出了通過中間捕獲以及通 過在同步點或重啟點("檢查點,,)期間的應用狀態(tài)的恢復(restoration)進行 的非侵入運作管理技術。以補充方式,具體地,在專利申請FR 05 00605到 FR05 00613中,相同申請人已經(jīng)提出了非侵入存入和重放技術。
但是, 一個或多個事件的存入對于所存入的應用或執(zhí)行它的系統(tǒng)來說仍 然體現(xiàn)出工作量過大,且將它盡可能最小化是非常令人感興趣的。
在組成應用的執(zhí)行的事件中,那些具有與應用的狀態(tài)相對的非確定性行 為必須通過將它們的結(jié)果存儲到存入數(shù)據(jù)中來被存入和重放,用于在后面的 重放期間使能施行(force)或重新注入(reinject)該結(jié)果。因此,令人感興 趣的是,盡可能減少必須被當作非確定性的事件的數(shù)量。
例如,之前引用的應用中所描述的,應用或執(zhí)行它的系統(tǒng)外部的事件通 常具有本質(zhì)上非確定性的行為,且總體上必須被存儲。
如果來自運行部分的所有事件都是確定性的,則僅僅通過存儲應用的開 始狀態(tài),例如以重啟點的形式,就可以簡單地以經(jīng)濟的方式存入所有此部分。
然后,例如通過將應用恢復成如所存儲的重啟點狀態(tài),并通過啟動(launch) 這些確定性事件的執(zhí)行,來得到重放。然后可以使用包括僅由確定性事件組 成的確定性部分的組的術語"分段確定性執(zhí)行模型"。因此,總體上,由例如 最初的外部消息的到來以及最后的另 一 非確定性事件的非確定性事件構(gòu)成確 定性部分的邊界。

發(fā)明內(nèi)容
本發(fā)明的一個目的是簡化或優(yōu)化這種確定性部分的存入和重放。
以上所引用的某些文檔描述了(通過啟發(fā)式或預測式的壓縮)使能減少 存儲的計算成本的技術。其他則提出裝備能夠變?yōu)榉谴_定性的特定系統(tǒng)調(diào)用 例程,來使它們的行為為確定性。
但是,在最大量的內(nèi)部事件中,某些具有可能是非確定性或非確定性的 起因的行為,具體地,存取諸如共享存儲器區(qū)域或標記符(semaphore)或互 斥(mutex)的共享資源的內(nèi)部事件。
本發(fā)明的另 一個目的是減少在存入和/重放期間必須當作非確定性的事 件的數(shù)量。
另外,計算機結(jié)構(gòu)的特定類型可以包括有時是它們本身特性固有的非確 定性起因,具體地,有時被規(guī)定為物理或?qū)嶋H的并行性的并行結(jié)構(gòu)系統(tǒng)。
總體上這種并行環(huán)境被設計并用于從現(xiàn)有硬件元件中獲得大得多的計算 功率。時常,在考慮這個而從根本上設計的技術或科學的應用內(nèi),這應用于
進行繁重和復雜的計算。
可以通過在單個計算機內(nèi)集成多個處理器來產(chǎn)生這種環(huán)境,這將它所需 的計算工作分發(fā)給它們。有時也可以在網(wǎng)絡中合并和管理多個計算機,以便 于在它們之間共享特定的工作負載,而幾乎不或不受用戶干涉。
當這些不同的特定元件、處理器或計算機,能夠在同一時刻工作于隨后 將重新排序的不同任務時,使用例如與通過在多個虛擬工作區(qū)域中共享單個 元件的工作時間來才莫擬的并行相對(oppose)的術語物理并行性(physical parallelism )。
被附予(endow )物理并行性能力的包含多處理器或多計算機的現(xiàn)有環(huán)境,
通常被設計和優(yōu)化,以便獲得最大的整體計算功率。由于此,不同的元件盡
可能地分離地(decoupled)工作,且在它們之間具有非常少的協(xié)調(diào) (coordination )。
例如,由于成本或靈活性的原因,經(jīng)常尋求單獨或成組的微型計算機或 工作站,來替代大型的中央計算機。這種機器以多處理器版本存在,并行地 工作以獲得更大的功率,或被組合以便在網(wǎng)絡本身內(nèi)并行地工作,該網(wǎng)絡組 成與外界相對的單個并行工作環(huán)境,即,如與外界相對的單個響應者那樣行 為。
因此,令人感興趣的是使用這種并行環(huán)境來執(zhí)行不同的應用或比完全沉 重的計算應用更多變化的應用,具體地,在公司管理領域或工作站網(wǎng)絡或通 信網(wǎng)絡中普遍的事務型的多任務應用。這種應用通常具有更多變化的結(jié)構(gòu), 且通常包括在相同環(huán)境內(nèi)使用共享資源的多個任務。
但是,因為這些操作系統(tǒng)或這些應用被設計為單處理器機器,它們通常 不會被設計用于管理如物理并行性的情況那樣、在相同時刻實際執(zhí)行的兩個 任務之間的接口。因此,當在相同時刻執(zhí)行的多個任務必須存取單個數(shù)據(jù)("賽 跑情況(race condition)")時,由任務讀取的結(jié)果可以根據(jù)在該讀取前或后是 否由另 一任務進行了修改而變得非常不同。
而且,大多數(shù)多任務操作系統(tǒng)沒有被相像用于管理以實際并行方式工作 的環(huán)境,且甚至更少用于以直接存取的方式管理共享資源。在共享存取的類 型中,通過從程序指令尋址(address )而可存取的那些,諸如由"映射(map )" 類型的指令來初始定義的共享的存儲器區(qū)域,可以被規(guī)定(qualify)為直接 存取。
相對于需要系統(tǒng)調(diào)用的其他共享資源,諸如用諸如"打開"、"讀取"或 "寫入"的系統(tǒng)調(diào)用來傳遞"管線(pipe)"或"套接字"類型的消息的資源, 由并行的多個任務通過直接存取而對這類共享資源的存取通常很少或根本不 由系統(tǒng)軟件來管理。因此,對通過直接存取來存取共享資源的管理通常幾乎 全部是并行環(huán)境中應用的任務。
因此,本發(fā)明的另一個目的是便利于或優(yōu)化存入和重放功能的實現(xiàn),且 減少并行環(huán)境中非確定性的起因,具體地,對于多任務應用。
在冗余結(jié)構(gòu)的運作管理的情況中,本發(fā)明的另一個目的是使并行環(huán)境中 執(zhí)行的多任務應用的運作可靠。
從這些技術開始,本發(fā)明提出在系統(tǒng)軟件內(nèi)管理至少兩個應用任務的運 作,該系統(tǒng)軟件在被賦予包括能夠在至少兩個算術單元中同時執(zhí)行多個應用
任務的計算裝置的并行結(jié)構(gòu)的計算機系統(tǒng)中按順序激活(activation)來管理 所述任務的執(zhí)行。對于存取至少一個共享資源的這種應用任務,該方法一方 面包括以下步驟
-存入在第一算術單元中的一個或其他這些任務的激活時期的第一系列 (succession); 以及
-存入在第二算術單元中的一個或其他這些任務的激活時期的第二系
列;
-以及響應于對所述目標資源的存取請求,對于所述任務中的所謂存取 任務,存入對所述目標資源被稱為排他的存取的屬性的系列,即,在對于存 取的所述請求之后緊鄰的存取任務的激活時期的全部剩余期間中,通過這些 任務的另 一個來對所述目標資源排除任何存取的屬性。
另一方面,本方法還包括以被稱為重放編序(serialisation)的順序結(jié)構(gòu) 來合并表示每個算術單元中激活時期的系列的存入數(shù)據(jù)與表示所定性 (attributed)的排他存取的系列的存入數(shù)據(jù)。安排該合并以維護相對于所述 共享資源且在每個任務內(nèi)的激活時期的系列的順序。
根據(jù)本發(fā)明,可以在重放計算機系統(tǒng)中使用重放編序數(shù)據(jù),用于重放所 存入任務的所存入運行。
另外,本發(fā)明可以包括在存入期間、在重放計算機系統(tǒng)內(nèi)、對所存入任 務可存取的軟件資源的所有或部分虛擬化。
因此,根據(jù)本發(fā)明的方法可以在例如構(gòu)成由一個或多個中間件類型的運 作管理應用所管理的集群的網(wǎng)絡的計算機網(wǎng)絡中的至少一個節(jié)點內(nèi)實現(xiàn)。因 此,本方法使得能夠擴展或優(yōu)化該運作管理的性能和功能,具體地通過指令 序列的存入和重放。
在相同的上下文中,本發(fā)明還提出應用于一個或多個并行類型或構(gòu)成并 行系統(tǒng)的計算機系統(tǒng)、且可能用于網(wǎng)絡的實現(xiàn)該方法的系統(tǒng)。
因此,根據(jù)本發(fā)明的方法可以在例如構(gòu)成由一個或多個中間件類型的運 作管理應用所管理的集群的網(wǎng)絡的計算機網(wǎng)絡的至少一個節(jié)點內(nèi)實現(xiàn)。因此, 本方法使能擴展或優(yōu)化該運作管理的性能和功能,具體地,通過指令序列的 存入和重放。
在相同的上下文中,本發(fā)明還提出應用于一個或多個并行類型或構(gòu)成并 行系統(tǒng)的計算機系統(tǒng)、且可能用于網(wǎng)絡中的實現(xiàn)本方法的系統(tǒng)。


本發(fā)明的其他特征和優(yōu)點將從實施例的詳細描述而變得明顯,但這決不
是限制,附圖中
圖1和2圖示了根據(jù)本發(fā)明的、通過對任務計數(shù)而進行的處理器內(nèi)任務 執(zhí)行的調(diào)度(scheduling)的存入;
圖3和4圖示了根據(jù)本發(fā)明的、通過對處理器中的指令計數(shù)而進行的任 務的激活時期的重放;
圖5圖示了根據(jù)本發(fā)明的、從處理器中的任務調(diào)度的、通過計數(shù)指令的 存入中獲得的在單處理器系統(tǒng)中的多任務應用的確定性重放;
圖6是根據(jù)現(xiàn)有技術的、在由來自單一環(huán)境的兩個不同處理器并行執(zhí)行 的兩個任務之間共享的存儲器的存取的運作的圖示;
圖7圖示了根據(jù)本發(fā)明的、在任務內(nèi)的、使能在來自單一環(huán)境的各個不 同處理器上并行執(zhí)行的多個任務之間共享的存儲器頁的存取控制的結(jié)構(gòu)的創(chuàng) 建和維護;
圖8圖示了根據(jù)本發(fā)明的、由來自單一環(huán)境的兩個不同處理器上并行執(zhí) 行的兩個任務所共享的存儲器頁的存取控制的運作;
圖9圖示了根據(jù)本發(fā)明的、多處理器計算機上的多任務應用的存入、和 單處理器機器上的它的逐步(onthe flow)重放。
具體實施例方式
這里描述的技術對應于使用在PC型的計算機中使用的類型的處理器的 某種特征的本發(fā)明的實施例,例如,來自AMD公司的Athlon型處理器或者 來自英特爾公司的奔騰(Pentium)處理器。例如在工作站中使用的其它現(xiàn)有 處理器,或未來的處理器,當然可以呈現(xiàn)全部或部分的這些特性或相似的特 性,并且可以被使用以實施本發(fā)明。
圖1至2呈現(xiàn)了用于存入由單yProX處理器或算術單元連續(xù)執(zhí)行的確定 性內(nèi)部事件的不同部分的技術。
如圖1中所圖示的,可以由調(diào)度器SCH連續(xù)啟動的被稱為激活時期Schl
至Sch3的部分來執(zhí)行不同的任務TA和TB,其形成管理這些交替或交織的 被稱為上下文管理器的系統(tǒng)代理的部分。
在計算機系統(tǒng)或處理器內(nèi)執(zhí)行的不同任務中,某些可能是尋求管理的那 一個應用的部分,且將被規(guī)定為"被監(jiān)視的"任務。這些任務由在任務描述 符中通常不被使用的數(shù)據(jù)位的狀態(tài)(置為1 )來標識,這里被稱為管理位MmA 或MmB (見圖7)。被監(jiān)視的任務和其它不被監(jiān)視的任務可以在處理器中執(zhí) 行的激活時期的系列內(nèi)交替。
對于其在圖2中用字母"m"標記的被監(jiān)視的任務TA和TB,選擇激活 時期以便于它們僅由確定性事件組成。由一個或多個存入軟件代理定義這些 確定性時期。該存入代理可以包括在計算機系統(tǒng)的用戶存儲器空間中執(zhí)行的 元件,作為運作管理應用的任務。該存入代理還可以包括或使用在系統(tǒng)軟件 中、例如在調(diào)度器中修改或添加的元件。
因為應用的大多數(shù)事件是內(nèi)部事件,并且它們中的很多都是確定性的, 所以每個被管理的任務的大部分由確定性事件組成。每次當不確定性事件發(fā) 生時,存入代理結(jié)束(close)確定性時期。然后可能以未監(jiān)視的任務的形式 執(zhí)行所檢測到的非確定性事件,且用根據(jù)已知方法得到的其結(jié)果來存入該非 確定性事件。當完成該非確定事件時,存入代理定義新的確定性部分的開始, 并再次啟動指令的計數(shù)。
在確定性激活時期以外,或在內(nèi)核(kernel)模式KLv中的執(zhí)行時期Kl 或K2中的示例,即,當處理器特權模式處于值0,相對于用戶模式UIv的值 3,執(zhí)行非確定性事件的存入及可能的處理。
為了能夠以與存入時相同的方式重放每個激活時期,本發(fā)明對當存入時 該確定性部分期間所執(zhí)行的指令進行計數(shù)。在后面的這些任務的重放RSCH (見圖3和4)期間,該所存入的部分從而只需要從與存入時相同的狀態(tài)來 啟動,使它自己執(zhí)行直到與存入時由相同部分所執(zhí)行的用于相同任務的指令 數(shù)量精確地對應的數(shù)量的重放指令。因此無需任何干涉而實施該重放,使得 結(jié)果處于確定性部分內(nèi),因為后者僅包含確定性事件。
當確定性部分延展至由調(diào)度器建立的多個激活時期時,這些激活時期的 每個包括該確定性部分的部分,其可以自己被作為完整的確定性部分處理。 在本說明書的剩余部分,將僅描述確定性激活時期的存入,但明顯的是,多 個確定性激活時期可以在單一確定性部分中相繼跟隨。
根據(jù)本發(fā)明,確定性激活時期的指令的這種計數(shù)使用例如來自于英特爾 公司的奔騰家族的奔騰2以后的目前作為大量處理器中現(xiàn)有硬件特征的性能 和監(jiān)視計數(shù)器。提供該性能和監(jiān)視計數(shù)器,以便在持續(xù)時間中或在多個事件 中來測量處理器的運作,而且,通過對其值進行周期性采樣,其被主要用于
測量性能,例如為了實施應用概略(profile )的統(tǒng)計分析。處理器制造商還指 出,這些性能計數(shù)器沒有受保障的精確度,且其必須被用于對于優(yōu)化應用的 相關(relative)或差別(differential)測量。
本發(fā)明提出使用該性能計數(shù)器PMC的一個特征,也就是,被稱為退休的、 即被解決的或已剩下而要被執(zhí)行的指令列表的指令的計數(shù),其獨立于能夠具 有由于性能原因而提前執(zhí)行的特定指令的各種推測(speculative )或緩沖技術。
但是,該退休指令的計數(shù)呈現(xiàn)出從英特爾和AMD公司的文檔中描述的 一定限制特征。這些特征之一是對于該計數(shù)器的讀取指令("RDPMC")沒有 直接集成在要被解決的指令中,其在本發(fā)明中對該計數(shù)器的使用沒有直接的 因果關系。
另一方面,其他兩個限制特征可能引起用于存入和重放的指令的計數(shù)不 精確,且應該予以考慮。
能構(gòu)成障礙的第四個特征是這樣一個事實,即由計數(shù)器溢出帶來的執(zhí)行 的中斷可能發(fā)生在導致該溢出的指令以后特定的延遲。
這些不精確性限制涉及, 一方面,如果在解決之前被中斷則可能計數(shù)兩 次的某些復雜指令的情況,以及另一方面,具有可能導致指令不計數(shù)的硬件 中斷的指令的情況。為了克服這種不精確性,本發(fā)明使用補充的確認技術, 其使能消除關于精確確定激活時期結(jié)束的懷疑。
如圖1所圖示的,在y ProX處理器中執(zhí)行的確定性激活時期的系列Schl 、 Sch2和Sch3,被存入并記錄在存入文件J ja ProX中。
在處理器正執(zhí)行所監(jiān)視的任務TA的存入的激活時期Sch3期間,對計數(shù) 器PMC的值UICX的一個或多個讀取RDPMC提供退休的指令的數(shù)量NJ3。 在該時期NJ3的暫停(suspension)(結(jié)束Sch3 )時,存入代理JSCH使用由 任務TA和其上下文的狀態(tài)輸出的一個或多個狀態(tài)數(shù)據(jù)項目,來計算以足夠 單意的方式表示該狀態(tài)的一個或多個數(shù)據(jù)項目,用于消除可能存在的關于該 激活時期Sch3期間執(zhí)行的指令的精確數(shù)量的懷疑。該狀態(tài)數(shù)據(jù)構(gòu)成對應于該 時期結(jié)束(結(jié)束Sch3 )的記號(signature ) SG3。該記號具體地包括在該時期
的最后指令之后緊鄰的指令指針的精確值IPJX3,即在任務TA的4丸行中最后
執(zhí)行的程序指令的位置的精確標識。該記號還包括根據(jù)在來自在該暫停(結(jié)
束Sch3 )上的任務TA的上下文的寄存器RefDG和調(diào)用桟Pile (堆)JX3中 讀取的值所計算的控制數(shù)據(jù)("校驗和")。
對于每個所存入的時期SchJ (圖3 ),該處理器的日志JjaProX從而具體 地包括與下列相關的行(line):
-在該時期中執(zhí)行的任務TJ的標識idJ,例如該任務的"PID";
-由計數(shù)器PMC所發(fā)送的撤銷指令NJ的數(shù)量值;
-對于該時期的結(jié)束所計算的記號SGJ。
因此,對于圖1所圖示的任務TA然后TB然后TA的系列,處理器|u ProX 的曰志J )iProX包括下列連續(xù)行 "idA: NJ3: SG3 idB: NJ2: SG2 idA: NJ1: SGI"
如圖2所圖示的,在給出的uProX處理器內(nèi),所存入的應用APPJ的存 入的不同任務的系列還可以最初被存入代理JSCH傳輸?shù)紽IFO("先進先出") 類型的存入隊列QJ)aProX?;蛘咄ㄟ^本地MEM,或者通過到另一節(jié)點或備 用站或外圍設備的傳輸TRAN,由存入存儲任務TJ jLt ProX來讀取在該隊列的 輸出的存入行,該存入存儲任務TJ ja ProX在該處理器的日志J ji ProX中以排 序的方式初始化這些行的存儲。使用這種存入隊列具體地用作緩沖器區(qū)域, 以便規(guī)范存入數(shù)據(jù)流,且避免干擾所存入的應用或執(zhí)行該存入的應用。
在全局結(jié)構(gòu)的情況下,即,存入數(shù)據(jù)隨著它的發(fā)生而逐步傳輸?shù)街胤畔?同運行的例如在備用機器上的另一應用,以便實施具有容錯性和連貫性的服 務的運作,特別希望這種益處。
在該計數(shù)技術中,優(yōu)點在于使用系統(tǒng)調(diào)用指令作為對于指令的計數(shù)的同 步點。因此,這包含利用系統(tǒng)調(diào)用例程,以便它們使系統(tǒng)調(diào)用計數(shù)器遞增。 因此,由硬件計數(shù)器PMC對指令的計數(shù)可以在持續(xù)低的值上工作,這改善了 它的性能。
圖3和4呈現(xiàn)了在重放處理器uProZ中所存入時期SchJ的重放技術。圖 3代表處理器內(nèi)重放的任務TR的最近狀態(tài)TR1到TR4。圖4代表用于實施 這種重放的方法的流程圖。依賴于實施例或使用參數(shù),根據(jù)如對于不同的重
放處理器來說相同的原理,還可以在與存入相同的處理器中進行重放,例如 對于應用跟蹤類型的運作管理。
在這種重放期間,例如,由調(diào)度器SCH調(diào)度的、可能被修改以便包括重
放代理RSCH的激活時期,進行中的任務TJ用所述處理器中其上下文來恢復, 然后此任務被釋放41,其執(zhí)行被啟動。
為了能夠在不同于進行存入的重放計算機系統(tǒng)的重放計算機系統(tǒng)中被恢 復和執(zhí)行,任務或應用可存取的所有或部分資源必須凈皮虛擬化,即,例如以 虛擬的方式被實例化或再造,以便顯得如同以與存入時相同的方式重放的應 用。通常包含的項目是用于線程TIP或處理PID的任務標識符、與由應用存 取的并依賴于主機系統(tǒng)的多數(shù)資源。根據(jù)在此存入期間所存儲的數(shù)據(jù),在重 放的〗壬務或應用的起初進行該虛擬化,并在重放期間^修改該虛擬化,以^更以 與存入期間相同的方式改變。
優(yōu)點在于,以內(nèi)核模式進行該虛擬化,這具體地使能避免性能計數(shù)器 PMC將虛擬化的操作考慮進指令的計數(shù)中。
來自英特爾公司的文檔指出,由于硬件中斷帶來的錯誤被限制于+1或-1 個指令的相對誤差。對于包括至多一個單一硬件中斷、即導致其終止的中斷 的存入確定性時期,監(jiān)視需要考慮計數(shù)器PMC的兩個值重放時期開始時的 值和在監(jiān)視點的值。因此,最大相對誤差是+2或-2個指令。
貫穿對于所存入的任務TJ的重放的重放任務TR的執(zhí)行,重放代理RSCH 通過讀取RDPMC實施重放的處理器p ProZ的計數(shù)器PMC,且通過比較該讀 取與對應于該存入的任務TJ的存入數(shù)據(jù)IdJ、 NJ、 SGJ,來監(jiān)視退休的指令 的數(shù)量。安排該監(jiān)視以便一旦到達了在該重放執(zhí)行中的其順序值等于NJ-2的 指令,則中斷重放任務TR的執(zhí)行。例如通過編程,使在期望值的計數(shù)器PMC 溢出,來完成該中斷。
由于上述的第四個限制特征,可以通過以一定空白(margin)對該溢出 進行編程41(圖4),來補償在溢出和中斷之間的延遲時間的存在,以便確定 在期望值NJ-2之前產(chǎn)生中斷??梢酝ㄟ^實^r來確定該空白,例如可以是50 個指令的順序。
因此在NJ-50和NJ-2之間的指令數(shù)量時中斷重放時期SchR的初始沖丸行。 然后,在重放任務TR的執(zhí)行中,重放代理RSCH在與存儲在記號SGJ中的 指令指針的值IPJ對應的程序指令BKI上設置42執(zhí)行斷點BK。然后,重新
啟動該執(zhí)行,直到由該斷點BK帶來中斷43,持續(xù)地檢驗44來自計數(shù)器PMC 的指令的數(shù)量,直到重放指令的數(shù)量大于或等于所存入的指令的數(shù)量-2個指 令,即NR〉NJ-2。
因此,存入時期SchJ的實際結(jié)束的精確位置位于四個隨后的單式指令執(zhí) 行InstrO到Instr3,具有各自的順序值NJ-1到NJ+2,即,在被包括在相比于 該相同時期SchJ的暫停終點的位置NJ的-2和+2之間的相對位置。
在隨后的單式指令執(zhí)行Instrl到Instr4之后,確認階段40 (圖4 )然后通 過比較記號SGJ與、從重放任務TR的狀態(tài)TR1到TR4以相同方式計算的值 SG1到SG4 (圖3 ),來使能確定該實際位置。
在該確認階段的開始時,重放代理在先前的監(jiān)視所導致的中斷之后,立 即檢查45根據(jù)重放任務TR的狀態(tài)所計算的重放記號SGR的值SGO。
根據(jù)本發(fā)明,如果記號SGJ和SGO不對應,則任務TR的執(zhí)行重新啟動, 并在該斷點指令BKI的第一個新執(zhí)行TR2時停止46。
但是,可能存在關于該新的停止位置TR2的懷疑,例如,如果存入任務 TJ通過在暫停之前多次執(zhí)行該斷點指令BKI已經(jīng)實施了很短的循環(huán)。在該斷 點指令BKI上的執(zhí)行的每個停頓TR2、 TR4時,重放代理再次核實47記號 SGJ和SGR的匹配,且重新啟動執(zhí)行,直到獲得該匹配。當記號對應(此例 中SG^SG4)時,意味著斷點指令BKI的最后執(zhí)行Instr4對應于在存入時期 SchJ中所存入的最后操作。然后,該重放代理結(jié)束48該重放時期SchR。
本發(fā)明還設想了安全機制,例如在一定數(shù)量的指令的特定執(zhí)行后,例如 在8個單式指令執(zhí)行結(jié)束時,為了避免錯誤情況下的無限循環(huán),檢驗49中斷 重i欠TR并返回401重i欠錯誤。
為了重放多個存入時期,例如,在重放對應于存入應用APPJ的重放應 用APPR (圖5 )時,重放代理RSCH連續(xù)地讀取日志J jli ProX的不同行,并 使用這些的每個,以便重放對應于進行中的行的激活時期。
如圖5所圖示的,通過在重放處理器!LiProZ中執(zhí)行的日志讀取任務Tju ProZ,該日志J jli ProX的不同行直接TRANS接收或本地MEM讀取。
然后,將每個對應于存入時期的該日志JjaProX的所有行以它們存入的 順序傳輸?shù)紽IFO類型的重放隊列QJjuProZ。在該隊列的輸出,重放代理 RSCH使用這些日志行的每個,來使得它代表的時期由與存入任務TA、 TB 和TC對應的重放任務TA,、 TB,和TC,重放。
為了重放處理器U ProZ內(nèi)實施這些時期的調(diào)度,在存在于無語義 (semantic)變化的標準系統(tǒng)軟件中時,重放代理RSCH使用調(diào)度器SCH的 運作。該方面具體地使能維護與相同處理器中執(zhí)行的其他TNM任務的兼容 性。為了獲得與存入時相同的調(diào)度,無需干擾調(diào)度器SCH的正常運作,重放 代理RSCH在其自身內(nèi)充實阻止55b、 55c每個重放任務TB,、 TC,的釋放 (release ),只要它們的標識符TID或PID不對應于存儲在必須重放的行中的 標識符idA。
用于存入和重放確定性時期的這些技術使能優(yōu)化在一個或多個單處理器 計算機內(nèi)的如上所引用的申請中描述的運作管理應用的性能和功能。
在并行結(jié)構(gòu)的情況下,諸如多處理器計算機或包括多個并行工作的計算 機的網(wǎng)絡,多個任務可存取的共享資源的使用增加了非確定性起因,其可能 出現(xiàn)在該運作管理的上下文中顯著的性能損失的源頭,或甚至不可能完成特 定重要和有用的功能。
為了消除非確定性的這些起因的全部或一些,本發(fā)明提出方法,其使能 管理或控制對共享資源的存取,具體地,直接存取資源,以便每個任務在其 由系統(tǒng)激活的整個時期都可以獲得對共享資源的排他存取。
在圖6中,圖示了并行多處理器環(huán)境的運作示例,其包括在多處理器環(huán) 境例如Linux型系統(tǒng)中的第一處理器|i ProX和第二處理器p ProY。這兩個處 理器每個在單一工作存儲器空間RAM中分別執(zhí)行并行的任務TA和TB,且 由調(diào)度器來協(xié)調(diào)。在每個任務TA和TB的激活時期期間,來自其程序EXEA、 EXEB的指令序列SchA、 SchB將在處理器y ProX、 jj ProY中執(zhí)行。在來自 該序列的指令InstrA、 InstrB的執(zhí)行期間,處理器將能夠使用其內(nèi)部資源,諸 如寄存器RegA、 RegB,棧PilA、 Pi舊。
在工作存儲器RAM中,許多共享存儲器區(qū)域ShMPi到ShMPk例如由"映 射,,類型的指令定義,且其可通過它們的物理地址直接從不同任務TA和TB 存取。
圖6圖示來自現(xiàn)有技術的情況,任務TA和TB在普通時期中并行執(zhí)行, 且每個包括請求存取單一共享存儲器區(qū)域ShMPi的指令InstrA和InstrB。這 兩個存取請求將由每個處理器的存儲器管理器單元MMU以獨立方式處理 11、 13,且將彼此獨立地到達12、 14該共享存儲器區(qū)域。
對于僅從系統(tǒng)調(diào)用類型的特定指令中可存取的資源,可能利用實施這些
指令的系統(tǒng)例程,即,修改這些例程或向系統(tǒng)插入截取或應對(react)這些 系統(tǒng)調(diào)用的元件。在通過存入和重放進行的運作管理的上下文中,該利用可 以具體地使能記錄它們的行為,以便能夠以后同樣地重放它,或修改該行為 以便它變成確定性的且不需要被記錄。
相反,對于不用系統(tǒng)調(diào)用而直接可存取的資源,因此,潛在地從任何程 序指令,大多數(shù)操作系統(tǒng)和具體地Unix或Linux型的那些,不能在該共享存 儲器區(qū)域ShMPi級控制這些存取的到達。
為了解決該問題,如圖7和8所圖示的,本發(fā)明提出修改特定系統(tǒng)軟件 元件的代碼,或增加特定的其他元件,以便于修改或擴展目前用于其他功能 的特定的現(xiàn)有硬件功能。
具體地,可以通過修改Unix或Linux型的系統(tǒng)軟件的小數(shù)量元件來解決 該問題,而不需要修改現(xiàn)有處理器的硬件特征。因此,可以使用普通型的機 器,因此經(jīng)濟且耐用,以便通過對現(xiàn)有系統(tǒng)軟件帶來增加了功能而沒有妥協(xié) 于它們的向上兼容性的僅少量修改,來執(zhí)行和管理略微修改或未修改的多任 務應用。
本發(fā)明用于存在于多個近來的微處理器的該特定機制,所述微處理器諸 如用在PC型結(jié)構(gòu)中的處理器,例如,來自英特爾公司的奔騰處理器、或來 自AMD公司的Athlon。這些處理器,具體地,自從奔騰2以來,在它們的 存儲器管理單元中集成了虛擬存儲器管理機制。該機制被用于在硬盤上"卸 載"當它們不用時被定義在工作存儲器中的特定頁,且在那里存儲它們以釋 放物理存儲器內(nèi)的相應空間。對于現(xiàn)有的運行應用,這些頁仍然被列于工作 存儲器中,但它們必須在物理存儲器中從硬盤再次"裝載",以便任務可以實 際地存取它。
為了管理該虛擬存儲器,如圖8所圖示的,該系統(tǒng)軟件包括虛擬存儲器 管理器VMM,其為可虛擬化的存儲器的每頁創(chuàng)建每個不同應用處理中的頁 表入口 ("P.T.E.")。因此,對于每個以處理的形式、即用專屬它的執(zhí)行上下 文來執(zhí)行的兩個任務TA和TB,頁ShMPi到ShMPk的每個將得到任務TA 的處理中的頁表入口 PTEiA到PTEkA,以及任務TB的處理中的頁入口表 PTEiB到PTEkB。
虛擬存儲器管理器VMM包括頁裝載器軟件PL,其裝載或卸載存儲器頁 到^Jt上的"交換(swap)"文件,例如來自^t軟^^司的Windows系統(tǒng)中帶有擴展名".swp"的文件。在ShMPi頁的每個裝載或卸載期間,在物理存儲 器中它存在或不存在的狀態(tài)由VMM管理器在對應于它的頁表入口 PTEiA和 PTEiB的每個中被存儲并維護30。在這些表PTEiA和PTEiB中,該存在狀 態(tài)分別以數(shù)據(jù)位PriA和PriB的形式存儲,值1用于存在,值0用于不存在。
在每個處理器ja ProX和|a ProY中,存儲器管理器MMUX或MMUY包 括頁錯誤中斷機制PFIntX或PFIntY,通過其傳遞從執(zhí)行的程序指令InstrA或 InstrB引起的任何存取請求。如果來自由處理器ju ProX執(zhí)行的任務TA的指 令InstrA請求33關于存儲器頁ShMPi的存取,則處理器的中斷機制PFIntX 通過讀取相應的入口表PTEiA中其存在位PriA的值,來核實該頁是否存在于 物理存儲器RAM中。
如果該位PriA指示該頁的存在,則中斷機制PFIntX授權該存取。在相 反的情況中,該中斷機制PFIntA中斷任務TA的執(zhí)行,并向包含于系統(tǒng)軟件 的虛擬存儲器管理器VMM中的"頁錯誤處理器"軟件代理PFH傳輸錯誤的 參數(shù)。然后該錯誤處理器PFH在系統(tǒng)軟件中且相對于應用而被執(zhí)行,并管理 該錯誤的后果。
圖7圖示了根據(jù)本發(fā)明、這些現(xiàn)有機制如何被修改并調(diào)整或轉(zhuǎn)移,以便 管理對共享資源的存取。
為了管理來自于在這種并行環(huán)境中執(zhí)行的應用APP的這些存取,如圖7 所圖示的,啟動器軟件LCH被用于啟動該應用的執(zhí)行,例如在Unix或Linux 型的系統(tǒng)中。在它啟動時,以包括執(zhí)行"線程"ThrAl并使用形成任務描述 符TDA的數(shù)據(jù)表的處理的形式,用第一任務TA來創(chuàng)建應用APP。
在該任務描述符TDA中,啟動器存儲21如下事實,即通過修改通常不 用的數(shù)據(jù)位、這里被稱為管理位MmA的狀態(tài)為1,使得該任務TA必須被管 理,或"監(jiān)視"。
在工作存儲器中的不同的共享資源區(qū)域,這里規(guī)定為共享存儲器頁 ShMPi、 ShMPj和ShMPk,被列于在形成頁存儲器結(jié)構(gòu)PMStrA的數(shù)據(jù)表中 的任務TA中。在該結(jié)構(gòu)PMStrA中,共享頁以頁表入口 PTEiAl到PTEkAl 的形式一皮描述并4皮更新,每個頁表入口 PTEiAl到PTEkAl合并了由前述虛 擬存儲器管理器VMM使用的數(shù)據(jù)位PriAl到PrKAl。典型地,該頁結(jié)構(gòu) PMStrA以與任務TA相同的時間被創(chuàng)建,并伴隨著共享存^f諸器中的任何改變, 通過確保這些改變的不同系統(tǒng)例程,諸如"映射"類型的例程,而更新20。
在執(zhí)行所管理的應用APP期間,通過"創(chuàng)建,,類型的指令CRE,可以從 該第一任務TA或從以相同方式創(chuàng)建的其他任務中創(chuàng)建其他任務。所創(chuàng)建的 任何新任務TB還包括線程ThrBl和任務描述符TB、以及頁存儲器結(jié)構(gòu) PMStrB。通過來自其親(parent)任務的繼承關系,新的頁存儲器結(jié)構(gòu)PMStrB 還包括帶有其存在位PriBl到PrkBl的不同頁表入口 PTEiBl到PTEkBl,其 以相同方式一皮維護更新。
在從監(jiān)視的任務TA創(chuàng)建CRE新任務TB時,新任務描述符TDB還包括 管理位MmB,其值從來自親任務的管理位MmA的值繼承INH。
在執(zhí)行所管理的應用APP期間,可以在以單線程ThrBl的處理的形式初 始地運作的任務TB內(nèi)創(chuàng)建其他線程。
在現(xiàn)有和監(jiān)視的任務TB中,由諸如"復制(clone )"指令的系統(tǒng)調(diào)用來 創(chuàng)建任何新的線程ThrB2。典型地,以多線程處理的形式的任務僅包括在其 頁結(jié)構(gòu)PMStrB中的一組入口表PTEiBl到PTEkBl。根據(jù)本發(fā)明,能夠創(chuàng)建 諸如"復制"系統(tǒng)調(diào)用的新線程的任何系統(tǒng)例程的運作例如通過將補充部分 CSUP集成其中而被修改。該修改被設計,以便現(xiàn)有任務TB中的新線程ThrB2 的任何創(chuàng)建包括與相同的共享頁ShMPI到ShMPk相對應、并特別地用新線 程ThrB2來運作的現(xiàn)有的一組表PTEiBl到PTEkBl的讀取22和新的一組頁 表入口 PTEiB2到PTEkB2的創(chuàng)建23 。例如,如在來自相同申請人的專利FR 2 820 221中所描述的,可以用通過裝載系統(tǒng)內(nèi)共享庫的動態(tài)插入技術的這些 例程CLONE的使用來進行該修改。
以確保新表PTEiB2到PTEkB2以與它們的親表PTEiBl到PTEkBl類似 的方式也被維護更新24、 25的方式,或者通過在管理該更新的系統(tǒng)例程MAP 中注冊它們用于更新,或者還通過利用這些系統(tǒng)例程MAP,例如通過將補充 部分MSUP集成到它們中,來進行該創(chuàng)建。
圖8圖示了用應用于包括在兩個處理器juProX和jaProY中并行執(zhí)行的 兩個單線程任務TA和TB的示例的這種結(jié)構(gòu)的存取管理的運作。應該注意,
相同的方式管理來自屬于監(jiān)視任務的所有線程的任何存取,不論它們是單線 程還是多線程。
在這里所描述的實施例中,安排根據(jù)本發(fā)明的存取管理,以便在處理TA 或TB方面以及在每個線程ThrBl和ThrB2方面,對每個任務保證在整個激活時期持續(xù)時間中排他地對共享存儲器頁的存取,在該激活時期期間由系統(tǒng) 軟件來保證它們的一致性(連貫性)。這里描述這種時期作為由系統(tǒng)軟件的調(diào) 度器SCH所分配并管理的激活時期。清楚的是,可以以相同的精神選擇其他 類型的一致時期。 '
而且,在這里,以被定義為特定存儲器區(qū)域或存儲器頁的共享存儲器的 形式描述管理或控制對其的存取的共享資源。還可以通過類似地利用對應于 它們的系統(tǒng)例程,來將相同的概念應用到其他類型的資源。
本發(fā)明的實現(xiàn)可以包括系統(tǒng)軟件的某些元件的修改,以便它們?nèi)缦滤?述地運作。修改的必要級別當然可以依賴于系統(tǒng)軟件的類型或版本而改變。
在Linux類型的系統(tǒng)情況下,這些修改通常包括如前所述的"復制"和"映 射"類型例程的利用、以及在產(chǎn)生調(diào)度器SCH、頁錯誤處理器PFH和頁裝載 器PL的代理內(nèi)的修改和代碼增力口。要被修改以產(chǎn)生這里描述的存取控制的類 型的系統(tǒng)功能,相比于標準系統(tǒng)的功能來說可以優(yōu)勢地構(gòu)成完全的擴展,即, 無需消除功能或至少無需妥協(xié)于與針對標準系統(tǒng)版本所開發(fā)的應用的向上兼 容性。
另外,雖然使用在用于虛擬存儲器管理的處理器中設想的硬件機制,所 描述的存取控制可以不必然需要該虛擬存儲器的失活(deactivation),且可以 與它兼容。例如,頁裝載器PL可以被利用或修改,以便于如果已經(jīng)由另一任 務TA使用了該頁ShMPi,對于虛擬頁ShMPi的物理存儲器RAM的裝載不 由監(jiān)視的任務TB反映在該頁的存在位PriB中。
如圖8所圖示的,在一個其激活時期SchA的開始時,在時刻SCHAL, 調(diào)度器SCH釋放任務TA。在釋放該任務之前,調(diào)度器SCH檢測31該任務 TA的管理位MmA來建立是否必須對它應用存取控制。如果是這種情況,則 調(diào)度器SCH將32與由該存取控制所涉及的所有共享頁相對應的頁表入口 PTEiA到PTEkA的所有存在位PriA到PrkA設為0,使得由該任務TA進行 的任何存取請求都默認地導致對于其中該任務TA將能夠被執(zhí)行的所有處理 器|i ProX中的中斷機制PFIntX中的頁錯誤。
在處理器M ProX內(nèi)的該激活時期SchA期間,指令InstrA請求33對共享 存儲器頁ShMPi的存取。因為相應的存在位PriA處于0,因此,處理器jaProX 的中斷機制PFIntX暫停該存取請求的執(zhí)行,并調(diào)用系統(tǒng)軟件的頁錯誤處理器 PFH,與此同時將它傳輸?shù)巾摵瓦M行中的任務的標識。
當處理該錯誤時,頁錯誤處理器PFH的補充功能PFHSUP因而在形成系
結(jié)構(gòu)")代理的數(shù)據(jù)表中實施檢測和/或修改。
典型地,該內(nèi)核存儲器結(jié)構(gòu)KMStr以單意的方式為所有工作環(huán)境、或所 有工作存儲器存儲代表存儲器資源的結(jié)構(gòu)和它們的發(fā)展的數(shù)據(jù)。根據(jù)本發(fā)明, 該內(nèi)核存儲器結(jié)構(gòu)KMStr還包括一組數(shù)據(jù)位,此處被稱為存取位KSi、 KSj 和KSk,其對于進行中的共享頁ShMPi到ShMPk的每個代表這樣的事實, 即,對于任務,對該頁的存取目前被準予(位為1)或不被準予(位為0)。
當頁錯誤處理器PFH處理由處理器ju ProX傳輸?shù)腻e誤時,它咨詢34對 應于進行中的ShMPi頁的存取位KSi。如果該存取位沒有指示任何當前的存 取,則它修改34該存取位KSi,以便存儲它準予對該頁的存取,還修改35 與進行請求的任務TA相對應的存在位PriA (位改變?yōu)? ),以便存儲這樣的 事實,即,該任務TA現(xiàn)在具有對進行中的頁ShMPPi的排他存取。
應該注意,內(nèi)核存儲器結(jié)構(gòu)KMStr的存取位KSi的這些校驗和修改操作 構(gòu)成以原子方式實現(xiàn)的操作34,即,保證了它甚至在多處理器環(huán)境中也能全 或無地完成。
一旦頁錯誤處理器PFInt在所請求的頁ShMPi上賦予排他性,則它重新 啟動指令InstrA的執(zhí)行,以便它實際地存取36該頁的內(nèi)容。
然后,如果來自由另 一處理器ia ProY并行執(zhí)行的任何另 一監(jiān)視任務TB 的指令InstrB請求37對于該已賦予的頁ShMPi的存取,則該處理器的中斷 機制PFIntY還將針對請求任務TB而咨詢該頁的存在位PriB 。因為任務TB 是監(jiān)視的任務,因此所咨詢的存在位PriB處于不存在位置(值為0)。因此中 斷機制PFIntY將暫停請求指令InstrB,并傳輸38錯誤到頁錯誤處理器PFH。
此時,該頁錯誤處理器PFH注意到,該頁的存取位KSi為l,其指示已 經(jīng)對另一任務在該頁ShMPi上準予了排他性。因此該頁錯誤處理器PFH將開 啟39整個請求任務TB的暫停,例如通過在系統(tǒng)軟件上下文改變管理器中結(jié) 束其激活時期。在其下一個激活時期中,因此該任務TB將精確地在它被中 斷的點而重復其執(zhí)行,且將能夠多次嘗試存取該相同頁ShMPi。
在請求任務是屬于多線程處理的線程ThrB2 (圖7)的情況下,特定于該 單一線程ThrB2的一組頁表入口 PTEiB2的存在使能僅暫停請求存取已經(jīng)在 排他存取中分配的頁的線程,而不是不會用此排他性來進入沖突的其他線程ThrBl。
當每個任務的激活時期SchA完成SCHAS時,調(diào)度器暫停該任務的執(zhí)行, 并備份其執(zhí)行上下文。
當該暫停SCHAS或當在已經(jīng)分配的頁請求上的暫停39時,本發(fā)明還設 想了關于該任務對其接收排他存取的所有共享存儲器頁的釋放階段。因此, 如果調(diào)度器SCH通過管理位MmA注意到301暫停的過程中的任務TA被監(jiān) 視,則它掃描該任務的所有頁表入口 PTEiA到PTEkA,通過咨詢不同的存在 位PriA到PrkA的狀態(tài),來建立在哪些頁上它具有排他存取?;谠撔畔?, 然后它將通過把內(nèi)核存儲器結(jié)構(gòu)KMStr中它們的存取位KSi重新設置為0, 來釋放所有這些頁ShMPi。
在其他未呈現(xiàn)的變體中,還可能例如通過設想單一任務描述符中的許多 管理位,來將管理或監(jiān)視的概念分離到許多管理類型中。因此任務可以被監(jiān) 視,以便從關于任務的特定類別的排他存取中獲益。類似地,可以僅由任務 的特定類別來排除任務。
因此,通過暫停尋求存取已經(jīng)分配的頁的所有任務,對于請求它的第一 任務來獲得該頁的排他性,無需干擾因此而暫停的其他任務的執(zhí)行的一致性。
通過避免由同時執(zhí)行的兩個任務共享的單 一存儲器區(qū)域的任何修改,因
存儲器區(qū)域的已給定的初始狀態(tài),在存取它的任務的每個激活時期的開始時,
務執(zhí)行的指令的給定序列,例如調(diào)度的激活時期,且通過從已知初始狀態(tài)開 始,因此可以獲得相對于該任務是確定且可重復的該序列的執(zhí)行。
操作,該方法使能避免或減少尋求竟爭地存取它的多個任務之間共享的單一 資源的死鎖風險。
通過與這些存取控制技術(圖7到8)合并上述用于存入確定性時期的 技術(圖1到5)、以及以上所引用的申請中所描述的檢查點和存入以及重放 技術,本發(fā)明還提出在并行結(jié)構(gòu)系統(tǒng)中實現(xiàn)前述的不同類型的運作管理。
因此,圖9圖示了,根據(jù)本發(fā)明的、在多處理器系統(tǒng)MP1上存入多任務 應用APPJ以及在單處理器系統(tǒng)UP2中所需的其重放。
對于所存入的應用APPJ,存入代理JSCH為每個處理器ia ProX或ju ProY
存入對于不同監(jiān)視的任務TA、 TB和TC的所有激活時期的系列。如上所述, 它分離地傳輸它們,分別作為隊列QJ ju ProX和QJ ja ProY。應該注意,如果 任務在處理器中執(zhí)行一次并在另一處理器中執(zhí)行一次,對于該任務的激活時 期將存在于兩個隊列中。
用由存入的應用APPJ所存取的共享資源ShMPi到ShMPk,存入代理 JVMM為這些資源的每個記錄表示在該資源上分配的排他存取的系列的存入 數(shù)據(jù)。通過頁錯誤處理器PFH,伴隨著它分配給不同任務的排他存取,在虛 擬存儲器管理器VMM中生成該排他存取存入數(shù)據(jù)。
該存取存入數(shù)據(jù)的每個記錄具體包括
-進行中的共享資源的單義標識符,例如,關于共享存儲器區(qū)域的地址;
-關于獲得該存取的任務的標識符(PID或TIP );
-例如通過這里描述的計數(shù)技術獲得的該排他存取的持續(xù)時間;
-允許補償該計數(shù)的不準確性的補充數(shù)據(jù),例如前述的記號;
-以及有用的特定補充數(shù)據(jù),例如,關于系統(tǒng)資源和不同外部或輸入/輸 出事件的虛擬化。
該存入數(shù)據(jù)被傳輸?shù)紽IFO型的存入隊列QJShMPi。
取決于實施例,可能在一個或多個日志文件中存儲這些隊列QJjuProX、 QJjnProY和QJjuMPi的內(nèi)容,例如,用于以后4吏用。
從這些隊列,不同的存入數(shù)據(jù)通過諸如計算機通信網(wǎng)絡的通信裝置被傳 輸?shù)街胤畔到y(tǒng)UP2。
分別由對應于該發(fā)布隊列的重放隊列QR ja ProX、QR ja ProY和QR jn MPi 來接收來自每個存入隊列QJ |i ProX、 QJ n ProY和QJ ja MPi的數(shù)據(jù)。
在這些重》文隊列的輸出中,不同的存入的處理器iiProX和nProY的存 入數(shù)據(jù)根據(jù)存取存入數(shù)據(jù)被合并到一起,以便恢復所存入的激活時期和所分 配的(連續(xù)的)排他存取所合并的編序。
在重放系統(tǒng)中,定義了該重放編序或重放調(diào)度之后,在重放處理器中啟 動重力文的扭J亍。
應該注意,只要以不破壞該重放編序的調(diào)度的方式在這些處理器中分發(fā) 任務,在重放的性能之外,重放處理器的數(shù)量可能不重要。
應該注意,這里描述的不同的機制以與硬件部分脫離的方式使用軟件部 分。在處理器或計算機的情況下,因而獲得關于硬件的良好的獨立性,具體
是,通過允許該結(jié)構(gòu)自己最佳地管理不同計算元件的并行,使得更簡單且更 可靠的實施,且保持良好的性能。
另外,由于本發(fā)明最常見完全由軟件實現(xiàn),因此可以使用具有所有隱含 的優(yōu)點的標準硬件。
本發(fā)明具體地使得能夠?qū)㈥P于在單個計算元件上的共享時間中運作的多 任務應用而發(fā)展的運作管理技術擴展到并行環(huán)境。因此,本發(fā)明使得能夠集 成這種并行環(huán)境到網(wǎng)絡或集群器,其中在中間件類型的應用中實現(xiàn)該運作管
理,例如,為了管理提供"按需(on-demand)"服務的分布式應用或變量配 置應用。
顯然,本發(fā)明不局限于已描述的示例,在不脫離本發(fā)明框架的情況下, 可以對其進行多種修改。
權利要求
1.一種用于管理至少兩個應用任務(TA、TB)的運作的方法,該方法在系統(tǒng)軟件中實現(xiàn),該系統(tǒng)軟件通過順序激活來在并行結(jié)構(gòu)的計算機系統(tǒng)中管理所述任務(TA、TB)的執(zhí)行,包括能夠在至少兩個算術單元(μProX、μProY)同時執(zhí)行多個應用任務的多個計算裝置,這兩個應用任務(TA、TB)存取至少一個共享資源(ShMPi),該方法包括-在第一算術單元(μProX)中存入這些任務的一個或其他的激活時期的第一系列;以及-在第二算術單元(μProY)中存入這些任務的一個或其他的激活時期的第二系列;-以及,響應于對所述目標資源的存取請求(InstrA),對于所述任務中的所謂存取任務,存入被稱為對所述目標資源排他的存取的屬性的系列,即,在對于存取的所述請求之后緊鄰的存取任務的激活時期(SchA)的全部剩余時間期間,排除由這些任務的另一個對所述目標資源(ShMPi)的任何存取的屬性;所述方法還包括以被稱為重放編序的順序結(jié)構(gòu)來合并表示每個算術單元中激活時期的系列的存入數(shù)據(jù)和表示所定性的排他存取的系列的存入數(shù)據(jù),以便維護相對于所述共享資源且在每個任務內(nèi)的激活時期的系列順序。
2. 根據(jù)權利要求1所述的方法,其特征在于,在重放計算機系統(tǒng)中使用 重放編序數(shù)據(jù),以便重放所存入任務的所存入運行。
3. 根據(jù)權利要求1或2之一所述的方法,其特征在于,包括在存入期 間,在重放計算機系統(tǒng)內(nèi),對所存入任務可存取的軟件資源的全部或部分的 虛擬化。
4. 根據(jù)權利要求1至3之一所述的方法,其特征在于,其在計算機網(wǎng)絡 中的至少一個節(jié)點內(nèi)實現(xiàn)。
5. —種實現(xiàn)根據(jù)權利要求1至4之一的方法的計算機系統(tǒng)。
全文摘要
本發(fā)明涉及用于管理的系統(tǒng)和方法,更具體地,涉及通過對計算機或計算機網(wǎng)絡上執(zhí)行的多任務應用內(nèi)的一個或多個軟件任務的運行進行外部、透明的和非侵入的控制的管理的系統(tǒng)和方法。本管理具體包括以存入數(shù)據(jù)形式對這些任務的運行進行記錄,以及從這種存入數(shù)據(jù)重放該運行,以便呈現(xiàn)對應于存入時所獲得的那些的行為和結(jié)果。本發(fā)明還涉及實施管理其所執(zhí)行的軟件應用的運作的這種方法的系統(tǒng)。
文檔編號G06F11/14GK101107596SQ200680002985
公開日2008年1月16日 申請日期2006年1月24日 優(yōu)先權日2005年1月24日
發(fā)明者吉勒斯·古艾爾拉德特, 菲利普·伯格豪德, 馬克·弗特斯 申請人:國際商業(yè)機器公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1