国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      計算機系統(tǒng)的制作方法

      文檔序號:6410495閱讀:159來源:國知局
      專利名稱:計算機系統(tǒng)的制作方法
      技術(shù)領(lǐng)域
      本發(fā)明是關(guān)于具有檢驗點和再啟動功能的計算機系統(tǒng),更具體點說是關(guān)于一因為其中設(shè)置有處理檢驗點的特殊進(jìn)程而無需在再啟動時執(zhí)行閉鎖運行盡(Lock-run-out)序列、并因此其成本也會降低的計算機系統(tǒng)。
      本發(fā)明還涉及這樣一計算機系統(tǒng),它由具有檢驗點和再啟動功能的多處理器系統(tǒng)組成,其中即使該多處理器系統(tǒng)中所結(jié)合應(yīng)用的某些處理器無法工作時其余的處理器亦能繼續(xù)運行。
      下面說明通常的計算機系統(tǒng),這種系統(tǒng)在獲取的檢驗點都處于正常狀態(tài)時處理過程繼續(xù)前進(jìn),而在發(fā)生故障時由故障前的最后一檢查點重新啟動,以此來消除故障。
      在這種計算機系統(tǒng)中,在系統(tǒng)正常運行期間,在執(zhí)行進(jìn)程的同時取檢驗點。而如果發(fā)生了故障等,系統(tǒng)就從最后一個取得的檢驗點返回。
      這些檢驗點是按下述情況獲取的(1)程序代碼中明確指定讀取一檢驗點;(2)在獲取最后一檢驗點之后經(jīng)過了一預(yù)定的時間周期;(3)發(fā)生了某一事件(中斷)要求取檢驗點。
      上述這些情況在執(zhí)行一程序時,在任一時刻均會發(fā)生。一般,在這些情況中任一個發(fā)生的時刻,亦即在執(zhí)行一程序期間任意時刻,都可能獲取檢驗點。
      圖1表示在在處理器執(zhí)行正常處理過程中進(jìn)行檢驗點處理的狀態(tài)。在時間t1,伴隨發(fā)生一要求在程序期間讀取一檢驗點的事件的中斷處理(圖1中的(1))中,進(jìn)行檢驗點處理(圖1中的(2))。
      在時間t2,在取得最后一檢驗點之后過去一預(yù)定時間開始的定時中斷過程(即圖1中的(3))期間進(jìn)行檢驗點處理(即圖1中的(4))。這就是說,檢驗點是在一隨意的進(jìn)程中讀取的。
      圖2表示在進(jìn)程前進(jìn)中發(fā)生故障時取檢驗點的狀態(tài),此進(jìn)程由最后一檢驗點開始重新執(zhí)行。如果故障發(fā)生在已于時間t1和時間t2取得檢驗點之后(圖2中的(1)),進(jìn)程即由最后取的檢驗點(t2)開始重新執(zhí)行(圖2中的(2))。
      但在通常情況下,考慮到發(fā)生故障時的返回,進(jìn)程正常要包括“要作為一定的單元組來對待的處理部分”。這樣的處理部分之一被叫做一“閉鎖運行盡區(qū)域”(″Lock-run-out region″)。
      此閉鎖運行盡區(qū)域是指一程序塊,如果系統(tǒng)由該區(qū)域期間所取的檢驗點重新起動,則在進(jìn)程恢復(fù)正常情況前的故障恢復(fù)處理中必須“運行盡”該程序塊,即使其中能設(shè)置檢驗點。這就是其中采取自旋閉鎖(spin-Lock)的程序塊。
      要獲取自旋閉鎖的進(jìn)程是不能被優(yōu)先占有的。在取此自旋閉鎖時必須注意到不致發(fā)生死鎖。正常情況,為了方便,系統(tǒng)被這樣設(shè)計的,即對每個自旋閉鎖都加上分級別的閉鎖等級,而在已經(jīng)采取有一自旋閉鎖的情況下取另一自旋閉鎖時,僅有即些閉鎖等級遠(yuǎn)低于當(dāng)前取的自旋閉鎖的最低級別的自旋閉鎖才被采取。依靠對這種形式的自旋閉鎖搜索的控制,來保證各處理器中取閉鎖的順序。
      例如,在將閉鎖等級的級別設(shè)置為圖3中所示即樣,其中伴隨有閉鎖操作的“進(jìn)程A”和“進(jìn)程B”是同時執(zhí)行的并且二者的閉鎖必須同時重疊地獲得,各處理器就必須按照這一次序即首先取得“進(jìn)程D”的閉鎖(水平L5),然后取“取進(jìn)程A”的閉鎖。
      現(xiàn)在參照圖4和5解釋為什么需要使用閉鎖運行盡的理由圖4表明一因為未執(zhí)行閉鎖運行盡而發(fā)生的死鎖的示例。
      這里假定,在進(jìn)程T0和進(jìn)程T1分別在處理器(0)和(1)中執(zhí)行的情況下取一檢查點,和進(jìn)程T0取自旋閉鎖L5和L3而進(jìn)程T1取自旋閉鎖L4。
      另外,將考慮一種其后在一處理器(0)中發(fā)生一持久的故障的情況,在這一情況中,處理器(1)是正常運行的唯一的一個處理器,并因此進(jìn)程T0和T1必須均由處理器(1)執(zhí)行。當(dāng)前由進(jìn)程T0和T1獲得的自旋閉鎖可被加以識別。但是不能預(yù)測進(jìn)程T0和T1此后如何運作,亦即這些進(jìn)程以后將如何取得自旋閉鎖。
      而后認(rèn)為在進(jìn)行恢復(fù),當(dāng)前得到一低水平的自旋閉鎖L3的進(jìn)程T0鎖分配到處理器(1)。并認(rèn)為這一進(jìn)程T0釋放已得到的自旋閉鎖L3,然后準(zhǔn)備重新接收自旋閉鎖L4。但由于此自旋閉鎖L4已被在發(fā)生故障前執(zhí)行的進(jìn)程T1所獲取,進(jìn)程T0總不會得到這一自旋閉鎖。結(jié)果就發(fā)生死鎖。這種問題是由于各處理器所恒守的獲取自旋閉鎖的順序被打破而引起的,因為雖然獲取自旋閉鎖的順序已為各處理器所保證,但由于一處理器出現(xiàn)故障這種次序也就被打亂了。
      閉鎖的運行盡功能被認(rèn)為是解決這一問題的一種方法。這一功能的運行使得在獲取一檢驗點由此檢查點恢復(fù)之前釋放所有被獲取的自旋閉鎖,并使所有過程都不依賴任一特定的處理器。這一功能按下列過程運行(1)在獲取一檢驗點時,選擇具有所有已被獲取的那些自旋鎖定中級別最低的自旋閉鎖的進(jìn)程;(2)將一處理器作為正在運行被選擇進(jìn)程的處理器,此過程被執(zhí)行直至該進(jìn)程的自旋閉鎖被釋放為止;(3)在釋放此自旋閉鎖的處理中,測試獲取此自旋閉鎖的進(jìn)程是否仍然存在;(4)如果存在,即由(1)方面開始重復(fù)此處理過程;如果不存在,此閉鎖運行盡處理即終止。
      具體說,如果如圖5A中所示獲得自旋閉鎖,首先選擇進(jìn)程T0(因為級別L3最低),執(zhí)行此進(jìn)程T0直到自旋閉鎖L3被釋放。
      接著,選擇獲取級別最低的L4的進(jìn)程T1(如圖5B中所示),并且進(jìn)而在進(jìn)程T1釋放后選擇獲取L5的進(jìn)程T0(如圖5C中所示),由此完成閉鎖運行盡操作。在閉鎖運行盡完成之后,系統(tǒng)進(jìn)行再啟動。
      為了實現(xiàn)在上述這一進(jìn)程中執(zhí)行的閉鎖運行盡處理,必須將釋放自旋閉鎖的處理安排得能在此閉鎖運行盡處理期間調(diào)用一特殊的分配機制。
      這樣,在一普通的取檢驗點的方法中,在一軟件(OS,操作系統(tǒng))中提取象閉鎖運行盡區(qū)域的處理部分,而且必須設(shè)置上述特殊的分配機制以便來保護(hù)以上說過的一“組單元”。
      因此,如果不可避免地要增加計算機系統(tǒng)的成本的話,就會限制軟件的安裝。
      本發(fā)明的一個目的是提供一種計算機系統(tǒng),無需為取得其中設(shè)置的檢驗點而由特殊進(jìn)程在再啟動時執(zhí)行閉鎖運行盡序列,因此能以低成本組成系統(tǒng)。
      本發(fā)明的另一目的是提供一計算機系統(tǒng),它由具有檢驗點和再啟動功能的多處理器系統(tǒng)組成,而在其中即使結(jié)合應(yīng)用的多處理器系統(tǒng)中某些處理器無法工作,其余的處理器亦能繼續(xù)運行。
      按照本發(fā)明的第一個方面,所提出的計算機系統(tǒng)包括有至少一處理器;至少一個各自對應(yīng)于該至少一個處理器的檢驗點處理手段,用于獲取為再啟動因故障而中斷的進(jìn)程中所用的檢驗點;中斷手段,用于在進(jìn)程執(zhí)行中進(jìn)行中斷和使該檢驗點處理手段由睡眠狀態(tài)轉(zhuǎn)到就緒狀態(tài);調(diào)度手段,對被該中斷手段帶入就緒狀態(tài)的檢驗點處理手段進(jìn)行調(diào)度;和睡眠狀態(tài)轉(zhuǎn)移手段,用于在經(jīng)調(diào)度手段調(diào)度的檢驗點處理手段取檢查點之后,將該檢驗點處理手段再次導(dǎo)入睡眠狀態(tài)。
      因此,按照本發(fā)明,在執(zhí)行進(jìn)程當(dāng)中由中斷手段進(jìn)行中斷,由此使獲取檢驗點的特殊進(jìn)程由睡眠狀態(tài)進(jìn)入就緒狀態(tài)。調(diào)度手段對被中斷手段引入就緒狀態(tài)的獲取檢驗點的特殊進(jìn)程進(jìn)行調(diào)度,由此來獲取檢驗點。這樣,在獲取檢驗點時其他任何進(jìn)程均不處于運行狀態(tài),從而就不存在發(fā)生死鎖的可能性。
      在由調(diào)度裝置進(jìn)行調(diào)度的檢驗點處理手段中取檢查點之后,睡眠狀態(tài)轉(zhuǎn)移手段將此獲取檢驗點的特殊進(jìn)程重新設(shè)置成睡眠狀態(tài)。
      按照本發(fā)明的第二個方面,所提出的一計算機系統(tǒng)包括至少一處理器;一檢驗點獲取指令手段,用于指示取一檢驗點以再啟動因故障被中斷的進(jìn)程,此時滿足一檢驗點獲取條件;設(shè)置在操作系統(tǒng)的調(diào)度程序中的檢驗點獲取手段,用于取得對應(yīng)于至少一個處理器的至少一個檢驗點;執(zhí)行準(zhǔn)備手段,使檢驗點獲取手段由睡眠狀態(tài)成為可執(zhí)行狀態(tài),此時由檢驗點獲取指令手段指示取檢驗點;調(diào)度手段,對由執(zhí)行準(zhǔn)備手段所促成能執(zhí)行的檢驗點獲取手段進(jìn)行調(diào)度;和睡眠狀態(tài)轉(zhuǎn)移手段,在經(jīng)調(diào)度手段調(diào)度的檢驗點獲取手段取得檢驗點之后使其再次進(jìn)入睡眠狀態(tài)。
      因而,根據(jù)本發(fā)明,在當(dāng)檢驗點獲取指令手段指示取得檢驗點時,執(zhí)行準(zhǔn)備手段使檢驗點獲取手段進(jìn)入就緒狀態(tài)。調(diào)度手段對由執(zhí)行準(zhǔn)備手段帶入就緒狀態(tài)的檢驗點獲取手段進(jìn)行調(diào)度。這樣,在取檢驗點時,任何其他進(jìn)程均不處于運行狀態(tài)中,因而不可能發(fā)生死鎖。
      在經(jīng)調(diào)度手段調(diào)度的檢驗點獲取手段中取得檢驗點之后,睡眠狀態(tài)轉(zhuǎn)移手段重新將檢驗點獲取進(jìn)程設(shè)置成睡眠狀態(tài)。
      按照本發(fā)明,僅有檢驗點獲取進(jìn)程處于取檢驗點的運行狀態(tài)中。有任何其他進(jìn)程均不依賴此處理器。因此,即使此多處理器系統(tǒng)的一個或多個處理器偶然發(fā)生故障,除了正在執(zhí)行的為處理器取檢驗點的特殊進(jìn)程,可以很容易地實現(xiàn)對系統(tǒng)的重新配置(處理器的修正(脫機))。
      本發(fā)明的其他目的和優(yōu)點由下面的說明將會了解,部分由說明中是顯而易見的,或者通過實施本發(fā)明來獲悉。借助所附權(quán)利要求中特別指出的手段和系統(tǒng)將能實現(xiàn)和達(dá)到本發(fā)明的目的和優(yōu)點。
      結(jié)合附圖對本發(fā)明優(yōu)先實施例的描述將用于解釋本發(fā)明的基本原理,這些附圖是圖1為一示意圖,表示常規(guī)的計算機系統(tǒng)執(zhí)行正常處理時途中執(zhí)行檢驗點處理的狀態(tài);圖2為一示意圖,表示常規(guī)的計算機系統(tǒng)在取檢驗點的同時進(jìn)行處理,而在發(fā)生故障后,由取后一檢驗點開始進(jìn)行再啟動的狀態(tài);圖3為一示意圖,表示設(shè)定通常的閉鎖等級的級別的方法;圖4為說明發(fā)生死鎖的圖形;圖5A為說明閉鎖運行盡序列的圖形;圖5B為說明閉鎖運行盡序列的圖形;圖5C為說明閉鎖運行盡序列的圖形;圖6為按照本發(fā)明第一實施例的計算機系統(tǒng)的硬件結(jié)構(gòu)的示意圖7為說明按照本發(fā)明第一實施例的存儲在計算機系統(tǒng)的存儲器中的軟件功能的功能方塊圖;圖8是獲取檢驗點的特殊進(jìn)程的處理流程的流程圖;圖9為表示喚醒獲取檢驗點的特殊進(jìn)程的處理流程的流程圖;圖10為表示由獲取檢驗點的特殊進(jìn)程所獲取的一最后檢驗點開始執(zhí)行再啟動時的處理流程的流程圖;圖11為說明按照本實施例的計算機系統(tǒng)的操作的示意圖;圖12為一說明在睡眠狀態(tài)中的獲取檢驗點的特殊進(jìn)程被引導(dǎo)入就緒狀態(tài)的情況的示意圖;圖13A為一表示多處理器系統(tǒng)的圖形;圖13B為一說明發(fā)生持久性故障時多處理器系統(tǒng)的操作的圖形;圖14為一示意性地表示按照本發(fā)明第二實施例的計算機系統(tǒng)的結(jié)構(gòu)的圖形;圖15為表示包括一檢驗點處理部分的調(diào)度程序的流程圖;圖16為表示指示調(diào)度程序執(zhí)行一檢驗點處理部分的處理流程的流程圖;圖17為表示由被檢驗點處理部分所取的一最后檢驗點開始執(zhí)行再啟動的處理流程的流程圖;圖18為一說明按照此實施例的計算機系統(tǒng)的操作的圖形;和圖19為一說明計算機系統(tǒng)的檢驗點/重新運行功能的圖形。
      下面參照


      本發(fā)明的實施例。
      圖6為示意性表示按照本發(fā)明第一實施例的計算機系統(tǒng)的結(jié)構(gòu)的圖形。
      標(biāo)號10所指為一連接到內(nèi)部總線11的處理器。另外,此內(nèi)部總線11還連接有一存儲器12和一用于存放更新存儲器12前的數(shù)據(jù)的BIB(Before Image Buffer,前映象緩存器)。
      存儲器12存放包括一操作系統(tǒng)(OS)在內(nèi)的欲由處理器執(zhí)行的軟件。
      圖19為說明計算機系統(tǒng)的檢驗點/重新運行功能的圖形。如圖19中所示,存儲器的地址0、1、2和3的內(nèi)容在時刻t0分別為a、b、c和d。BIB中未存放有數(shù)據(jù)。這種狀態(tài)被作為“CKP”。
      此后,在時間t1,處理器發(fā)出命令在存儲器的地址1存放X。從而地址1的內(nèi)容變成X。這時,BIB存放存儲器被更新前所存放的數(shù)據(jù)。這一數(shù)據(jù)表明地址1的內(nèi)容為b。
      然后在時間t2,處理器發(fā)出命令在存儲器的地址2中存放Y。BIB存放的數(shù)據(jù)表示,在地址2的內(nèi)容被改寫成Y之前,地點1的內(nèi)容為b。
      假定此后在時間t3發(fā)生了故障。在這種情況下,存儲器可重新回到更新前的存儲器狀態(tài),即就是在時間t0所假定的存儲器狀態(tài)CKP,這僅僅只要依靠將當(dāng)前存放在BIB中的更新數(shù)據(jù)以與將此更新數(shù)據(jù)存進(jìn)BIB時的順序相反的次序存進(jìn)該存儲器。
      假定在時間t3未發(fā)生故障。在這一情況下在適當(dāng)時刻清除BIB中存放的數(shù)據(jù),而這時存儲器所呈現(xiàn)狀態(tài)被作為″CKP“。這樣CKP即前進(jìn)到下一階段。
      圖7為說明存儲在存儲器12中的軟件的功能的功能方框圖。
      標(biāo)號12所指為一獲取檢驗點的特殊進(jìn)程,正常情況下由標(biāo)號為22的睡眠部分維持在一閑置狀態(tài)。
      在滿足了檢驗點獲取條件時,閑置狀態(tài)中的此處理檢驗點的特殊進(jìn)程21,經(jīng)利用一標(biāo)號23所指明的喚醒部分而成為可執(zhí)行的。
      在預(yù)定數(shù)量的數(shù)據(jù)被存進(jìn)BIB13中時即滿足了此檢驗點獲取條件。
      應(yīng)指出,此檢驗點獲取條件在下列情況下可被滿足(1)在一預(yù)定數(shù)量的數(shù)據(jù)被存放進(jìn)用于存儲更新存儲器12后的映象數(shù)據(jù)的AIB(After Image Buffer,后映象緩存器)中時;(2)在程序碼中明確指示取檢驗點時;和(3)在取最后一檢驗點后已過去一預(yù)定時間后。
      使成為可執(zhí)行的處理檢驗點的特殊進(jìn)程21由調(diào)度程序24進(jìn)行選擇。其結(jié)果就使處理檢驗點的特殊進(jìn)程成為可執(zhí)行的,并取檢驗點。
      在檢驗點獲取條件被滿足時,獲取檢驗點的特殊進(jìn)程21的優(yōu)先級(即執(zhí)行優(yōu)先級)即被提高以便盡可能快地獲取檢驗點,而使得除象故障通報等的特殊中斷外的其他中斷均可不予接收。
      下面將參照圖8~10來說明操作。
      圖8為表示獲取檢驗點的特殊進(jìn)程21的處理流程的流程圖。
      獲取檢驗點的特殊進(jìn)程21在正常情況下維持閑置狀態(tài)(步驟A1)。但一旦檢驗點獲取條件滿足,此進(jìn)程21即被喚醒部分23所喚醒,使得成為可執(zhí)行的。
      然后,由調(diào)度程度24對此獲取檢驗點的特殊進(jìn)程加以調(diào)度,由此一檢驗點即被此獲取檢驗點的特殊進(jìn)程取得(步驟A2)。此后,此進(jìn)程又被導(dǎo)回到閑置狀態(tài)。
      圖9為表示通報檢驗點獲取條件滿足,和喚醒保持在閑置狀態(tài)中的獲取檢驗點的特殊進(jìn)程的處理流程的流程圖。
      由圖9可看到,如果檢驗點獲取條件被滿足,即由中斷處理或子程序調(diào)用執(zhí)行通報檢驗點條件滿足的處理。
      在獲取檢驗點的特殊進(jìn)程21轉(zhuǎn)變?yōu)殚e置狀態(tài)中,以及在轉(zhuǎn)變?yōu)榭蓤?zhí)行狀態(tài)中,僅執(zhí)行被指定的進(jìn)程。例如,在UNIX的情況下,僅有一被指定的等待通道(在此情形下為S)被用于專門作進(jìn)程的喚醒。
      圖10為表示由獲取檢驗點的特殊進(jìn)所取的檢驗點開始執(zhí)行再啟動的處理流程的流程圖。
      在這種情況下,由獲取檢驗點的特殊進(jìn)程21所取的最后檢驗點的狀態(tài)被恢復(fù)(步驟C1),而隨后將此獲取檢驗點的特殊進(jìn)程21當(dāng)作為當(dāng)前進(jìn)程,由這一獲取檢驗點的特殊進(jìn)程21的頂端開始進(jìn)行處理(步驟C2)。換言之,此獲取檢驗點的特殊進(jìn)程的內(nèi)容(它被存放在此檢驗點中)可加以恢復(fù)。
      下面將參照圖6~12說明按照此實施例的計算機系統(tǒng)的操作。
      圖11為說明按照這一實施例的計算機系統(tǒng)的操作的圖形。
      當(dāng)在存儲器12更新前存儲在BIB13中的數(shù)據(jù)的數(shù)據(jù)量達(dá)到一預(yù)定的數(shù)據(jù)量而同時處理器在執(zhí)行任一進(jìn)程X時,BIB13對處理器10提供一檢驗點采集請求中斷。
      這里,BIB13對處理器(1)提出一中斷。如果處理器(1)被BIB13提供有一中斷的話,處理器(1)即暫時停止正執(zhí)行中的進(jìn)程X的處理,并進(jìn)行中斷處理(圖1中的(1))。
      在此中斷處理中,所有被維持在閑置(睡眠)狀態(tài)的獲取檢驗點的特殊進(jìn)程均被引導(dǎo)進(jìn)可執(zhí)行狀態(tài)(或就緒狀態(tài))(圖11中的(2))。
      圖12為說明將保持在睡眠狀態(tài)中的獲取檢驗點的特殊進(jìn)程引導(dǎo)進(jìn)就緒狀態(tài)的情況的圖形。
      在這種情況下,獲取檢驗點的特殊進(jìn)程的優(yōu)先級(執(zhí)行優(yōu)先級)被提高,并被安排得除故障通報等外其他的中斷均不接收。
      在完成中斷處理后,處理器(1)重新執(zhí)行被暫時掛起的進(jìn)程X,隨后,在完成進(jìn)程X一單元的執(zhí)行時調(diào)用調(diào)度程序(圖11中的(3))。調(diào)度程序的調(diào)用由分時處理控制之類進(jìn)行。
      調(diào)度程序檢測一高優(yōu)先級的進(jìn)程,并將此進(jìn)程引導(dǎo)到運行狀態(tài),使得此進(jìn)程由處理器執(zhí)行。這里,由于獲取檢驗點的特殊進(jìn)程被喚醒,調(diào)度程序進(jìn)行獲取檢驗點的特殊進(jìn)程21的選擇并使處理器執(zhí)行這一進(jìn)程,由此取一檢驗點(圖11中的(4))。
      由于取檢驗點是在一通常的計算機系統(tǒng)內(nèi)在任一進(jìn)程的中斷處理中進(jìn)行的,有可能此進(jìn)程包含一自旋閉鎖,或者此進(jìn)程要訪問一取決于處理器的資源。因此存在有發(fā)生死鎖的可能性。
      與通常的計算機系統(tǒng)相反,檢驗點是由一被調(diào)度程序調(diào)度的獲取檢驗點的特殊進(jìn)程取得的,而任何其他進(jìn)程均不處于運行狀態(tài)。因此與通常的計算機系統(tǒng)不同,在進(jìn)行再啟動時不會發(fā)生死鎖。
      而且在完成取檢驗點操作時,獲取檢驗點的特殊進(jìn)程21被再次引導(dǎo)進(jìn)閑置(或睡眠)狀態(tài)(圖11中的(5)),并且調(diào)用調(diào)度程序。再次選擇一任意的正常進(jìn)程(圖11中的(6))。
      這樣,在采用此獲取檢驗點的特殊進(jìn)程21的情況下,取得檢驗點總是在此獲取檢驗點的特殊進(jìn)程中進(jìn)行的。
      因此,不再需要再啟動時的閉鎖運行盡,而可能大大地簡化包含檢驗點獲取功能的操作系統(tǒng)。其結(jié)果就是大大地降低制作成本。
      此外,由于以這種方式安排結(jié)構(gòu),還可得到以下的效果。
      圖13A為表示一多自理系統(tǒng)的圖形。這一示例是基于一具有四個處理器(0)至(3)的多處理器系統(tǒng),在取一檢驗點時各處理器10調(diào)度并執(zhí)行對應(yīng)于該處理器的獲取檢驗點的特殊進(jìn)程21。
      較具體說,在多處理器系統(tǒng)中以下述二方法之一來取得檢驗點(1)在它們所處理的數(shù)據(jù)方面相互依從的處理器同步地協(xié)同操作來取得檢驗點;(2)系統(tǒng)中所設(shè)置的全部處理器同步操作以取得檢驗點。
      總的說,第二種方法被應(yīng)用在大部分情況中,即就是,所有處理器同步,因為很難控制處理器之間的數(shù)據(jù)關(guān)系,以及開銷很大。
      因此,在本發(fā)明的第一實施例中也是所有處理器同步操作來取得一檢驗點。
      這就意味著,獲得一檢驗點時執(zhí)行的進(jìn)程只有獲取檢驗點的特殊進(jìn)程21,而任何其他進(jìn)程均不在執(zhí)行。
      例如這里假定在一特定處理器10中發(fā)生了間斷的故障。在這一情況下,在故障恢復(fù)處理中系統(tǒng)的狀態(tài)重新回到最后取得的檢驗點,然后在取得該檢驗點時各處理器所執(zhí)行的該獲取檢驗點的特殊進(jìn)程21重新開始執(zhí)行。
      下面對照圖13B來考慮一特定處理器10中發(fā)生持久的故障時的情況。在這種情況下,故障處理中如果系統(tǒng)狀態(tài)重新回到最后取得的檢驗點,而后在取得該檢驗點時各處理器執(zhí)行的獲取檢驗點的特殊進(jìn)程21重新開始執(zhí)行。
      但是,引起此持久故障的處理器10(即圖13B中的處理器(1))不能執(zhí)行此進(jìn)程。結(jié)果獲取檢驗點的特殊進(jìn)程21不能由任一處理器執(zhí)行,并且任何其他正常的進(jìn)程均不能由故障處理器調(diào)度。因此能容易地實現(xiàn)對造成持久故障的處理器的消除(修改(脫機),重新配置)。
      圖14為原理性表示按照本發(fā)明第二實施例的計算機系統(tǒng)的圖形。
      標(biāo)號10所指為一處理器,執(zhí)行包含由標(biāo)號20指明的操作系統(tǒng)的軟件。
      標(biāo)號24指明一調(diào)度程序,包含一由標(biāo)號25指明的檢驗點處理部分。
      此調(diào)度程序24并不總是調(diào)用檢驗點處理部分25,而是僅在檢查點處理執(zhí)行指令部分指示執(zhí)行檢驗點處理時才調(diào)用這一部分。此外在滿足檢驗點取得條件時,即由檢驗點處理執(zhí)行指令部分26指示執(zhí)行檢驗點處理。
      當(dāng)檢驗點處理執(zhí)行指令部分26指示執(zhí)行檢驗點處理時,調(diào)度程序24調(diào)用檢驗點處理部分25。
      在執(zhí)行檢驗點處理的指令中,例如采用軟件中的一參數(shù)作為一標(biāo)記,當(dāng)被指示執(zhí)行檢驗點處理時此標(biāo)記即被設(shè)定置(1)。因此,調(diào)度程序24只有在此標(biāo)記被置(1)時才調(diào)用檢驗點處理部分25。
      下面參照附圖15~17說明按照本發(fā)明的這一實施例的操作進(jìn)程。
      圖15為表示包括檢驗點處理部分25的調(diào)度程序24的處理流程的流程圖。
      包括有檢驗點處理部分25的調(diào)度程序24監(jiān)視是否由檢驗點處理執(zhí)行指令部分26發(fā)出有指令通知(步驟D1)。如果指示執(zhí)行檢驗點處理部分25,調(diào)度程序24清除檢驗點處理部分25的執(zhí)行指令(步驟D2),然后采集檢驗點(步驟D3)。
      而在當(dāng)此采集操作完成時,執(zhí)行正常的調(diào)度程序的處理(步驟D4)。具體說,選擇高優(yōu)先級的進(jìn)程和使得處理器執(zhí)行此進(jìn)程。
      圖16為通報檢驗點取得條件滿足和向調(diào)度程序24指示執(zhí)行檢查點處理部分25的流程圖。
      在當(dāng)如圖16中所示滿足獲取檢驗點的條件時,由中斷處理或子程序調(diào)用來執(zhí)行通報此檢驗點取得條件滿足的處理(步驟E1)。這里指示執(zhí)行檢驗點處理部分25。
      在檢驗點處理部分25的執(zhí)行指令中,例如如上述采用軟件中的參數(shù)作為一標(biāo)記,而在指示執(zhí)行此檢驗點處理部分25時將此標(biāo)記置(1)。因而,僅在此標(biāo)記被置(1)時調(diào)度程序24才調(diào)用檢驗點處理部分25。
      圖17為表示由被檢驗點處理部分25所取的檢驗點進(jìn)行返回操作時的處理流程的流程圖。
      在這一情況下,首先恢復(fù)最后所取的檢驗點處的狀態(tài)(步驟F1),接著由頂部調(diào)用調(diào)度程序24(步驟F2)。
      這里參照圖18來說明按照本實施例的計算機系統(tǒng)的操作。
      如果在處理器執(zhí)行任一進(jìn)程時發(fā)生了通報檢驗點取得條件被滿足的情況的中斷時(圖18中的(1)),就通過檢驗點處理執(zhí)行指令部分26指示執(zhí)行檢驗點處理部分25(圖18中的(2))。
      此后控制回到最初的進(jìn)程,完成一處理單元。接著調(diào)用調(diào)度程序,但由于已指示執(zhí)行檢驗點處理部分25,調(diào)度程序24即進(jìn)行獲取一檢驗點(圖18中的(3))。
      在完成了取得這一檢驗點時,調(diào)度程序24即回到正常的處理,亦即,分配程序選擇高優(yōu)先級的進(jìn)程,并促使處理器10執(zhí)行此進(jìn)程。
      這樣,在采用包括有檢驗點處理部分25的調(diào)度程序24時,僅在此調(diào)度程序中執(zhí)行獲取檢驗點的操作,因而無需在進(jìn)行再啟動時作閉鎖運行盡處理。從而能大大簡化包含檢驗點取得功能的操作系統(tǒng)。并極大地降低制作費用。
      因此,按照本發(fā)明的計算機系統(tǒng),僅在檢驗點處理手段或在調(diào)度程序中取檢驗點。結(jié)果,在取檢驗點時任何其他進(jìn)程均不能執(zhí)行,而不必再考慮在普通的取得檢驗點的方法中必須考慮的“單元組”的問題。這樣就可大簡化操作系統(tǒng)。結(jié)果可很大程序上降低制作成本或完善成本。
      在此多處理器系統(tǒng)中,即此多處理系統(tǒng)的一個或多個處理器偶然發(fā)生故障,也能容易地實現(xiàn)系統(tǒng)的重新配置(修改(脫機),或隔離具有故障的處理器),僅僅只要抑制任何發(fā)生問題的處理器的檢查點處理。
      對于本技術(shù)領(lǐng)域的熟悉人員能容易地實現(xiàn)附加的優(yōu)點和修改。因此本發(fā)明在其所概括的方面將不局限于這里所表示和說明的具體細(xì)節(jié)、代表性的裝置和所述的例子。相應(yīng)地,在不違背所附權(quán)利要求和它們的共同體所定義的總的發(fā)明概念的精神實質(zhì)和范疇內(nèi),可以作出各種不同的變型。
      權(quán)利要求
      1.一計算機系統(tǒng),其特征是包括至少一處理器(10);至少一檢驗點處理手段-獲取檢驗點的特殊進(jìn)程(21),各自對應(yīng)于所述至少一處理器,用于取得為再啟動一因故障中斷的進(jìn)程所用的檢驗點;中斷手段(13、10、23),用于在執(zhí)行進(jìn)程中進(jìn)行中斷,和用于將所述檢驗點處理手段-獲取檢驗點的特殊進(jìn)程由睡眠狀態(tài)引導(dǎo)到就緒狀態(tài);調(diào)度手段(124),用于調(diào)度被所述中斷手段引導(dǎo)進(jìn)就緒狀態(tài)的所述檢驗點處理手段-獲取檢驗點的特殊進(jìn)程;和睡眠狀態(tài)轉(zhuǎn)移手段(122),用于在被所述調(diào)度手段調(diào)度的所述檢驗點處理手段-獲取檢驗點的特殊進(jìn)程取得檢驗點后再將所述檢驗點處理手段-獲取檢驗點的特殊進(jìn)程重新引導(dǎo)進(jìn)睡眠狀態(tài)。
      2.按照權(quán)利要求1的計算機系統(tǒng),其特征是,所述中斷手段(13、10、23)的中斷處理是在滿足一檢驗點獲取條件之后進(jìn)行的。
      3.按照權(quán)利要求2的計算機系統(tǒng),其特征是,在所述處理器的程序碼中指示獲取一檢驗點時即滿足此檢驗點獲取條件。
      4.按照權(quán)利要求2的計算機系統(tǒng),其特征是,當(dāng)所述檢驗點處理手段(13、10、23)取得檢驗點后經(jīng)過了預(yù)定的時間即滿足此檢查點獲取條件。
      5.按照權(quán)利要求2的計算機系統(tǒng),其特征是,此檢驗點獲取條件由在更新一存儲器前收集映象數(shù)據(jù)的BIB-前映象緩存器中所存放數(shù)據(jù)的數(shù)據(jù)量所決定。
      6.按照權(quán)利要求2的計算機系統(tǒng),其特征是,此檢驗點獲取條件由在更新一存儲器后收集映象數(shù)據(jù)AIB-后映象緩存器中所存放數(shù)據(jù)的數(shù)據(jù)量所決定。
      7.按照權(quán)利要求1的計算機系統(tǒng),其特征是,所述調(diào)度手段對所述檢驗點處理手段(21)的調(diào)度按分時處理進(jìn)行。
      8.按照權(quán)利要求1的計算機系統(tǒng),其特征是,還包括恢復(fù)手段(10),用于在當(dāng)所述至少一處理器的任一個中發(fā)生間斷故障時,恢復(fù)所述處理器在由檢驗點處理手段最后所取的檢驗點處的狀態(tài)。
      9.按照權(quán)利要求8的計算機系統(tǒng),其特征是,還包括處理手段(10),用在處理器的狀態(tài)被所述恢復(fù)手段恢復(fù)后將所述檢驗點處理手段(21)作為一當(dāng)前進(jìn)程的加以處理。
      10.按照權(quán)利要求1的計算機系統(tǒng),其特征是,還包括恢復(fù)手段(10),用于這樣來進(jìn)行恢復(fù)處理,即當(dāng)所述至少一處理器的任一個中發(fā)生持久故障時,除所述含有該持久性故障的處理器外的另一處理器恢復(fù)處理器在被所述檢驗點處理手段最后所取的檢驗點處的狀態(tài)。
      11.按照權(quán)利要求10的計算機系統(tǒng),其特征是,還包括處理手段(10),用于在處理器的狀態(tài)被所述恢復(fù)手段恢復(fù)后,處理被除含有持久故障的處理器外的其他處理器作為當(dāng)前進(jìn)程的所述檢驗點處理手段。
      12.一計算機系統(tǒng),其特征是包括至少一處理器(10);檢驗點取得指令手段(26),用于指示獲取再啟動因故障中斷的進(jìn)程的檢驗點,在當(dāng)一檢驗點取得條件被滿足時;檢驗點獲取手段(25),被設(shè)置在一操作系統(tǒng)的調(diào)度程序內(nèi),用于獲取對應(yīng)于所述至少一處理器的至少一檢驗點;執(zhí)行準(zhǔn)備手段(25),用于使所述檢驗點獲取手段由睡眠狀態(tài)成為可執(zhí)行的,在當(dāng)所述檢驗點獲取得指令手段指示獲取一檢驗點時;調(diào)度手段(24),用于調(diào)度經(jīng)所述執(zhí)行準(zhǔn)備手段促使成可執(zhí)行的所述檢驗點獲取手段;和睡眠狀態(tài)轉(zhuǎn)移手段(25),用于在經(jīng)所述調(diào)度手段調(diào)度的所述檢查點獲取手段獲取檢驗點后將所述檢驗點獲取得手段重新引導(dǎo)進(jìn)睡眠狀態(tài)。
      13.按照權(quán)利要求12的計算機系統(tǒng),其特征是,在所述處理器的程序碼中指示取得一檢驗點時滿足此檢驗點取得條件。
      14.按照權(quán)利要求12的計算機系統(tǒng),其特征是,在當(dāng)檢驗點取得手段獲取一檢驗點后經(jīng)過了一預(yù)定時間時即滿足此檢驗點取得條件。
      15.按照權(quán)利要求12的計算機系統(tǒng),其特征是,此檢驗點取得條件由為在更新一存儲器前收集數(shù)據(jù)的一BIB中所存放的數(shù)據(jù)量決定。
      16.按照權(quán)利要求12的計算機系統(tǒng),其特征是,此檢驗點取得條件由為在更新一存儲器后收集數(shù)據(jù)的一AIB中所存放的數(shù)據(jù)量決定。
      17.按照權(quán)利要求12的計算機系統(tǒng),其特征是,所述調(diào)度手段(24)對所述檢驗點取得手段(25)的調(diào)度按分時處理進(jìn)行。
      18.按照權(quán)利要求12的計算機系統(tǒng),其特征是,還包括恢復(fù)手段(10),用于在當(dāng)所述至少一處理器的任一個中發(fā)生間隙性故障時恢復(fù)所述到少一處理器在所述檢查器獲取手段(25)最后所取的檢查點處的狀態(tài)。
      19.按照權(quán)利要求18的計算機系統(tǒng),其特征是,還包括處理手段(10),用于在處理器的狀態(tài)被所述恢復(fù)手段恢復(fù)后將所述檢驗點取得手段作為一當(dāng)前進(jìn)程加以處理。
      20.按照權(quán)利要求12的計算機系統(tǒng),其特征是,還包括恢復(fù)手段(10),用于這樣來進(jìn)行恢復(fù)處理,即在當(dāng)所述至少一處理器的任一個中發(fā)生持久性故障時,另一不是含有此持久故障的處理器的處理器恢復(fù)此處理器在由檢驗點獲取手段最后所取的檢驗點處的狀態(tài)。
      21.按照權(quán)利要求20的計算機系統(tǒng),其特征是,還包括處理手段(10),用于在處理器的狀態(tài)被所述恢復(fù)手段恢復(fù)后處理被另一非包含持久性故障的處理器作為當(dāng)前進(jìn)程的所述檢驗點取得手段。
      全文摘要
      本發(fā)明提出一種具有抑制中斷能力的計算機系統(tǒng),免除了再啟動時的閉鎖運行盡序列從而大大降低制作成本。在具有抑制中斷性能的、包括有檢驗點再啟動功能的計算機系統(tǒng)中,每個包含在此計算機系統(tǒng)中的處理器各自設(shè)定有獲取檢驗點的特殊進(jìn)程(21)。在取一檢驗點時,此獲取檢驗點的特殊進(jìn)程(21)被喚醒部分(23)引導(dǎo)進(jìn)就緒狀態(tài),在取得一檢查點之后,此特殊進(jìn)程又被重新引導(dǎo)進(jìn)睡眠狀態(tài)。
      文檔編號G06F11/14GK1156860SQ96113090
      公開日1997年8月13日 申請日期1996年9月27日 優(yōu)先權(quán)日1996年1月31日
      發(fā)明者平山秀昭, 清水邦保 申請人:株式會社東芝
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1