專利名稱:在異步環(huán)境下探查系統(tǒng)管理程序任務(wù)的系統(tǒng)和方法
技術(shù)領(lǐng)域:
本發(fā)明一般涉及數(shù)據(jù)處理系統(tǒng)領(lǐng)域,并且具體地涉及一種用于管理數(shù)據(jù) 處理系統(tǒng)中的進(jìn)程的改進(jìn)的系統(tǒng)及方法。
背景技術(shù):
數(shù)據(jù)處理系統(tǒng)內(nèi)的邏輯分區(qū)(LPAR)功能允許在單個(gè)數(shù)據(jù)處理系統(tǒng)平臺(tái) 上同時(shí)運(yùn)行單個(gè)操作系統(tǒng)(OS)的多個(gè)副本或多個(gè)不同種類的操作系統(tǒng)。將 操作系統(tǒng)映像在其中運(yùn)行的分區(qū)被分配該平臺(tái)資源的一個(gè)不重疊的子集。這 些資源包括一個(gè)或多個(gè)構(gòu)造上不同的處理器,該一個(gè)或多個(gè)處理器具有它們 的中斷管理區(qū)(interrupt management area)、 系統(tǒng)存儲(chǔ)器區(qū)(regions of system memory)、以及輸入/輸出(1/0)適配器總線槽。由該平臺(tái)固件到操作系統(tǒng)映 像來表示分區(qū)資源。
保護(hù)在該平臺(tái)內(nèi)運(yùn)行的每個(gè)不同的操作系統(tǒng)或操作系統(tǒng)映像免受每個(gè)其 它的不同操作系統(tǒng)或操作系統(tǒng)映像的影響,使得一個(gè)邏輯分區(qū)中的軟件錯(cuò)誤 不能影響任何其它分區(qū)的正確操作。通過將一組不相交的(disjoint)平臺(tái)資 源分配為由每個(gè)操作系統(tǒng)映像直接管理、以及通過提供用于確保給定的操作 系統(tǒng)映像不能控制沒有被分配給該給定的操作系統(tǒng)映像的任何資源的機(jī)制, 來提供該保護(hù)。此外,防止操作系統(tǒng)的所分配的資源的控制中的軟件錯(cuò)誤影 響任何其它映像的資源。因此,每個(gè)操作系統(tǒng)映像(或每個(gè)不同的操作系統(tǒng)) 直接控制該平臺(tái)內(nèi)的不同組的可分配資源。
對(duì)于LPAR數(shù)據(jù)處理系統(tǒng)中的硬件資源,在各個(gè)分區(qū)之間不能共享這些 資源,這些分區(qū)它們本身是不相交的并且每個(gè)分區(qū)看上去是單機(jī)計(jì)算機(jī)。這 些資源可以包括例如輸入/輸出(1/0)適配器、雙列直插內(nèi)存模塊(DIMM)、 非易失性隨機(jī)存取存儲(chǔ)器(NVRAM)以及硬盤驅(qū)動(dòng)器??梢砸龑?dǎo)和關(guān)閉該 LPAR數(shù)據(jù)處理系統(tǒng)內(nèi)的每個(gè)分區(qū),而無需必須重啟(power-cycle )整個(gè)系統(tǒng)。
在LPAR數(shù)據(jù)處理系統(tǒng)中,不同分區(qū)包括分區(qū)固件,該分區(qū)固件與分區(qū) 中的操作系統(tǒng)相結(jié)合地使用。如本領(lǐng)域所公知的,LPAR數(shù)據(jù)處理系統(tǒng)還使得分區(qū)固件能夠同時(shí)運(yùn)行多線程。分區(qū)固件可以在不引起中斷和OS定時(shí)器 問題的情況下執(zhí)行通常需要延長的執(zhí)行時(shí)間的任務(wù)。當(dāng)OS請求任務(wù)時(shí),固 件首先運(yùn)行一小層分區(qū)固件代碼。該分區(qū)固件代碼向系統(tǒng)管理程序
(hypervisor)發(fā)出調(diào)用(call) /事件以執(zhí)行所請求的任務(wù)。該系統(tǒng)管理程序 (也已知為"虛擬機(jī)監(jiān)視器")通過充當(dāng)多個(gè)分區(qū)之間的仲裁器(arbitrator) 而使得多個(gè)操作系統(tǒng)能夠同時(shí)在一個(gè)數(shù)據(jù)處理系統(tǒng)上運(yùn)行。在已經(jīng)請求了事 件之后,分區(qū)固件代碼向OS返回"繁忙(BUSY)"狀態(tài)。由于"繁忙,,狀 態(tài),該OS識(shí)別出該固件尚未完成收集所請求的數(shù)據(jù),并且該OS再次詢問該 固件。
繼續(xù)進(jìn)行對(duì)分區(qū)固件的持續(xù)詢問,直到該系統(tǒng)管理程序已經(jīng)完成異步事 件(這里也稱為"系統(tǒng)管理程序任務(wù)")。 一旦完成,該系統(tǒng)管理程序就將所 請求的數(shù)據(jù)放置到分區(qū)固件的存儲(chǔ)器區(qū)中,并且將控制返回到分區(qū)固件代碼 以供進(jìn)一 步的數(shù)據(jù)精化(refinement )。
本領(lǐng)域技術(shù)人員將理解通常被認(rèn)為給OS收集數(shù)據(jù)的系統(tǒng)管理程序任 務(wù)是這樣失敗的,即,該系統(tǒng)管理程序任務(wù)不能響應(yīng)分區(qū)固件詢問。在OS 持續(xù)地詢問分區(qū)固件時(shí),該分區(qū)固件代碼持續(xù)地向OS返回"繁忙"狀態(tài)。 如果負(fù)責(zé)服務(wù)該對(duì)數(shù)據(jù)的請求的系統(tǒng)管理程序任務(wù)已經(jīng)停止操作,則該持續(xù) 的詢問不僅導(dǎo)致整個(gè)系統(tǒng)的性能變差而且也導(dǎo)致掛起進(jìn)程。
如本領(lǐng)域中公知的,對(duì)于該持續(xù)詢問問題的一種解決方案是實(shí)施定時(shí)器, 該定時(shí)器在預(yù)定時(shí)間段之后過期。 一旦定時(shí)器過期,OS可以舍棄(fail)尚 未被滿足的任何請求。然而,利用定時(shí)器在確定用于設(shè)定定時(shí)器的正確時(shí)段 方面引入困難。如果將該時(shí)段設(shè)置為短時(shí)間段,則OS可以舍棄仍在工作以 恢復(fù)數(shù)據(jù)但尚未完成恢復(fù)數(shù)據(jù)的系統(tǒng)管理程序任務(wù)。如果將該定時(shí)器時(shí)段設(shè) 置為較長的時(shí)間段,則OS可以防止新請求啟動(dòng)。因此,需要一種在數(shù)據(jù)處 理系統(tǒng)中在異步環(huán)境下探查系統(tǒng)管理程序任務(wù)的系統(tǒng)和方法。
發(fā)明內(nèi)容
本發(fā)明包括一種在異步環(huán)境下探查系統(tǒng)管理程序任務(wù)的系統(tǒng)、方法以及 計(jì)算機(jī)可用介質(zhì)。根據(jù)本發(fā)明實(shí)施例,將數(shù)據(jù)處理系統(tǒng)實(shí)施為邏輯分區(qū)的 (LPAR)數(shù)據(jù)處理系統(tǒng)。LPAR數(shù)據(jù)處理系統(tǒng)包括在多個(gè)分區(qū)中同時(shí)運(yùn)行的 多個(gè)不同種類的操作系統(tǒng)或同 一操作系統(tǒng)的多個(gè)實(shí)例。該多個(gè)分區(qū)還包括提供可以被操作系統(tǒng)調(diào)用的功能的對(duì)應(yīng)分區(qū)固件。在該數(shù)據(jù)處理系統(tǒng)中還包括 用于服務(wù)來自該分區(qū)固件的請求的系統(tǒng)管理程序。
該分區(qū)固件將對(duì)數(shù)據(jù)的請求發(fā)送到該系統(tǒng)管理程序。當(dāng)該系統(tǒng)管理程序 接收到對(duì)數(shù)據(jù)的請求時(shí),該系統(tǒng)管理程序返回標(biāo)識(shí)被分配來處理該請求的任 務(wù)的任務(wù)ID和時(shí)間戳,該時(shí)間戳指示該系統(tǒng)管理程序接收到該請求的時(shí)間。 設(shè)置定時(shí)器以測量從請求分區(qū)固件接收到任務(wù)ID開始度過的時(shí)間量。如果在 已經(jīng)度過了由定時(shí)器測量的預(yù)定時(shí)間段之后該系統(tǒng)管理程序還沒有給該分區(qū)
固件提供所請求的數(shù)據(jù),則該分區(qū)固件詢問與該任務(wù)ID相關(guān)聯(lián)的任務(wù)的狀
態(tài)。如果該任務(wù)仍在運(yùn)行,則該分區(qū)固件將分區(qū)的控制返回到操作系統(tǒng),并 且該分區(qū)固件復(fù)位定時(shí)器。如果任務(wù)沒有運(yùn)行,則丟棄該任務(wù)并且該系統(tǒng)管 理程序執(zhí)行錯(cuò)誤處理以丟棄該任務(wù)。
在下面詳細(xì)撰寫的描述中,本發(fā)明上面的以及其它的目的、特征和優(yōu)點(diǎn) 將變得明顯。
在所附權(quán)利要求書中提出被認(rèn)為是本發(fā)明特性的新特征。然而,參考結(jié) 合附圖閱讀的示例實(shí)施例的以下詳細(xì)描述,將更好地理解本發(fā)明本身、以及
優(yōu)選使用方式、以及另外的目的和優(yōu)點(diǎn),在附圖中 方框圖2是在其中可以實(shí)施本發(fā)明的優(yōu)選實(shí)施例的示例邏輯系統(tǒng)的方框以及
圖3是描述根據(jù)本發(fā)明實(shí)施例的用于在異步環(huán)境下探查系統(tǒng)管理程序任 務(wù)的示例方法的高級(jí)邏輯流程圖。
具體實(shí)施例方式
本發(fā)明包括一種在異步環(huán)境下探查任務(wù)的系統(tǒng)及方法。根據(jù)本發(fā)明實(shí)施 例,將數(shù)據(jù)處理系統(tǒng)實(shí)施為邏輯分區(qū)的(LPAR)數(shù)據(jù)處理系統(tǒng)。LPAR數(shù)據(jù) 處理系統(tǒng)包括在多個(gè)分區(qū)中同時(shí)運(yùn)行的多個(gè)不同種類的操作系統(tǒng)或同 一操作 系統(tǒng)(OS)的多個(gè)實(shí)例。該多個(gè)分區(qū)還包括提供可以被操作系統(tǒng)調(diào)用的功能 的對(duì)應(yīng)分區(qū)固件。在該數(shù)據(jù)處理系統(tǒng)中還包括用于服務(wù)來自每個(gè)分區(qū)固件的請求的系統(tǒng)管理程序。
OS需要來自固件的信息。OS向?qū)?yīng)的分區(qū)固件發(fā)出請求。分區(qū)固件向
系統(tǒng)管理程序發(fā)送對(duì)數(shù)據(jù)的請求。當(dāng)該系統(tǒng)管理程序接收到對(duì)數(shù)據(jù)的請求時(shí),
該系統(tǒng)管理程序返回標(biāo)識(shí)被分配用來處理該請求的任務(wù)的任務(wù)ID。分區(qū)固件 記錄任務(wù)ID和時(shí)間戳,該時(shí)間戳指示該系統(tǒng)管理程序接收到該請求的時(shí)間。 設(shè)置定時(shí)器來測量從該系統(tǒng)管理程序接收到該請求開始度過的時(shí)間量。該分 區(qū)固件將控制返回到OS并指示"繁忙"。OS將重復(fù)對(duì)分區(qū)固件的請求。如 果在已經(jīng)度過由定時(shí)器測量的預(yù)定時(shí)間段之后該系統(tǒng)管理程序尚未給分區(qū)固 件提供所請求的數(shù)據(jù),則該分區(qū)固件詢問與該任務(wù)ID相關(guān)聯(lián)的任務(wù)的狀態(tài)。 如果該任務(wù)仍在運(yùn)行,則該分區(qū)固件將分區(qū)的控制返回到操作系統(tǒng)并指示"繁 忙"。如果任務(wù)沒有運(yùn)行,則丟棄任務(wù)并且該分區(qū)固件執(zhí)行錯(cuò)誤處理以丟棄該 任務(wù)。
現(xiàn)在參考附圖,并且具體地參考圖1,描述在其中可以實(shí)施本發(fā)明實(shí)施 例的數(shù)據(jù)處理系統(tǒng)的框圖。數(shù)據(jù)處理系統(tǒng)100可以是包括連接到系統(tǒng)總線106 的處理器101、 102、 103和104的集合的對(duì)稱多處理器(SMP)系統(tǒng)。例如,
克的國際商業(yè)機(jī)器公司的產(chǎn)品)。可替換地,可以采用單個(gè)處理器系統(tǒng)。存儲(chǔ) 器控制器/高速緩沖存儲(chǔ)器108也連接到系統(tǒng)總線106,該存儲(chǔ)器控制器/高速 緩沖存儲(chǔ)器108提供到本地存儲(chǔ)器160 - 163的集合的接口 。 I/O總線橋110 連接到系統(tǒng)總線106并且提供到I/O總線112的接口。如所描述的可以集成 存儲(chǔ)器控制器/高速緩沖存儲(chǔ)器108和I/O總線橋110。
數(shù)據(jù)處理系統(tǒng)100是邏輯分區(qū)的(LPAR)數(shù)據(jù)處理系統(tǒng)。因此,數(shù)據(jù)處 理系統(tǒng)100可以具有同時(shí)運(yùn)行的多個(gè)不同種類的操作系統(tǒng)(或者單個(gè)搡作系 統(tǒng)的多個(gè)實(shí)例)。這些多個(gè)操作系統(tǒng)中的每一個(gè)可以在其中執(zhí)行任何數(shù)目的軟 件程序。將數(shù)據(jù)處理系統(tǒng)100邏輯分區(qū)使得將不同的PCI I/O適配器120-121、 128- 129、 136、圖形適配器148、硬盤適配器149、主才幾處理器101-104中的每一個(gè)以及本地存儲(chǔ)器160- 163中的每一個(gè)分配給三個(gè)分區(qū)之一。 例如,可以將處理器101、本地存儲(chǔ)器160以及I/0適配器120、 128和129 分配給第一邏輯分區(qū);可以將處理器102 - 103、本地存儲(chǔ)器161以及PCI1/0 適配器121和136分配給第二邏輯分區(qū);以及可以將處理器104、本地存儲(chǔ) 器162- 163、圖形適配器148以及硬盤適配器149分配給第三邏輯分區(qū)。將在數(shù)據(jù)處理系統(tǒng)100內(nèi)執(zhí)行的每個(gè)操作系統(tǒng)分配給不同的邏輯分區(qū)。 因此,在數(shù)據(jù)處理系統(tǒng)100內(nèi)執(zhí)行的每個(gè)操作系統(tǒng)僅可以訪問位于其邏輯分
區(qū)內(nèi)的那些I/0單元。例如,高級(jí)交互執(zhí)行(AIX)操作系統(tǒng)的一個(gè)實(shí)例可以 在分區(qū)Pl內(nèi)執(zhí)行,AIX操作系統(tǒng)的第二實(shí)例(圖像)可以在分區(qū)P2內(nèi)執(zhí)行, 以及Windows XP②操作系統(tǒng)可以在邏輯分區(qū)P3內(nèi)執(zhí)行。Windows XP⑧是華盛 頓雷德蒙的微軟公司的產(chǎn)品和商標(biāo)。本領(lǐng)域技術(shù)人員將理解本發(fā)明不限于數(shù) 據(jù)處理系統(tǒng)100中分區(qū)的數(shù)目為三,而是可以包括任何數(shù)目的分區(qū)。
來自I/O總線112的外設(shè)部件互聯(lián)(PCI)主機(jī)橋130、 114、 122和140 經(jīng)由PCI總線115、 118、 119、 123、 126、 127、 131、 133、 141、 144和145 耦接到1/0插槽170-176。 1/0插槽170-176為PCII/0適配器120、 121、 128、 129、 136、圖形適配器148以及硬盤適配器149提供接口。硬盤適配器149 將硬盤150耦接到I/O總線112。
可以使用市場上可得到的各種計(jì)算機(jī)系統(tǒng)來實(shí)施數(shù)據(jù)處理系統(tǒng)100。例 如,可以使用可從國際商業(yè)機(jī)器公司得到的IBM eServer iSeries模塊840系統(tǒng) 來實(shí)施數(shù)據(jù)處理系統(tǒng)100。這樣的系統(tǒng)在執(zhí)行AIX或Linux操作系統(tǒng)的同時(shí) 可以支持邏輯分區(qū)。
本領(lǐng)域普通技術(shù)人員將理解圖1中描述的硬件可以變化。例如,除了所 描述的硬件之外或者替代所描述的硬件,也可以使用諸如光盤驅(qū)動(dòng)器之類的 其它外設(shè)。所描述的例子不意味著暗示對(duì)于本發(fā)明的結(jié)構(gòu)上的限制。
現(xiàn)在參照圖2,描述其中可以實(shí)施本發(fā)明的示例邏輯分區(qū)的平臺(tái)的方框 圖??梢岳美鐖D1中的數(shù)據(jù)處理系統(tǒng)100來實(shí)施邏輯分區(qū)的平臺(tái)200中 的硬件。邏輯分區(qū)的平臺(tái)200包括分區(qū)硬件230,操作系統(tǒng)(OS)202、 204、 206和208,以及分區(qū)管理固件(這里也被稱為系統(tǒng)管理程序210)。 OS 202、 204、 206和208可以是在平臺(tái)200上同時(shí)運(yùn)行的單個(gè)操作系統(tǒng)的多個(gè)副本或 者多個(gè)不同種類的操作系統(tǒng)。可以利用AIX或Linux來實(shí)施這些OS, AIX 或Linux被設(shè)計(jì)來與系統(tǒng)管理程序進(jìn)行接口。 OS 202、 204、 206和208分別 位于分區(qū)203、 205、 207和209中。
另夕卜,這些分區(qū)203、 205、 207和209還分別包括分區(qū)固件(PFW)211、 213、 215和217。分區(qū)固件211、 213、 215和/或217提供可以被該分區(qū)中的 操作系統(tǒng)調(diào)用的功能。當(dāng)具體呈現(xiàn)分區(qū)203、 205、 207和209時(shí),分區(qū)固件 的拷貝被系統(tǒng)管理程序的分區(qū)管理器加載到每個(gè)分區(qū)中。與這些分區(qū)相關(guān)聯(lián)的或者被分配給這些分區(qū)的處理器然后被分派到分區(qū)存儲(chǔ)器以執(zhí)行該分區(qū)固 件。
分區(qū)硬件230包括多個(gè)處理器232 - 238、多個(gè)系統(tǒng)存儲(chǔ)器單元240-246、 多個(gè)輸入/輸出(I/O)適配器248-262以及存儲(chǔ)單元270。分區(qū)硬件230還包 括服務(wù)處理器290,其可以被用來提供各種服務(wù),諸如分區(qū)中錯(cuò)誤的處理。 處理器232 - 238、存儲(chǔ)器單元240-246、 NVRAM存儲(chǔ)298以及I/O適配器 248-262中的每一個(gè)都可以被分配給邏輯分區(qū)的平臺(tái)200內(nèi)的多個(gè)分區(qū)之一, 每個(gè)分區(qū)對(duì)應(yīng)于操作系統(tǒng)202、 204、 206和208之一。
分區(qū)管理固件(系統(tǒng)管理程序)210執(zhí)行多個(gè)功能并且服務(wù)于分區(qū)203、 205、207和209以創(chuàng)建并執(zhí)行邏輯分區(qū)的平臺(tái)200的分區(qū)。系統(tǒng)管理程序210 是與底層硬件相同的固件實(shí)施的虛擬機(jī)。系統(tǒng)管理程序軟件可從國際商業(yè)機(jī) 器公司得到。固件是存儲(chǔ)在存儲(chǔ)器芯片中的"軟件",該存儲(chǔ)器芯片在沒有電 力供應(yīng)的情況下保存內(nèi)容,諸如例如只讀存儲(chǔ)器(ROM)、可編程ROM (PROM )、可擦除可編程ROM( EPROM )、電可擦除可編程ROM( EEPROM ) 以及非易失性隨機(jī)存取存儲(chǔ)器(非易失性RAM)。因此,系統(tǒng)管理程序210 通過虛擬邏輯分區(qū)的平臺(tái)200的所有硬件資源而允許同時(shí)執(zhí)行獨(dú)立的OS映 像202、 204、 206和208。
可以通過諸如控制臺(tái)(console) 264之類的硬件管理控制臺(tái)來控制不同 分區(qū)的操作??刂婆_(tái)264是獨(dú)立的數(shù)據(jù)處理系統(tǒng),系統(tǒng)管理員可以從該獨(dú)立 的數(shù)據(jù)處理系統(tǒng)執(zhí)行包括向不同分區(qū)重新分配資源的各種功能。
圖3是描述根據(jù)本發(fā)明優(yōu)選實(shí)施例的用于在數(shù)據(jù)處理系統(tǒng)中在異步環(huán)境 下探察任務(wù)的示例方法的高級(jí)邏輯流程圖。處理在步驟300開始,并且進(jìn)行
到步驟304,其示出了特定的分區(qū)固件(例如,圖2的分區(qū)固件211、 213、 215和217 )確定系統(tǒng)管理程序210是否已經(jīng)成功地啟動(dòng)了所請求的任務(wù)。如 果確定是,處理進(jìn)行到步驟314,如這里更詳細(xì)討論的。
如果系統(tǒng)管理程序210尚未成功地啟動(dòng)所請求的任務(wù),則處理進(jìn)行到步 驟306,其示出了分區(qū)固件向系統(tǒng)管理程序210發(fā)出對(duì)數(shù)據(jù)的請求。處理進(jìn) 行到步驟308,其示出了系統(tǒng)管理程序210將任務(wù)ID代碼發(fā)送回分區(qū)固件。 任務(wù)ID代碼標(biāo)識(shí)被分配來服務(wù)該對(duì)數(shù)據(jù)的請求的任務(wù)。處理進(jìn)行到步驟310, 其示出了在接收到任務(wù)ID代碼時(shí),分區(qū)固件記錄任務(wù)ID代碼和時(shí)間戳。
步驟314示出了分區(qū)固件確定是否可從系統(tǒng)管理程序210得到所請求的數(shù)據(jù)。如果可得到所請求的數(shù)據(jù),則分區(qū)固件處理所請求的數(shù)據(jù),如步驟316中所示。然后,分區(qū)固件將其自身狀態(tài)設(shè)置為"成功(SUCCESS )"(步驟318 ), 并且將分區(qū)的控制返回操作系統(tǒng)(例如,操作系統(tǒng)202、 204、 206和208 ), 如步驟324所示的。處理進(jìn)行到步驟325,其示出分區(qū)固件復(fù)位定時(shí)器以用 于來自分區(qū)固件對(duì)系統(tǒng)管理程序210的另一詢問。處理進(jìn)行到步驟326,其 示出分區(qū)固件確定是否將其自身狀態(tài)設(shè)置為"繁忙"。如果該狀態(tài)沒有被設(shè)置 為"繁忙(BUSY)",則該處理結(jié)束,如步驟326所示。如果該狀態(tài)被設(shè)置為 "繁忙",則該處理返回步驟304,并且進(jìn)入循環(huán)方式(iterative fashion )。返回步驟314,如果不能從系統(tǒng)管理程序210得到所請求的數(shù)據(jù),則處 理進(jìn)行到步驟320,其示出分區(qū)固件對(duì)定時(shí)器進(jìn)行增計(jì)數(shù)以明了自在分區(qū)固 件從系統(tǒng)管理程序210接收到任務(wù)ID開始度過的時(shí)間。處理進(jìn)行到步驟322, 其示出分區(qū)固件確定定時(shí)器是否已經(jīng)達(dá)到預(yù)定的定時(shí)器閾值。如本領(lǐng)域技術(shù) 人員公知的,該預(yù)定的閾值可以被設(shè)置為任何適當(dāng)?shù)闹?。例如,在本發(fā)明的 實(shí)施例中,將預(yù)定的定時(shí)器閾值設(shè)置為500毫秒,這是因?yàn)樵谠摃r(shí)間內(nèi)OS 可以向分區(qū)固件詢問滿足原請求的數(shù)據(jù)。如果在步驟322尚未達(dá)到該定時(shí)器閾值,則處理進(jìn)行到步驟336,其示 出分區(qū)固件將該任務(wù)的狀態(tài)設(shè)置為"繁忙"。然后,處理進(jìn)行到步驟324,其 示出分區(qū)固件將分區(qū)的控制返回到相關(guān)聯(lián)的操作系統(tǒng)。如果在步驟322已經(jīng)達(dá)到該定時(shí)器閾值,則處理進(jìn)行到步驟328,其示 出分區(qū)固件利用該請求的任務(wù)ID向系統(tǒng)管理程序210發(fā)出調(diào)用。處理進(jìn)行到 步驟330,其示出系統(tǒng)管理程序210確定該特定分區(qū)是否有權(quán)詢問具有該特 定的任務(wù)ID的任務(wù)。如果沒有,則處理進(jìn)行到步驟338。如果在步驟330該特定分區(qū)有權(quán)詢問具有該特定的任務(wù)ID的任務(wù),則處 理進(jìn)行到步驟332,其示出系統(tǒng)管理程序210將該請求的狀態(tài)返回給該分區(qū) 固件。如果在步驟334該任務(wù)仍在運(yùn)行,如在步驟334所確定的,該分區(qū)固 件將該任務(wù)的狀態(tài)設(shè)置為"繁忙",如在步驟334和336所示的。然后處理進(jìn) 行到步驟324。如果在步驟334該任務(wù)沒有運(yùn)行,則處理進(jìn)行到步驟338,其 示出系統(tǒng)管理程序210丟棄該任務(wù)并執(zhí)行錯(cuò)誤處理。然后,該處理進(jìn)行到步 驟324。步驟324示出了分區(qū)固件將分區(qū)的控制返回到與該分區(qū)固件相關(guān)聯(lián)的操 作系統(tǒng)。例如,如果分區(qū)固件217正向系統(tǒng)管理程序210發(fā)送對(duì)數(shù)據(jù)的請求,則分區(qū)固件217將分區(qū)的控制返回到操作系統(tǒng)208。處理/人步驟324進(jìn)行到 步驟325,其示出該分區(qū)固件復(fù)位定時(shí)器以用于來自該分區(qū)固件的對(duì)系統(tǒng)管 理程序210的另一詢問。處理進(jìn)行到步驟326,其示出該分區(qū)固件檢查以查 看該數(shù)據(jù)請求的狀態(tài)是否仍是"繁忙"。如果是,則處理返回步驟300。如果 在步驟326該數(shù)據(jù)請求的狀態(tài)不是"繁忙",則處理在步驟327結(jié)束?;旧?, 如果數(shù)據(jù)請求的狀態(tài)不是"繁忙",則該分區(qū)固件假設(shè)已經(jīng)滿足該請求或者已 經(jīng)丟棄該請求,如在步驟338中所示的。如所討論的,本發(fā)明包括一種用于在異步環(huán)境下探察任務(wù)的系統(tǒng)和方法。 根據(jù)本發(fā)明的實(shí)施例,數(shù)據(jù)處理系統(tǒng)被實(shí)施為邏輯分區(qū)(LPAR)的數(shù)據(jù)處理 系統(tǒng)。該LPAR數(shù)據(jù)處理系統(tǒng)包括在多個(gè)分區(qū)上同時(shí)運(yùn)行的多個(gè)不同種類的 操作系統(tǒng)或同 一 操作系統(tǒng)的多個(gè)實(shí)例。該多個(gè)分區(qū)還包括對(duì)應(yīng)的分區(qū)固件, 其提供可以被所述多個(gè)操作系統(tǒng)調(diào)用的功能。在該數(shù)據(jù)處理系統(tǒng)中還包括用 于服務(wù)于來自該分區(qū)固件的請求的系統(tǒng)管理程序。該分區(qū)固件向該系統(tǒng)管理程序發(fā)送對(duì)數(shù)據(jù)的請求。當(dāng)該系統(tǒng)管理程序接 收到該對(duì)數(shù)據(jù)的請求時(shí),該系統(tǒng)管理程序返回標(biāo)識(shí)被分配來處理該請求的任 務(wù)的任務(wù)ID。分區(qū)固件記錄該任務(wù)ID和指示該系統(tǒng)管理程序接收到該請求 的時(shí)間的時(shí)間戳。該分區(qū)固件設(shè)置定時(shí)器以測量從請求分區(qū)固件接收到任務(wù) ID開始度過的時(shí)間量。如果在已經(jīng)度過由該定時(shí)器測量的預(yù)定的時(shí)間段之后, 該系統(tǒng)管理程序還沒有給該分區(qū)固件提供所請求的數(shù)據(jù),則該分區(qū)固件詢問 與該任務(wù)ID相關(guān)聯(lián)的任務(wù)的狀態(tài)。如果該任務(wù)仍在運(yùn)行,則該分區(qū)固件將該 分區(qū)的控制返回到該操作系統(tǒng)。如果該任務(wù)沒有運(yùn)行,則丟棄該任務(wù)并且該 系統(tǒng)管理程序執(zhí)行錯(cuò)誤處理以丟棄該任務(wù)。應(yīng)該理解可以以包括程序產(chǎn)品的計(jì)算機(jī)可用介質(zhì)來替換地實(shí)施本發(fā)明的 至少一些方面。定義本發(fā)明中的功能的程序可以經(jīng)由多種信號(hào)承載介質(zhì)被傳 遞到數(shù)據(jù)存儲(chǔ)系統(tǒng)或者計(jì)算機(jī)系統(tǒng),所述多種信號(hào)承載介質(zhì)包括但不限于 不可寫的存儲(chǔ)介質(zhì)(例如CD-ROM);可寫的存儲(chǔ)介質(zhì)(例如硬盤驅(qū)動(dòng)器、 讀/寫CD-ROM、光學(xué)介質(zhì));諸如但不限于隨機(jī)存取存儲(chǔ)器(RAM)的系統(tǒng) 存儲(chǔ)器;以及諸如計(jì)算機(jī)和電話網(wǎng)絡(luò)的包括以太網(wǎng)、因特網(wǎng)、無線網(wǎng)絡(luò)等網(wǎng) 絡(luò)系統(tǒng)的通信介質(zhì)。因此,應(yīng)該理解這樣的信號(hào)承載介質(zhì)在傳蓮或編碼本發(fā) 明中的直接方法起作用的計(jì)算機(jī)可讀指令時(shí)表示本發(fā)明的替換實(shí)施例。另夕卜, 應(yīng)該理解本發(fā)明可以通過具有以這里描述的硬件、軟件、或軟件和硬件的組合或它們的等效物的形式的部件的系統(tǒng)來實(shí)施。盡管已經(jīng)參考優(yōu)選實(shí)施例具體地示出并描述了本發(fā)明,但是本領(lǐng)域技術(shù) 人員應(yīng)該理解在不偏離本發(fā)明的精神和范圍的情況下可以在其中作出各種形 式上和細(xì)節(jié)上的改變。
權(quán)利要求
1.一種計(jì)算機(jī)可實(shí)施的方法,包括從邏輯分區(qū)的數(shù)據(jù)處理系統(tǒng)中的分區(qū)向系統(tǒng)管理程序發(fā)送數(shù)據(jù)請求;從所述系統(tǒng)管理程序接收數(shù)據(jù)請求標(biāo)識(shí)和時(shí)間戳;設(shè)置定時(shí)器以確定自從所述系統(tǒng)管理程序接收到所述時(shí)間戳開始度過的時(shí)間段的長度;如果尚未滿足所述數(shù)據(jù)請求,則對(duì)所述定時(shí)器進(jìn)行增計(jì)數(shù);如果所述定時(shí)器已經(jīng)達(dá)到預(yù)定的閾值,則詢問所述系統(tǒng)管理程序以確定所述數(shù)據(jù)請求的狀態(tài);以及如果處理所述數(shù)據(jù)請求的任務(wù)沒有運(yùn)行,則丟棄所述任務(wù)并執(zhí)行錯(cuò)誤處理。
2. 如權(quán)利要求1所述的方法,還包括如果處理所述數(shù)據(jù)請求的所述任務(wù)仍在運(yùn)行,則將所述任務(wù)的狀態(tài)標(biāo)記 為"繁忙"。
3. 如權(quán)利要求l所述的方法,還包括如果已經(jīng)滿足了所述數(shù)據(jù)請求,則處理與所述數(shù)據(jù)請求相對(duì)應(yīng)的數(shù)據(jù);以及將所述任務(wù)的狀態(tài)標(biāo)記為"成功"。
4. 如權(quán)利要求l所述的方法,還包括 將所述分區(qū)的控制返回到在所述分區(qū)內(nèi)執(zhí)行的操作系統(tǒng)。
5. 如權(quán)利要求l所述的方法,還包括確定所述分區(qū)是否有權(quán)確定所述任務(wù)的所述狀態(tài)。
6. —種數(shù)據(jù)處理系統(tǒng),包括 至少一個(gè)處理器;耦接到所述至少 一個(gè)處理器的數(shù)據(jù)總線;包含計(jì)算機(jī)程序代碼的計(jì)算機(jī)可用介質(zhì),所述計(jì)算機(jī)可用介質(zhì)耦接到所 述數(shù)據(jù)總線,所述計(jì)算機(jī)程序代碼包括可由所述處理器執(zhí)行的指令并且所述 指令被配置為將來自所述數(shù)據(jù)處理系統(tǒng)中的分區(qū)的數(shù)據(jù)請求發(fā)送到系統(tǒng)管理程序;從所述系統(tǒng)管理程序接收數(shù)據(jù)請求標(biāo)識(shí)和時(shí)間戳;將定時(shí)器設(shè)置為確定自從所述系統(tǒng)管理程序接收到所述時(shí)間戳開始度過的時(shí)間段的長度;如果尚未滿足所述數(shù)據(jù)請求,則對(duì)所述定時(shí)器進(jìn)行增計(jì)數(shù); 如果所述定時(shí)器已經(jīng)到達(dá)預(yù)定的閾值,則詢問所述系統(tǒng)管理程序以確定所述數(shù)據(jù)請求的狀態(tài);以及如果處理所述數(shù)據(jù)請求的任務(wù)沒有運(yùn)行,則丟棄所述任務(wù)并執(zhí)行錯(cuò)誤處理。
7. 如權(quán)利要求6所述的數(shù)據(jù)處理系統(tǒng),其中所述指令還被配置為 如果處理所述數(shù)據(jù)請求的所述任務(wù)仍在運(yùn)行,則將所述任務(wù)的狀態(tài)標(biāo)記為"繁忙"。
8. 如權(quán)利要求6所述的數(shù)據(jù)處理系統(tǒng),其中所述指令還被配置為 如果已經(jīng)滿足所述數(shù)據(jù)請求,則處理與所述數(shù)據(jù)請求相對(duì)應(yīng)的數(shù)據(jù);以及將所述任務(wù)的狀態(tài)標(biāo)記為"成功"。
9. 如權(quán)利要求6所述的數(shù)據(jù)處理系統(tǒng),其中所述指令還^皮配置為 將所述分區(qū)的控制返回到在所述分區(qū)內(nèi)執(zhí)行的操作系統(tǒng)。
10. 如權(quán)利要求6所述的數(shù)據(jù)處理系統(tǒng),其中所述指令還被配置為 確定所述分區(qū)是否有權(quán)確定所述任務(wù)的所述狀態(tài)。
全文摘要
一種在異步環(huán)境下探測系統(tǒng)管理程序任務(wù)的系統(tǒng)、方法以及計(jì)算機(jī)可用介質(zhì)。根據(jù)本發(fā)明實(shí)施例,分區(qū)固件將對(duì)數(shù)據(jù)的請求發(fā)送到系統(tǒng)管理程序。當(dāng)系統(tǒng)管理程序接收到該對(duì)數(shù)據(jù)的請求時(shí),系統(tǒng)管理程序返回標(biāo)識(shí)被分配來處理該請求的任務(wù)的任務(wù)ID。分區(qū)固件記錄該任務(wù)ID和時(shí)間戳,該時(shí)間戳指示系統(tǒng)管理程序接收到該請求的時(shí)間。設(shè)置定時(shí)器以測量自請求的分區(qū)固件接收到該任務(wù)ID開始度過的時(shí)間量。如果在已經(jīng)度過了由定時(shí)器測量的預(yù)定時(shí)間段之后,系統(tǒng)管理程序還沒有向分區(qū)固件提供所請求的數(shù)據(jù),則分區(qū)固件詢問與該任務(wù)ID相關(guān)聯(lián)的任務(wù)的狀態(tài)。如果該任務(wù)仍在運(yùn)行,則分區(qū)固件將分區(qū)的控制返回到操作系統(tǒng)。
文檔編號(hào)G06F9/50GK101290595SQ20081009222
公開日2008年10月22日 申請日期2008年4月17日 優(yōu)先權(quán)日2007年4月17日
發(fā)明者克里斯托弗·H·奧斯汀, 加里·L·魯澤克, 戴維·A·拉森, 詹姆斯·A·林德曼 申請人:國際商業(yè)機(jī)器公司