專利名稱:用于執(zhí)行恢復(fù)的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明總體上涉及計算機系統(tǒng),具體地,涉及多處理計算機系統(tǒng)。更具體地,本發(fā)明涉及用于在非同質(zhì)(non-homogeneous)多處理器環(huán)境中執(zhí)行恢復(fù)的方法和系統(tǒng)。
背景技術(shù):
在現(xiàn)代計算中,由于將多個處理器組合增加了處理帶寬并且普遍提高了吞吐量、可靠性和可服務(wù)性,因此多處理器計算機系統(tǒng)正在日益變得重要。多處理計算系統(tǒng)使用多個處理元件進行獨立任務(wù),這些處理元件可以包括鏈接在網(wǎng)絡(luò)中的多個單獨的處理器,或者,在協(xié)調(diào)環(huán)境中協(xié)同運行的多個軟件進程或線程。
許多早期的多處理器系統(tǒng)包括多個單獨的計算機系統(tǒng),稱為劃分系統(tǒng)(partitioned system)。近來,多處理器系統(tǒng)由一個或多個計算機系統(tǒng)構(gòu)成,該一個或多個計算機系統(tǒng)在邏輯上被劃分,從而表現(xiàn)為多個獨立的計算機系統(tǒng)。例如,可以將具有八個處理器的單個系統(tǒng)配置為,將所述八個處理器(或者一個或多個處理器的多個組)中的每一個視為用于處理目的的單獨系統(tǒng)。這些虛擬系統(tǒng)中的每一個都應(yīng)該具有其自己的操作系統(tǒng)副本,從而可以獨立地對這些虛擬系統(tǒng)中的每一個分配任務(wù),或者,這些虛擬系統(tǒng)中的每一個可以作為一處理集群一起運行,這提供了高速處理并提高了可靠性。
國際商業(yè)機器公司(IBM)的zSeries服務(wù)器已經(jīng)在多處理計算機系統(tǒng)方面取得了廣泛的商業(yè)上的成功。這些服務(wù)器提供了在“任務(wù)關(guān)鍵環(huán)境(mission critical environments)”方面所需要的性能、可擴展性以及可靠性。這些服務(wù)器運行公司應(yīng)用(corporate applications),如企業(yè)資源規(guī)劃(ERP)、商業(yè)智能(business intelligence,BI)以及高性能電子商務(wù)設(shè)施。這些系統(tǒng)的適當運行對于機構(gòu)運行會是關(guān)鍵的,因此,最重要的方面在于,它們高效地并盡可能無差錯地運行,并且對問題進行快速分析并從系統(tǒng)錯誤中恢復(fù)是至關(guān)重要的。注意,在IBM zSeries服務(wù)器上的邏輯劃分意味著將實際處理器虛擬化。這表示可以將系統(tǒng)配置為,將這些虛擬處理器(或者一個或多個虛擬處理器的多個組)中的每一個視為用于處理目的的單獨系統(tǒng)。
如IBM zSeries服務(wù)器的大型多處理器系統(tǒng)保持了數(shù)據(jù)結(jié)構(gòu)方面的大狀態(tài)空間。通常,對許多這些結(jié)構(gòu)進行共享。系統(tǒng)中的每個任務(wù)對整體狀態(tài)的一(小)部分進行修改。由于硬件或代碼錯誤所致,這樣的任務(wù)可能會產(chǎn)生對狀態(tài)的錯誤或不完全的修改。狀態(tài)空間的這個項可能影響系統(tǒng)的單個或多個部件。無論如何,都需要有效的恢復(fù)操作,以恢復(fù)連貫性。
傳統(tǒng)的方法是首先在系統(tǒng)范圍內(nèi)收集等待執(zhí)行的恢復(fù)操作。然后,單個處理器執(zhí)行恢復(fù),而其它受影響的處理器保持在安全狀態(tài)。盡管這種方法適合于小型并且同質(zhì)的系統(tǒng),但是,其通常不能應(yīng)用于大型非同質(zhì)系統(tǒng)。其中有兩個原因要求單個處理器在技術(shù)上能夠進行所有恢復(fù)操作。但是,在大型系統(tǒng)中,通常不是所有處理器都具有相同的性能。一般不存在能夠進行所有可能類型的恢復(fù)操作的單個處理器。
在大型系統(tǒng)中,由于在進行恢復(fù)期間,所有受錯誤影響的處理器都不對外界請求作出響應(yīng),因此整體恢復(fù)執(zhí)行時間是一個問題。因此,為了使恢復(fù)執(zhí)行時間保持最小,要求對受影響的處理器并行執(zhí)行恢復(fù)。
發(fā)明內(nèi)容
本發(fā)明的一個目的是提供一種用于在非同質(zhì)多處理器環(huán)境中并行執(zhí)行恢復(fù)的方法。
本發(fā)明的另一個目的是提供一種用于在非同質(zhì)多處理器環(huán)境中的恢復(fù)進程中使用的方法和系統(tǒng),這種方法和系統(tǒng)規(guī)定了如何決定要執(zhí)行哪些恢復(fù)操作以及使用哪個處理器進行恢復(fù)操作的準則。
本發(fā)明的另一個目的是提供一種用于在非同質(zhì)多處理器環(huán)境中的恢復(fù)進程中使用的、并行執(zhí)行恢復(fù)的多個處理器如何能夠在避免死鎖情況的同時訪問共享資源的規(guī)則和機制。
利用用于在非同質(zhì)多處理器環(huán)境中并行執(zhí)行恢復(fù)的方法和系統(tǒng)來實現(xiàn)這些和其他目的。該方法規(guī)定了如何決定要執(zhí)行哪個恢復(fù)操作以及在哪個處理器上執(zhí)行的準則。如果有多個恢復(fù)操作等待執(zhí)行,則目標是在多個處理器上并行執(zhí)行這些恢復(fù)操作。與一個處理器進行所有需要的恢復(fù)的傳統(tǒng)方法相比,這種方法效率高得多。此外,在大型非同質(zhì)系統(tǒng)中,由于技術(shù)限制,可能根本不存在這種能夠進行完全恢復(fù)的單個處理器。本發(fā)明的方法還規(guī)定了并行執(zhí)行恢復(fù)的多個處理器如何能夠在避免死鎖情況的同時訪問共享資源的規(guī)則和機制。這包括對當前由另一個處理器擁有的資源進行訪問。
考慮到以下參照附圖(規(guī)定并示出了本發(fā)明的優(yōu)選實施例)而給出的詳細說明,本發(fā)明的益處和優(yōu)點將變得顯而易見。
圖1例示了本發(fā)明可以通過其使用的多處理器計算系統(tǒng)。
圖2示出了可以在本發(fā)明的優(yōu)選實施例中使用的任務(wù)控制塊。
具體實施例方式
圖1例示了多處理器計算機系統(tǒng)100,它一般包括多個主計算機110、112、114,也被稱為“主機”。利用主機鏈接116將主機110、112、114相互連接,主機鏈接116可以包括,例如,耦合鏈接(Coupling Links)、內(nèi)部耦合通道(Internal Coupling Channels)、集成集群總線(IntegratedCluster Bus)或者其它適合的鏈接。除了像例示的示例中那樣使用三個主機110、112、114以外,在另選實施例中,也可以使用一個、兩個、四個或者更多個主機。系統(tǒng)100還包括定時器118和耦合設(shè)備120。
每個主機110、112、114本身是多處理器系統(tǒng)。每個主機110、112、114可以利用相同(或不同)類型的數(shù)字處理單元來實施。在一個特定示例中,每個主機110、112、114包括運行一個或多個z操作系統(tǒng)(z/OS)的IBM zSeries Parallel Sysplex服務(wù)器,如zSeries 900。合適的數(shù)字處理單元的另一個示例是運行OS/390的IBM S/390服務(wù)器。主機110、112、114運行一個或多個生成數(shù)據(jù)對象的應(yīng)用程序,這些數(shù)據(jù)對象被存儲在主機110、112、114中的一個或多個之外或之內(nèi)。數(shù)據(jù)對象可以包括新數(shù)據(jù)或者對舊數(shù)據(jù)的更新。主機應(yīng)用程序可以包括,例如,IMS和DB2。主機110、112、114運行包括相應(yīng)的I/O例程115a、115b、115c的軟件。注意,在系統(tǒng)100中可以使用其它類型的主機。具體地說,主機可以包括任何合適的數(shù)字處理單元,例如,大型計算機、計算機工作站、服務(wù)器計算機、個人計算機、超級計算機、微處理器或者其它合適的機器。
系統(tǒng)100還包括被耦合到主機110、112、114中的每一個的定時器118,以使主機110、112、114的定時同步。在一個示例中,定時器118可以是IBM Sysplex.定時器。另選地,在將主機110、112、114之一中的定時器用于使主機110、112、114的定時同步的情況下,可以省略單獨的定時器118。
通過相應(yīng)的連接器122、124、126,將耦合設(shè)備120耦合到每個主機110、112、114。連接器122、124、126可以是例如,系統(tǒng)間耦合(ISC)或者內(nèi)部耦合總線(ICB)連接器。耦合設(shè)備120包括由主機110、112、114共享的高速緩沖存儲器128(“cache”),并且,還包括處理器130。在一個特定示例中,耦合設(shè)備120是IBM z900 model 100耦合設(shè)備。其它合適的耦合設(shè)備的示例包括IBM model 9674 C04和C05,以及IBMmodel 9672 R06。另選地,可以將耦合設(shè)備120包括在服務(wù)器中,如主機110、112、114中的一個。
作為示例,用于這個另選實施例的某些合適的服務(wù)器包括具有內(nèi)部耦合設(shè)備或用作耦合設(shè)備的邏輯劃分功能的IBM z900和S/390服務(wù)器。另選地,可以將耦合設(shè)備120實現(xiàn)于任何其它合適的服務(wù)器中。作為示例,耦合設(shè)備120中的處理器130可以運行z/OS。另選地,可以使用任何合適的共享存儲器代替耦合設(shè)備120。由于可以由主機110、112、114對高速緩沖存儲器128進行訪問,因此高速緩沖存儲器128是主機級的高速緩沖存儲器。高速緩沖存儲器128受主機110、112、114的控制,如果需要,甚至可以將高速緩沖存儲器128包含在一個主機中。
如上所述,如IBM zSeries服務(wù)器的大型多處理器系統(tǒng)保持了數(shù)據(jù)結(jié)構(gòu)方面的大狀態(tài)空間。通常,這些結(jié)構(gòu)中的許多被共享。系統(tǒng)中的每個任務(wù)修改整體狀態(tài)中的一(小)部分。由于硬件或編碼錯誤,這種任務(wù)可能會對狀態(tài)進行錯誤的或不完全的修改。狀態(tài)空間的這個項可能影響系統(tǒng)的單個或多個部件。無論如何,都需要有效的恢復(fù)操作,以恢復(fù)連貫性。
傳統(tǒng)的方法是首先在系統(tǒng)范圍內(nèi)收集等待執(zhí)行的恢復(fù)操作。然后,單個處理器執(zhí)行恢復(fù),而其它受影響的處理器保持在安全狀態(tài)。盡管這種方法適合于小型同質(zhì)的系統(tǒng),但是,它通常不能應(yīng)用于大型非同質(zhì)系統(tǒng)。其中有兩個原因要求單個處理器在技術(shù)上能夠進行所有恢復(fù)操作。但是,在大型系統(tǒng)中,通常不是所有處理器都具有相同的性能。一般不存在能夠進行所有可能類型的恢復(fù)操作的單個處理器。
在大型系統(tǒng)中,由于在進行恢復(fù)的同時,受錯誤影響的所有處理器都不能對外部請求做出響應(yīng),因此,總體恢復(fù)執(zhí)行時間是個問題。因此,為了保持恢復(fù)執(zhí)行時間最小,要求對受影響的處理器并行執(zhí)行恢復(fù)。
本發(fā)明提供了一種用于在非同質(zhì)多處理器環(huán)境中并行執(zhí)行恢復(fù)的方法。這種方法有兩個主要方面1.調(diào)度恢復(fù)操作哪個處理器執(zhí)行哪個恢復(fù)操作?2.訪問由其它處理器擁有的共享資源調(diào)度恢復(fù)操作在大型系統(tǒng)中,由于技術(shù)限制,某些處理器可能不能執(zhí)行需要的恢復(fù)操作。例如,這可能是由于它們不能訪問整個狀態(tài)空間,或者,由于它們不能訪問特定硬件。因此,甚至可能要求,對于在一個處理器上檢測到的錯誤,到目前為止沒有受到影響的、具有所要求的性能的其它處理器必須進行恢復(fù)操作。
影響共享資源的錯誤經(jīng)常使多個處理器在短時間內(nèi)檢測該狀況。從而,需要確定受影響的處理器中的哪一個需要進行哪個所要求的恢復(fù)操作。過去,這種情況的一個問題是,無法對(正在被修改的進程中的)狀態(tài)空間的哪個部分當前是活動的(active)進行快速判斷。在錯誤的情況下,不得不將整個狀態(tài)空間假設(shè)為不一致。因此,為了恢復(fù)一致的狀態(tài)空間,進行恢復(fù)的處理器不得不對活動性進行費時的掃描。
訪問共享資源為了對錯誤進行恢復(fù)操作,處理器通常訪問若干個共享數(shù)據(jù)結(jié)構(gòu)。這提出了兩個問題共享數(shù)據(jù)結(jié)構(gòu)可能處于正在被也受這個錯誤影響的第二處理器上運行的功能任務(wù)所改變的過程中。在某些情況下,這個第二處理器不能只釋放共享的數(shù)據(jù)結(jié)構(gòu)。現(xiàn)在需要判斷在哪種情況下,允許執(zhí)行恢復(fù)的處理器訪問該結(jié)構(gòu),盡管該結(jié)構(gòu)目前正由另一個處理器所擁有。
在大型系統(tǒng)中,并發(fā)訪問的串行化會導(dǎo)致長的整體恢復(fù)執(zhí)行時間。
本發(fā)明解決在非同質(zhì)多處理器環(huán)境中并行執(zhí)行恢復(fù)的每個上述方面。
1.調(diào)度恢復(fù)操作本方法規(guī)定了如何決定進行哪種恢復(fù)操作,以及在哪個處理器上進行。如果多個恢復(fù)操作等待執(zhí)行,則目標是在多個處理器上并行地執(zhí)行它們。這比一個處理器進行所有需要的恢復(fù)的傳統(tǒng)方法效率高得多。此外,在大型非同質(zhì)系統(tǒng)中,由于技術(shù)限制,這種能夠進行完全恢復(fù)的單個處理器也許根本不存在。
訪問由其它處理器擁有的共享資源該方法規(guī)定了并行執(zhí)行恢復(fù)的多個處理器如何能夠在避免死鎖情況的同時,對共享資源進行訪問。這包括對當前由另一個處理器擁有的資源進行訪問。
以下將更為詳細地對本發(fā)明的這些方面中的每一個進行討論。
調(diào)度恢復(fù)操作從錯誤中恢復(fù)會要求執(zhí)行多個恢復(fù)操作。在錯誤影響多個處理器的情況下,情況總是這樣。對于這些單獨操作中的每一個,需要決定系統(tǒng)中的哪個處理器應(yīng)該執(zhí)行這個操作。參照以下表1表1
恢復(fù)操作可能涉及只有一個特定處理器在技術(shù)上能夠進行恢復(fù)的資源。這樣的靜態(tài)分配明顯地且唯一地指定了要執(zhí)行恢復(fù)操作的處理器。恢復(fù)方法觸發(fā)適當?shù)奶幚砥?,以?zhí)行它們那部分恢復(fù)。在單獨恢復(fù)操作之間有任何相關(guān)性的情況下,本方法還考慮了按照正確的順序執(zhí)行恢復(fù)操作。
如果多個處理器在技術(shù)上能夠執(zhí)行恢復(fù)操作,則可以采用動態(tài)調(diào)度方案。在將要進行恢復(fù)通知給適當?shù)奶幚砥髦?,根?jù)具體操作的性質(zhì),有兩種可能的不同策略1.先到,先服務(wù)進入恢復(fù)的第一個處理器同時對所有等待的請求一起進行處理。沒有給得到通知的其它處理器留下要做的事情。如果在與執(zhí)行單個請求相比不(顯著)增加執(zhí)行時間的情況下,能夠在單個處理器上一起執(zhí)行多個請求,則這個方案是合適的。
一次一個進入恢復(fù)的每個處理器只執(zhí)行等待的請求中的一個。這導(dǎo)致了多個處理器并行地執(zhí)行請求。在處理器完成了恢復(fù)操作之后,檢查是否還有等待的請求。如果是,則執(zhí)行另一個請求。如果不能夠在與執(zhí)行單個請求相比不顯著增加執(zhí)行時間的情況下在單個處理器上一起執(zhí)行多個請求,則這個方案是合適的。
訪問共享資源訪問并且鎖定多個共享資源會導(dǎo)致死鎖狀態(tài)或明顯的延遲。在錯誤發(fā)生之后,尤其如此,并且,資源在進入功能碼(functional code)路徑之前被鎖定。在恢復(fù)操作期間,也需要至少對這些資源進行訪問,但是,經(jīng)常以與功能路徑中不同的順序進行訪問。參照以下表2表2
避免恢復(fù)方法中的掛起和延遲有三個方面1.只訪問盡可能少的共享資源在大型系統(tǒng)中執(zhí)行的任務(wù)通常只改變整體狀態(tài)空間中很有限的量。使用簿記機制(bookkeeping mechanism)允許對小數(shù)據(jù)結(jié)構(gòu)內(nèi)的任務(wù)保持當前的活動狀態(tài)(任務(wù)控制塊(Task Control Block,TCB))。在任務(wù)正常結(jié)束時,對狀態(tài)空間的所有修改都處在一致狀態(tài),并且,TCB是空的,即,這表示在狀態(tài)空間上沒有活動。在任何給定時間,當任務(wù)失敗(由于硬件或編碼故障)時,TCB表示出處于修改進程中的所有項。對于恢復(fù)而言,這允許將策略從“進行掃描以發(fā)現(xiàn)需要恢復(fù)什么”變到“查詢使用了使用”的方法。這就將在恢復(fù)期間需要訪問的共享資源的數(shù)量限制到絕對最小值。
引入可以占用不同類型的多個資源的順序為了通過處理器如何確實占用多個資源來避免死鎖,將資源分類為不同類型并且規(guī)定類型的順序。當占用多個資源時,允許每個處理器對每個類型鎖定至多一個資源,并且必須服從規(guī)定的資源類型順序。
訪問其它處理器所擁有的共享資源如果其它處理器處于不訪問資源的安全狀態(tài),并且準備利用該資源進行隨后工作,盡管其狀態(tài)已經(jīng)改變,則可以進行對當前由另一個處理器擁有的共享資源的訪問。這可以使用任何對這種安全處理器狀態(tài)的合適定義、資源訪問規(guī)則以及任何適當?shù)牟樵儥C制進行。
圖4示出了可以在實施本發(fā)明時使用的任務(wù)控制塊(TCB)。更具體地說,優(yōu)選地,對多處理器主機110、112和114的每個處理單元(PU)分配至少一個TCB,并且TCB將包含關(guān)于下列方面的信息在執(zhí)行任務(wù)時由PU使用的數(shù)據(jù)結(jié)構(gòu)。
PU任務(wù)狀態(tài)的足跡(footprint)信息。
如果出現(xiàn)錯誤,則PU將在TCB中存儲錯誤類型、錯誤代碼以及擴展錯誤信息等。
對在PU上運行的每個任務(wù)分配TCB。例如,在IBM zSeries服務(wù)器上,PU可以以兩種模式執(zhí)行,即i390模式或Millicode模式,由此,當利用這種服務(wù)器實施本發(fā)明時,優(yōu)選地對每個PU分配兩個TCB。對于I390模式和Millicode模式,對每個PU規(guī)定唯一的TCB使得通過保持資源分別使用,能夠使得當處理器在處理功能的同時切換模式時可能出現(xiàn)的的任務(wù)交錯更大。圖2中示出了這種結(jié)構(gòu)。
關(guān)鍵TCB字段定義1.TCB代碼字段202用于識別TCB控制塊類型的唯一靜態(tài)十六進制值。
2.PU#字段204擁有TCB的物理PU號碼。
3.模式字段206用于Millicode碼或I390模式的標識符4.控制塊隙(slot)陣列三個16元素的陣列,包括控制塊掩碼(CBM)陣列212用于CBC和CBA陣列中的字段的合法(valid)標志的位有效掩碼。
控制塊碼(CBC)陣列214包含被鎖定或正在被鎖定的控制塊的控制塊代碼。
控制塊地址(CBA)陣列216包含被鎖定或正在被鎖定的控制塊的控制塊地址。
任務(wù)足跡字段220在PU上執(zhí)行的當前任務(wù)步驟的指示符錯誤代碼字段222由失敗任務(wù)存儲的唯一的錯誤數(shù)據(jù)。
擴展錯誤信息字段224由失敗任務(wù)存儲的附加數(shù)據(jù),以有助于恢復(fù)或解決問題。
盡管很清楚,這里所披露的本發(fā)明目標在于滿足上述目的,但是,本領(lǐng)域的技術(shù)人員應(yīng)該明白,可以提出許多修改和實施例,并且,所附權(quán)利要求旨在涵蓋落入本發(fā)明的真正的精神和范圍內(nèi)的所有這樣的修改和實施例。
權(quán)利要求
1.一種在包括多個處理單元的多處理器系統(tǒng)中并行執(zhí)行恢復(fù)的方法,所述方法包括如下步驟調(diào)度恢復(fù)操作,包括提供用于確定要進行哪些恢復(fù)操作以及在哪些處理單元上進行的準則的步驟;提供對共享資源的訪問,包括提供用于確定并行執(zhí)行恢復(fù)的多個處理單元如何能夠訪問共享資源的規(guī)則的步驟;以及按照所述準則和規(guī)則,選擇和使用處理單元中的一個或多個,以進行所調(diào)度的恢復(fù)操作。
2.如權(quán)利要求1所述的方法,其中所述調(diào)度步驟包括調(diào)度一組恢復(fù)操作的步驟;并且所述選擇和使用步驟包括以下步驟i)選擇多個處理單元,所選擇的處理單元在不同時刻進入恢復(fù)進程,以及ii)使用進入恢復(fù)進程的第一處理單元來執(zhí)行所述的一組恢復(fù)操作中的全部操作。
3.如權(quán)利要求1所述的方法,還包括對處理單元能夠占有不同類型的多個資源的順序進行識別的步驟,其中,允許每個處理單元一次針對每種類型鎖定至多一個資源。
4.如權(quán)利要求1所述的方法,其中所述調(diào)度步驟包括調(diào)度多個恢復(fù)操作的步驟;并且所述選擇和使用步驟包括以下步驟i)選擇多個處理單元,所選擇的處理單元在不同時刻進入恢復(fù)進程,以及ii)當所選擇的處理單元中的每一個進入恢復(fù)進程時,該處理單元執(zhí)行所述多個所述恢復(fù)操作中的一個。
5.如權(quán)利要求4所述的方法,其中,所述選擇和使用步驟還包括下述的進一步的步驟,即,當所選擇的處理單元中的一個完成了恢復(fù)操作中的一個時,所選擇的處理單元中的所述一個執(zhí)行所述多個恢復(fù)操作中的另一個。
6.如權(quán)利要求1所述的方法,其中,所述多處理器系統(tǒng)還包括多個任務(wù)控制塊,并且,提供對共享資源的訪問的步驟包括以下步驟在任務(wù)控制塊中識別正在被處理單元修改的資源;以及當處理單元中的一個失敗時,查詢?nèi)蝿?wù)控制塊,以識別正在被所述失敗處理單元修改的資源,從而減少在恢復(fù)期間需要訪問的共享資源的數(shù)量。
7.如權(quán)利要求6所述的方法,其中,對于處理單元中的每一個,任務(wù)控制塊中的相關(guān)一個對所有正在被處理單元修改的共享資源進行識別。
8.一種恢復(fù)系統(tǒng),用于在包括多個處理單元的多處理器系統(tǒng)中并行執(zhí)行恢復(fù),所述恢復(fù)系統(tǒng)包括用于調(diào)度恢復(fù)操作的裝置,包括用于提供確定要進行哪些恢復(fù)操作以及在哪些處理單元上進行的準則的裝置;用于提供對共享資源的訪問的裝置,包括提供要確定并行執(zhí)行恢復(fù)的多個處理單元如何能夠訪問共享資源的規(guī)則的裝置;以及用于按照所述準則和規(guī)則,選擇并使用一個或多個處理單元,以便進行所調(diào)度的恢復(fù)操作的裝置。
9.如權(quán)利要求8所述的恢復(fù)系統(tǒng),其中所述調(diào)度裝置包括用于調(diào)度一組恢復(fù)操作的裝置;并且所述用于選擇和使用的裝置包括i)用于選擇多個處理單元的裝置,所選擇的處理單元在不同時刻進入恢復(fù)進程,以及ii)用于使用進入恢復(fù)進程的第一處理單元來執(zhí)行所述的一組恢復(fù)操作中的全部操作的裝置。
10.如權(quán)利要求8所述的恢復(fù)系統(tǒng),其中所述調(diào)度裝置包括用于調(diào)度多個恢復(fù)操作的裝置;并且所述用于選擇和使用的裝置包括i)用于選擇多個處理單元的裝置,所選擇的處理單元在不同時刻進入恢復(fù)進程,以及ii)用于對所選擇的處理單元進行操作的裝置,其中,當選擇的處理單元中的每一個進入恢復(fù)進程時,該處理單元執(zhí)行所述多個所述恢復(fù)操作中的一個恢復(fù)操作。
11.如權(quán)利要求10所述的恢復(fù)系統(tǒng),其中,所述用于選擇和使用的裝置還包括用于對所選擇的處理單元進行操作的裝置,其中,當所選擇的處理單元中的一個完成了恢復(fù)操作中的一個時,所選擇的處理單元中的所述一個執(zhí)行所述多個恢復(fù)操作中的另一個。
12.如權(quán)利要求8所述的恢復(fù)系統(tǒng),其中,所述多處理器系統(tǒng)還包括多個任務(wù)控制塊,并且,用于提供對共享資源的訪問的裝置包括用于在任務(wù)控制塊中識別正在被處理單元修改的資源的裝置;以及用于當處理單元中的一個失敗時檢查任務(wù)控制塊,以識別正在被所述失敗處理單元修改的資源,從而減少在恢復(fù)期間需要訪問的共享資源的數(shù)量的裝置。
13.如權(quán)利要求12所述的恢復(fù)系統(tǒng),其中,對于處理單元中的每一個,任務(wù)控制塊中的相關(guān)一個對所有正在被處理單元修改的共享資源進行識別。
14.一種機器可讀的程序存儲裝置,有形地包含機器可執(zhí)行的指令的程序,以便執(zhí)行前述的方法權(quán)利要求中的任何一個方法的方法步驟。
全文摘要
本發(fā)明公開了一種用于在非同質(zhì)多處理器環(huán)境中并行執(zhí)行恢復(fù)的方法和系統(tǒng)。該方法規(guī)定了如何決定要執(zhí)行哪些恢復(fù)操作以及在哪些處理器上執(zhí)行的準則。如果有多個恢復(fù)操作等待執(zhí)行,則目標是在多個處理器上并行執(zhí)行這些恢復(fù)操作。與一個處理器進行所有要求的恢復(fù)的傳統(tǒng)方法相比,這種方法的效率高得多。此外,在大型非同質(zhì)系統(tǒng)中,由于技術(shù)限制,可能根本不存在這種能夠進行完全恢復(fù)的單個處理器。本發(fā)明的方法還規(guī)定了并行執(zhí)行恢復(fù)的多個處理器如何能夠在避免死鎖情況的同時訪問共享資源的規(guī)則和機制。這包括對當前被另一個處理器所擁有的資源進行訪問。
文檔編號G06F9/46GK1928828SQ200610106370
公開日2007年3月14日 申請日期2006年7月14日 優(yōu)先權(quán)日2005年9月9日
發(fā)明者馬丁·陶伯特, 約漢·S·特羅特, 安德列亞斯·科勒, 肯尼斯·J·奧克斯, 烏爾里希·海爾米奇 申請人:國際商業(yè)機器公司