程序對警告追蹤中斷設施的使用的制作方法
【專利摘要】向程序(例如,操作系統(tǒng))提供具有寬限期的警告,在該寬限期中,執(zhí)行諸如清理的功能(例如,完成、停止和/或移動可分派單元)。在一個實例中,向該程序警告其正失去對其共享資源的存取。舉例而言,在虛擬環(huán)境中,向客戶機程序警告:其將失去其中央處理單元資源,且因此,其將執(zhí)行諸如清理的功能。
【專利說明】程序對警告追蹤中斷設施的使用
【技術領域】
[0001]本發(fā)明的方面大體上涉及計算環(huán)境內的處理,且具體而言,涉及促進與共享資源相關聯的處理。
【背景技術】
[0002]資源共享的環(huán)境的一種類型為虛擬環(huán)境,該虛擬環(huán)境包括主機中央處理單元(CPU)及一個或多個客戶機中央處理單元。由在主機CPU上執(zhí)行的主機程序(例如,主機操作系統(tǒng))來布建(provis1n)客戶機CPU(亦稱為虛擬CPU)。主機程序執(zhí)行動作以從底層主機配置分配資源并將那些資源指派給客戶機CPU。
[0003]在一個特定實施例中,當主機CPU進入解譯執(zhí)行模式時,存在客戶機CPU。在此點處,客戶機操作系統(tǒng)(本文中亦稱作客戶機程序)開始虛擬化CPU上的執(zhí)行,同時主機程序暫時中止主機CPU上的執(zhí)行。在解譯執(zhí)行模式結束時,主機程序繼續(xù)執(zhí)行CPU上的執(zhí)行。鏈接技術存在于主機與客戶機之間,主機及客戶機狀態(tài)藉由這些連結技術而得以保存及恢復。通常,當主機程序啟動客戶機程序時,主機程序暫時中止,直至客戶機程序返回為止。客戶機CPU與主機CPU兩者是一個主機CPU的不同模式。
[0004]主機配置通常包括計算機系統(tǒng)的所有資源。這些資源包括(但不限于)中央處理單元(CPU)、主存儲器及輸入/輸出(I/O)器件。在此系統(tǒng)中,多個客戶機CPU可由單一主機(PU來支持。此情形藉由以下操作來實現:為每個客戶機CPU指派稱作時間片(timeslice)的一段時間以使用主機CPU,以及接著將主CPU移動至另一客戶機CPU達一時間片,等等。主機CPU可支持之客戶機CPU的數目根據主機CPU之能力以及待指派給每個客戶機CPU之所要能力而變化。
[0005]客戶機配置通常由兩個或兩個以上客戶機CPU形成,且被稱作客戶機多處理(MP)配置??山逵蓡为氈鳈CCPU之共享或甚至藉由共享單一主機CPU來布建每個客戶機CPU。此共享的一個屬性在于:客戶機CPU可操作達稱作時間片的一段時間,且接著處于非作用中的達某一任意一段時間。非作用中時段基于以下各者而變化:由系統(tǒng)建立的優(yōu)先權策略、將共享主機CPU的客戶機CPU的總數,以及正使用的特定共享技術。
[0006]在此客戶機多處理系統(tǒng)中,有時稱作可分派單元(DU)的程序可由客戶機CPU上的客戶機操作系統(tǒng)來分派,且接著在該可分派單元的執(zhí)行期間,該可分派單元的主機時間片期滿。此情形可使可分派單元處于以下狀況下:使得可分派單元無法在客戶機多處理配置的任何其他客戶機CPU上繼續(xù),而不管任何其他客戶機CPU的可用性。確切而言,可分派單元必須等待唯一客戶機CPU以接收其下一時間片以便繼續(xù)?;诠蚕砑夹g以及客戶機配置的相對優(yōu)先權,可使下一時間片延遲達相當的一段時間。即使客戶機配置具有能夠執(zhí)行可分派單元的其他客戶機CPU,可分派單元的繼續(xù)也是不可能的(歸因于在先前時間片期滿時保存的可分派單元的客戶機CPU的狀態(tài))??煞峙蓡卧捣亲饔弥械模敝猎摼_狀態(tài)可用以使客戶機CPU繼續(xù)為止。
【發(fā)明內容】
[0007]經由提供一種用于有助于促進計算環(huán)境中的處理的計算機程序產品來克服先前技術的缺點且提供優(yōu)點。該計算機程序產品包括計算機可讀儲存介質,該計算機可讀儲存介質可由處理電路讀取且儲存指令以供該處理電路執(zhí)行以用于執(zhí)行方法。該方法例如包括:由程序獲取在該計算環(huán)境內安裝警告追蹤設施的指示,該警告追蹤設施將寬限期提供給該程序以執(zhí)行一功能;由該程序接收警告追蹤通知,該通知指示警告追蹤寬限期已經開始;以及基于該警告追蹤通知,由該程序在警告追蹤該寬限期內至少啟動該功能。
[0008]本文中亦描述且主張與本發(fā)明的一個或多個方面有關的方法以及系統(tǒng)。另外,本文中亦描述且可主張與本發(fā)明的一個或多個方面有關的服務。
[0009]經由本發(fā)明的技術來實現額外特征以及優(yōu)點。本發(fā)明的其他實施例以及方面在本文中加以詳細描述且被視為所主張的本發(fā)明的一部分。
【專利附圖】
【附圖說明】
[0010]特別指出本發(fā)明的一個或多個方面,且在說明書完結時于申請專利范圍中作為實例清楚地主張本發(fā)明的一個或多個方面。本發(fā)明的前述內容以及目標、特征以及優(yōu)點自以下結合附圖進行的詳細描述而顯而易見。
[0011]圖1描繪含有且使用本發(fā)明的一個或多個方面的計算環(huán)境的實施例;
[0012]圖2描繪含有且使用本發(fā)明的一個或多個方面的計算環(huán)境的另一實施例;
[0013]圖3描繪含有且使用本發(fā)明的一個或多個方面的計算環(huán)境的又一實施例;
[0014]圖4描繪根據本發(fā)明的方面的與警告追蹤中斷設施的客戶機觀測相關聯的邏輯的實施例;
[0015]圖5描繪根據本發(fā)明的方面的與警告追蹤中斷設施的主機觀測相關聯的邏輯的實施例;
[0016]圖6描繪根據本發(fā)明的方面的與處置客戶機退出的主機相關聯的邏輯的實施例;
[0017]圖7描繪根據本發(fā)明的方面的警告追蹤中斷設施邏輯的概述的實施例;
[0018]圖8A至圖SC描繪根據本發(fā)明的方面的與警告追蹤中斷設施處理相關聯的邏輯的實施例;
[0019]圖9描繪根據本發(fā)明的方面的與接收警告追蹤中斷相關聯的邏輯的實施例;
[0020]圖10描繪根據本發(fā)明的方面的所使用的診斷指令的格式的實施例;
[0021]圖11描繪含有本發(fā)明的一個或多個方面所述的計算機程序產品的實施例;
[0022]圖12描繪含有且使用本發(fā)明的一個或多個方面的主計算機系統(tǒng)的實施例;
[0023]圖13描繪含有且使用本發(fā)明的一個或多個方面的計算機系統(tǒng)的另一個實例;
[0024]圖14描繪含有且使用本發(fā)明的一個或多個方面的包含計算機網絡的計算機系統(tǒng)的另一個實例;
[0025]圖15描繪含有且使用本發(fā)明的一個或多個方面的計算機系統(tǒng)的各種組件的實施例;
[0026]圖16A描繪含有且使用本發(fā)明的一個或多個方面的圖15的計算機系統(tǒng)的執(zhí)行單元的實施例;
[0027]圖16B描繪含有且使用本發(fā)明的一個或多個方面的圖15的計算機系統(tǒng)的分支單元的實施例;
[0028]圖16C描繪含有且使用本發(fā)明的一個或多個方面的圖15的計算機系統(tǒng)的加載/儲存單元的實施例;以及
[0029]圖17描繪含有且使用本發(fā)明的一個或多個方面的仿真主計算機系統(tǒng)的實施例。
【具體實施方式】
[0030]根據本發(fā)明的方面,提供用于向程序(例如,操作系統(tǒng))警告其具有執(zhí)行功能的寬限期的能力。舉例而言,對程序給予寬限期以執(zhí)行清理(例如,完成、停止和/或移動可分派單元)。
[0031]根據本發(fā)明的另一方面,向程序和/或處理器警告其將失去對資源(例如,共享資源)的存取。舉例而言,將如下警告提供給與其他處理器共享資源的處理器:該處理器將失去對資源的存取。作為另一個實例,在共享處理器上執(zhí)行的諸如操作系統(tǒng)的程序(亦即,程序與其他程序共享處理器)警告其將失去其處理器資源。
[0032]在一個特定實施例中,提供如下能力:向在由主機CPU布建(provis1n)的客戶機CPU上執(zhí)行的客戶機程序提供:關于自主機CPU給予客戶機CPU的時間片的期滿的警告;或關于主機對客戶機的時間片的優(yōu)先執(zhí)行的警告。該警告提供寬限期,客戶機CPU可使用該寬限期來執(zhí)行特定功能,諸如完成可分派單元的執(zhí)行、在可分派單元為可重新分派的點停止可分派單元和/或將可分派單元移動至另一客戶機CPU。
[0033]如本文中所使用,作為實例,寬限期包括時間量、指令的數目、循環(huán)的數目等。寬限期具有可執(zhí)行一個或多個功能的預定持續(xù)時間。
[0034]參看圖1來描述含有且使用本發(fā)明的一個或多個方面的計算環(huán)境的一個實施例。在此特定實施例中,計算環(huán)境100包括共享資源104的多個處理器102。對每個處理器(和/或在處理器上執(zhí)行的諸如操作系統(tǒng)的程序)給予稱作時間片的某一時間量以共享資源。作為實例,資源包括中央處理單元資源、內存、輸入/輸出器件或接口,和/或其他資源。向能夠存取資源的處理器(或在處理器上執(zhí)行的程序)警告處理器的存取將結束,且因此,處理器(或程序)將執(zhí)行特定動作,諸如清理、完成工作單元、停止工作單元、移動工作單元坐寸ο
[0035]參看圖2來描述含有且使用本發(fā)明的一個或多個方面的計算環(huán)境200的另一實施例。計算環(huán)境 200 系基于例如由 Internat1nal Business Machines Corporat1n ( IBM ^
)(Armonk, New York)供應的 z/Architecture'。z/Architecture "描述于 2010 年 8 月的題為 “z/Architecture Principles of Operat1n” 的 IBM⑧公開案(IBM? 公開案第SA22-7832-08號第九版本)中,該案藉此以全文引用的方式并入本文中。在一個實例中,基于 z/Architecture? 的計算環(huán)境包括由 Internat1nal Business Machines
Corporat1n(Armonk, New York)供應的 System z.服務器。IBM@、z/Architecture?
以及;zSeries.以及下文提及的 z/VM? 以及 z/OS? 為 Internat1nal Business MachinesCorporat1n (Armonk, New York, USA)的注冊商標。本文中所使用的其他名稱可為Internat1nal Business Machines Corporat1n或其他公司的注冊商標、商標或產品名稱。
[0036]作為一個實例,計算環(huán)境200包括提供虛擬機支持的中央處理器復合體(centralprocessor complex, CPC) 202。CPC202例如包括一個或多個虛擬機204 (或在另一實施例中,邏輯分割區(qū))、一個或多個中央處理器206、至少一個主機208 (例如,諸如超管理器的控制程序)以及輸入/輸出子系統(tǒng)210,下文描述前述各者中的每個者。在此實例中,虛擬機以及主機包括于內存中。
[0037]作為實例,CPC的虛擬機支持提供操作大量虛擬機的能力,這些虛擬機各自能夠主控諸如z/VM?、z/OS?或Linux的客戶機操作系統(tǒng)212。每個虛擬機204能夠作為單獨系統(tǒng)起作用。亦即,每個虛擬機可經獨立地重設,主控客戶機操作系統(tǒng),并以不同程序操作。在虛擬機中執(zhí)行的操作系統(tǒng)或應用程序顯現為能夠存取完全且完整系統(tǒng),但實際上,僅系統(tǒng)的一部分為可用的。
[0038]CPC的實體資源(例如,CPU、內存、1/0器件等)由主機208擁有,且共享實體資源由主機按需要分派給客戶機操作系統(tǒng)以滿足客戶機操作系統(tǒng)的處理需求??蛻魴C操作系統(tǒng)與實體共享機器資源之間的互動由主機控制,此系由于大量客戶機通常阻止主機簡單地分割硬件資源并將硬件資源指派給所配置的客戶機。
[0039]中央處理器206為可指派給虛擬機的實體處理器資源。舉例而言,虛擬機204包括一個或多個邏輯處理器,這些邏輯處理器中的每個者表示可經動態(tài)地分配給虛擬機的實體處理器資源206的全部或共享。虛擬機204由主機208管理。作為實例,主機可以在處理器206上執(zhí)行的微碼來實施,或可為在機器上執(zhí)行的主機操作系統(tǒng)的一部分。在一個實例中,主機 208 為由 Internat1nal Business Machines Corporat1n (Armonk, New York)供應的處理器資源/系統(tǒng)管理器(PR/SM)。
[0040]輸入/輸出子系統(tǒng)210指導在器件與主儲存器之間的信息的流動。輸入/輸出子系統(tǒng)210耦接至中央處理復合體,就此而言,輸入/輸出子系統(tǒng)210可為中央處理復合體的部分或與中央處理復合體分離。1/0子系統(tǒng)減輕中央處理器關于與耦接至CPC的1/0器件直接通信的任務,且準許數據處理與1/0處理同時進行。
[0041]在一個實施例中,主機(例如,PR/SM)以及處理器(例如,System ζκ')硬件/固件以受控合作方式彼此互動,以便處理客戶機操作系統(tǒng)操作而不需要自/至客戶機操作系統(tǒng)以及主機的控制的傳送??稍跓o主機干預情況下經由允許針對客戶機解譯地執(zhí)行指令的設施直接執(zhí)行客戶機操作。此設施提供主機可發(fā)出的指令“啟動解譯執(zhí)行(SIE) ”,該指令指明保持客戶機(虛擬機)狀態(tài)以及控制的稱作狀態(tài)描述的控制區(qū)塊。該指令將CPU置于直接處理客戶機指令以及中斷的解譯執(zhí)行模式,直至出現需要主機關注的條件為止。當發(fā)生此條件時,解譯執(zhí)行結束,且呈現主機中斷,或SIE指令完成儲存所遭遇的條件的細節(jié);此后一個動作被稱作攔截。解譯執(zhí)行的一個實例描述于1985年9月的“System/370ExtendedArchitecture/Interpretive Execut1n”(IBM 公開案第 SA22-7095-01 號)中,該案藉此以全文引用的方式并入本文中。
[0042]如本文中所使用,固件例如包括處理器的微碼、毫碼(millicode)和/或宏碼。固件例如包括用于較高層級機器碼的實施方案中的硬件層級的指令和/或數據結構。在一個實施例中,固件包括例如專屬碼,專屬碼通常作為包括信賴軟件的微碼或基礎硬件特定的微碼而遞送且控制對系統(tǒng)硬件的操作系統(tǒng)存取。
[0043]在圖3中描繪含有本發(fā)明的一個或多個方面的計算環(huán)境的另一個實例。在此實例中,提供仿真主計算機系統(tǒng)300,仿真主計算機系統(tǒng)300仿真主機架構的主計算機302。在仿真主計算機系統(tǒng)300中,主機處理器(CPU) 304為仿真主機處理器(或虛擬主機處理器),且經由具有不同于供主計算機302的處理器使用的原生指令集架構的原生指令集架構的仿真處理器306來實現。仿真主計算機系統(tǒng)300具有仿真處理器306可存取的內存308。在實例實施例中,內存308經分割成主計算機內存部分310以及仿真例程部分312。主計算機內存310可用于根據主計算機架構的仿真主計算機302的程序,且可包括主機或超管理器314與執(zhí)行客戶機操作系統(tǒng)318的一個或多個虛擬機316兩者(類似于圖2中的類似命名的組件)。
[0044]模擬處理器306執(zhí)行不同于模擬處理器304之架構的架構之經建構指令集的原生指令。例如,自仿真例程內存312獲得原生指令。模擬處理器306可藉由使用在序列與存取/解碼例程中獲得之一個或多個指令來自主計算機內存310中的程序存取用于執(zhí)行之主機指令,該序列與存取/解碼例程可解碼所存取之主機指令以判定用于仿真所存取之主機指令之功能的原生指令執(zhí)行例程。一個主機指令可為,例如,啟動解譯執(zhí)行(SIE)指令,主機藉由該指令而設法在虛擬機中執(zhí)行客戶機程序。仿真例程312可包括對此指令之支持,且用于根據此SIE指令之定義執(zhí)行虛擬機316中之一序列客戶機指令。
[0045]作為實例,針對主計算機系統(tǒng)302之架構定義之其他設施可藉由經建構之設施例程來仿真,包括諸如通用寄存器、控制寄存器、動態(tài)地址轉譯以及I/o子系統(tǒng)支持以及處理器高速緩存的設施。仿真例程亦可利用仿真處理器306中可用之功能(諸如,通用寄存器以及虛擬地址之動態(tài)轉譯)以改良仿真例程的效能。亦可提供專用硬件以及卸除引擎以協處理器306仿真主計算機302之功能。
[0046]根據本發(fā)明的方面,提供可用于許多類型的計算環(huán)境中的警告追蹤中斷設施。盡管警告追蹤中斷設施可用于許多類型之環(huán)境中,但本文中參看客戶機多處理系統(tǒng)來描述設施的方面。如上文所描述,在客戶機多處理系統(tǒng)中,客戶機操作系統(tǒng)在客戶機中央處理單元上分派可分派單元(例如,程序、程序代碼等),這些客戶機中央處理單元由至少一個主機中央處理單元來主控。主機CPU為客戶機CPU提供一時間片(例如,時間量或其他時段,諸如指令之數目、循環(huán)之數目等),可分派單元在該時間片期間執(zhí)行。若在可分派單元之執(zhí)行期間,時間片期滿,則可使得可分派單元處于以下狀況:使得其無法在客戶機多處理配置的任何其他客戶機CPU上繼續(xù),而不管任何其他客戶機CPU的可用性。確切而言,可分派單元必須等待唯一的客戶機CPU來接收其下一時間片以便繼續(xù)。基于所使用之特定共享技術以及客戶機配置之相對優(yōu)先權,可使下一時間片延遲達相當的一段時間。即使客戶機配置具有能夠執(zhí)行可分派單元的其他客戶機CPU,可分派單元的繼續(xù)也是不可能的(歸因于在先前時間片期滿時保存的可分派單元之客戶機CPU的狀態(tài))??煞峙蓡卧捣亲饔弥械模敝猎摼_狀態(tài)可用以繼續(xù)客戶機CPU為止。
[0047]有可能藉由授予額外時間(或其他額外時段,諸如額外指令、循環(huán)等)來延長時間片,但即使藉由此額外時間,客戶機CPU可延長可分派單元之執(zhí)行,而仍使可分派單元處于相同的不可分派狀況,此系由于將處于正常時間片的期滿時間。
[0048]由于主機程序并不知曉供執(zhí)行任意可分派單元之任意客戶機程序使用的控制以及狀態(tài),因此無法在不建立主機程序與客戶機程序之間的協議之情況下進行始終對客戶機操作系統(tǒng)授予額外時間以清理其可分派單元。在無協議之情況下,將在主處理中消耗對客戶機CPU授予之任何額外時間,且仍有可能以相同的可分派單元卡塞狀況結束。因此,根據本發(fā)明的方面,提供此協議。
[0049]根據本發(fā)明的方面,提供包括警告之寬限期或延長時間,該警告向客戶機程序指示應采取特定動作(例如,完成可分派單元或使得可分派單元為可重新分派的)。作為實例,響應于時間片之期滿或在時間片期滿之前響應于主機優(yōu)先執(zhí)行客戶機而提供寬限期,以便回收處理器以用于如主機可見之某一其他較高優(yōu)先權,如本文中進一步詳細描述。
[0050]作為一個實例,提供寬限期而非無條件地延長時間片。若正常時間片已完全期滿,則提供寬限期,但沖銷下一正常時間片,以便對各自具有時間片期望值之所有其他虛擬化客戶機維持公平。若正常時間片尚未期滿,則寬限期取自剩余正常時間。總之,寬限期限制給予客戶機CPU之剩余時間(或其他時段),且自身為不可延長的。因此,客戶機CPU無法繼續(xù)執(zhí)行達任意且未知時段。
[0051]在寬限期的開始,出于清理可分派單元(例如,完成可分派單元、停止可分派單元和/或移動可分派單元)的目的而通知客戶機程序。寬限期之強制執(zhí)行確保:客戶機CPU不會超出所授予的額外時段。藉以對客戶機程序給予寬限期且向客戶機程序通知時間(或其他時段)幾乎期滿(寬限期已開始)的協議系客戶機程序與主機程序之間的協議,客戶機程序理解該協議,藉此使得此通知為值得的。亦即,客戶機程序通常將藉由在必要時使得當前可分派單元在客戶機配置的另一客戶機CPU上為可分派的(例如,移動可分派單元)來履行(honor)該通知。
[0052]下文參看圖4至圖10來描述關于協定以及警告追蹤中斷設施(亦稱作警告追蹤或警告追蹤設施)的其他細節(jié)。參看那些圖所描述之實施例涉及具有由一個或多個主機布建之一個或多個客戶機的虛擬環(huán)境。然而,本發(fā)明的一個或多個方面亦涉及其他環(huán)境,包括多個處理器和/或多個程序共享資源的非虛擬環(huán)境。
[0053]參看圖4,描述關于如由客戶機觀測到之警告追蹤中斷設施協議的細節(jié)。如由客戶機觀測到的警告追蹤協議包括,例如,設施已安裝指示、客戶機注冊、通知以及主動(voluntarily)退出,在下文中描述前述各者中之每個者。
[0054]參看圖4,客戶機程序理解警告追蹤協議且搜尋設施已安裝指示(步驟400)。在一個實例中,此指示為儲存于控制區(qū)塊(例如,“服務調用控制區(qū)塊(SCCB) ”)中的位,該位系使用諸如“讀取SCP信息”命令之讀取命令來觀測。在判定設施已安裝之后,客戶機程序執(zhí)行注冊(步驟402)。注冊系客戶機程序將關于客戶機程序理解警告追蹤中斷設施協議的指示傳達至主機程序的機制。在一個實例中,使用診斷指令來執(zhí)行注冊,下文進一步描述診斷指令之實例。
[0055]在一個實施例中,自任何客戶機中央處理單元啟動的注冊涵蓋多處理配置之所有客戶機中央處理單元,此系由于需要跨越客戶機多處理配置之客戶機CPU的一致行為。在客戶機多處理配置中,客戶機CPU使用相同主存儲器,且假定客戶機CPU在有時被稱作單一影像的影像中操作。因此,一客戶機CPU的注冊適用于多處理環(huán)境之其他客戶機CPU。在一個實施例中,注冊為不可撤銷的,且此情形有助于避免計時窗,簡化開發(fā)且允許改良之可測試性。即使注冊為不可撤銷的,客戶機程序亦可判定客戶機程序是否將繼續(xù)參與協議。若客戶機程序如此選擇,則藉由重設或已重設下文所描述之一個或多個啟用指示符,客戶機程序不需要參與。
[0056]在針對警告追蹤協議注冊客戶機程序之后,可向客戶機CPU通知寬限期(步驟404)。舉例而言,主機CPU可向客戶機CPU警告時間片之期滿(或在另一個實例中,迫近期滿)或其時間片之優(yōu)先執(zhí)行。在一特定實例中,向已注冊客戶機配置之CPU通知,例如,其正常時間片之期滿,以及提供額外時段以,例如,進行清理之寬限期的開始。
[0057]在被通知之后,客戶機具有受約束時間量或其他時段、寬限期(例如,在一個特定實施例中,為50微秒),以使得可分派單元為可重新分派的或進行任何其他適當調整。若正常時間片已結束,則,例如,在將控制返回至主機之前,使用寬限期以使得可分派單元為可重新分派的或進行任何其他適當調整。若時間片尚未結束,則使用寬限期,且放棄時間片之任何剩余部分。發(fā)生供客戶機CPU使用之實際時間的正常賬戶處理。
[0058]在作出通知之后,客戶機CPU處于受約束時段(例如,有限時間量),在該時段之后,非主動結束客戶機CPU之操作。針對每個正常時間片時段僅作出一個通知。因此,客戶機CPU仍受確??稍谄渌幑蚕砘A共享主機CPU的最終時間控制約束,藉此在藉由主機程序提供之總體虛擬化中保留良好次序以及規(guī)則。
[0059]可藉由使得客戶機程序偵測到唯一狀態(tài)之任何機制來實現通知。實例包括唯一客戶機中斷、可經設定之架構上定義之主存儲器位置,或可用于主機與客戶機兩者之I/o外部內存器件。前述三者中之第一者需要適當客戶機啟用以允許中斷。后兩者需要不浪費寬限期之足夠頻繁的時段性檢驗。在z/ArchitectureK2—特定實例中,稱作警告追蹤中斷(WTI)之客戶機中斷用作通知。
[0060]在被警告之后,客戶機主動地退出其給定時間片/寬限期(步驟406)。在被通知且使得可分派單元為可重新分派的(例如,停止可分派單元以及移動可分派單元,或完成可分派單元)之后,客戶機結束當前時間片/寬限期。此退出用信號向主機程序通知:客戶機實際上遵循協議。可發(fā)生客戶機放棄控制因此返回至主機程序之其他原因。通常,對于使得可分派單元為可重新分派的之受約束處理,將不會發(fā)生針對任何這些外來退出之狀況。若客戶機CPU經由警告追蹤中斷協議在寬限期內退出,則無論何時發(fā)生該狀況,均給予關于下一時間片之反饋指示。因此,客戶機程序知曉其滿足由寬限期強加之時間約束。
[0061]若客戶機遲延主動退出,則藉由寬限期之期滿而優(yōu)先執(zhí)行該客戶機之執(zhí)行。下次以正常時間片啟動客戶機CPU時,給予反饋指示,使得客戶機知曉其系遲延的。大體上,此情形可用于客戶機程序中之問題判定,此系因為慣常的寬限期允許足夠時間來清理以及主動退出。
[0062]若發(fā)生外來退出,則下次在正常時間片內啟動客戶機CPU時,期望將快速地發(fā)生主動退出。同一反饋機制將向客戶機程序告知:外來退出已被干預且因此提供不同信息以告知問題判定。
[0063]主動退出是藉由使得控制自客戶機程序經由主機程序傳遞的任何機制來實現,且該機制包括前述反饋機制。所使用之機制將定義于特定架構之警告追蹤中斷協議中,以便供主機程序辨識客戶機請求。在一個實例中,此機制包括下文描述之診斷指令。
[0064]除警告追蹤中斷協議之客戶機觀測外,在一實施例中,主機亦觀測設施,如下文參看圖5進一步詳細描述。
[0065]參看圖5,主機辨識設施已安裝指示并將該指示反映至其客戶機(步驟500)。舉例而言,主機檢查控制區(qū)塊(例如,SCCB)中之已安裝位,且辨識警告追蹤協議之已安裝狀態(tài)(亦即,其經設定)并知曉主機程序可如何使用該狀態(tài)而對主機有利。因此,將設施指示反映至其客戶機。舉例而言,為了將設施反映至客戶機,主機設定客戶機控制區(qū)塊(例如,客戶機SCCB)或客戶機可存取之內存區(qū)域中的已安裝位。若由于任何原因,主機程序并不希望客戶機觀測警告追蹤中斷設施協議之已安裝狀態(tài)且不允許客戶機觀測警告追蹤中斷設施協議之已安裝狀態(tài)并使用該狀態(tài),則主機程序將未經安裝指示傳遞至客戶機(例如,將客戶機可見之位設定為零)。此外,在一實施例中,主機程序設定客戶機CPU之控制,使得警告追蹤協議經停用(例如,關斷客戶機CPU之狀態(tài)描述中的一個或多個指明位)。
[0066]隨著客戶機啟動注冊,主機程序接收到未經請求之注冊請求,且記住客戶機已注冊(步驟502)。由任何單一客戶機CPU啟動之注冊請求足以注冊客戶機多處理配置中之所有客戶機CPU。因此,主機程序針對客戶機配置之所有CPU啟用警告追蹤協議(步驟504)。舉例而言,主機程序設定客戶機CPU之狀態(tài)描述中之一個或多個指明位以針對客戶機啟用警告追蹤中斷設施。不必將注冊之反饋傳回至客戶機。倘若即使在設施未經安裝時客戶機CPU仍嘗試注冊,主機將忽略請求且針對警告追蹤中斷設施協議將不啟用客戶機CPU。
[0067]在針對警告追蹤設施注冊以及啟用客戶機之后,客戶機可接收關于協議之調用的通知(步驟506)。此情形可在若干個情境中實現,如下文所描述。
[0068]作為一個實例,當針對在主機CPU (亦即,主機CPU X)上以解譯執(zhí)行模式操作之客戶機CPU啟用警告追蹤中斷協議時,主機程序可啟動來自主機CPU Y的協議。亦即,已由主機CPU X布建客戶機CPU,且主機CPU X目前不可用于主機程序。若主機程序不得不重新獲取CPU X,則主機程序首先使得CPU X退出解譯執(zhí)行模式。亦即,使客戶機CPU停止,藉此退出CPU X之解譯執(zhí)行模式。在任何的任意點使客戶機CPU停止而不允許客戶機CPU自身主動地停止產生警告追蹤中斷協議意欲解決之問題的風險。警告追蹤中斷協議藉由允許將主機程序動作變換成客戶機CPU X中之通知而允許主機CPU Y請求通知(步驟506)。由于客戶機程序先前已注冊,因此主機程序期望:客戶機程序辨識通知且支持通知之包括主動結束執(zhí)行之最后步驟的適當處置,因此使主機CPU X之控制返回至主機程序。一旦發(fā)生此情形,主機程序便可繼續(xù)進行,而不管主機CPU X之使用可能已使得程序經啟動。
[0069]主機程序藉由,例如,設定任何狀態(tài)、設定指示符(例如,位)或使得將未經請求的異步信號(例如,警告追蹤中斷)發(fā)送至客戶機來通知客戶機。盡管已注冊,但此通知信號之接收的時間在客戶機中仍為未知的。藉由注冊,倘若用信號通知,客戶機便已恰好同意遵守協議。
[0070]在主機單處理器系統(tǒng)中,若一個主機CPU處于解譯執(zhí)行模式從而使得客戶機CPU正操作,則不存在其他主機CPU來調用警告追蹤中斷協議。然而,即使在此狀況下,當主機CPU在處于解譯執(zhí)行模式的同時辨識時間片期滿時,CPU自身仍可調用警告追蹤中斷協議,且可接著授予寬限期并執(zhí)行通知。
[0071]在通知之另一個實例中,當主機CPU使得將定義于警告追蹤中斷協議中之通知發(fā)送至客戶機CPU時(歸因于當主機CPU處于解譯執(zhí)行模式時,主機CPU辨識之內部狀態(tài)改變),發(fā)生通知。當針對警告追蹤中斷協議啟用客戶機CPU且主機CPU辨識時間片之結束時,發(fā)生此情形之實例。在用信號向客戶機CPU通知以放棄控制之前,CPU在內部授予寬限期以允許客戶機CPU具有足夠時間以接收信號、采取適當動作(例如,完成當前可分派單元或使得當前可分派單元為可重新分派的)且主動地結束。在內部,主機CPU保持狀態(tài)以指示:已向客戶機CPU通知。若客戶機在寬限期內并未主動地結束,則CPU辨識此情形且結束客戶機的執(zhí)行,藉此藉由結束解譯執(zhí)行模式而使控制返回至主機程序。在一實施例中,客戶機無法判定為何調用協議,而是僅判定其被通知清理并結束。可存在用于引起解譯執(zhí)行模式之結束且因此結束客戶機執(zhí)行的其他主機理論基礎。舉例而言,存在如下情境:將使所有客戶機CPU之執(zhí)行停止以便對整個客戶機配置作出某一協調改變。多處理客戶機配置并不具有在與客戶機配置之其他CPU不同的規(guī)則或假定下操作的一些CPU。此不對稱性可產生不可預測之客戶機結果。
[0072]主機CPU接收已執(zhí)行主動退出或任何其他原因之退出的客戶機CPU之效應(例如,向主機傳回CPU資源)(步驟508)。若退出系歸因于警告追蹤中斷協議定義之原因,則主機程序記住在下次啟動客戶機CPU時向客戶機CPU提供反饋(不管可能為多久)。此反饋為肯定(“良好”)指示,假定客戶機在寬限期期滿之前主動退出。若退出系歸因于任何其他原因,則在客戶機CPU之下次啟動時不發(fā)生警告追蹤中斷協議反饋。
[0073]若客戶機遲延主動退出;亦即,客戶機執(zhí)行動作以主動退出,但寬限期已期滿,則藉由寬限期之期滿而優(yōu)先執(zhí)行客戶機CPU之執(zhí)行。下次以正常時間片啟動客戶機CPU時,給予異常反饋指示,使得客戶機知曉其已遲延其主動退出。大體上,此情形可用于客戶機程序中之問題判定,此系因為慣常的寬限期允許足夠時間來清理以及主動退出。
[0074]若發(fā)生不同于警告追蹤中斷協議之主動退出的退出,則下次以正常時間片啟動客戶機CPU時,不包括按警告追蹤協議之反饋。
[0075]主動地退出的手段是藉由使得控制自客戶機程序傳遞至主機程序之任何機制來實現,該機制由主機程序辨識為協議主動退出,且該機制包括上述反饋機制。在一個實例中,診斷指令用于主動退出。亦即,具有特定參數之診斷指令用以指示時間片之完成。在診斷指令由客戶機程序發(fā)出并經執(zhí)行之后,主機程序判定退出是否為準時的。接著,當再次啟動客戶機時(其為診斷之后的下一循序指令),提供指示再次啟動客戶機是否為準時的之條件代碼。條件代碼,例如,設定于用以在下一循序指令處啟動客戶機之客戶機程序狀態(tài)字(PSff)中??蛻魴C可接著測試條件代碼。
[0076]參看圖6進一步描述由主機進行之對于客戶機主動退出的處置。最初,當客戶機CPU停止時,控制返回至主機CPU(步驟600)。作出關于控制是否在寬限期內返回的判定(查詢602)。若控制在寬限期內返回,則主機程序按警告追蹤中斷協議觀測主動客戶機退出,且記住針對客戶機CPU之下次啟動之良好反饋,而不管哪一主機CPU可能在該時間布建客戶機CPU(步驟604)。此系假定已安裝警告追蹤中斷設施。若控制并未在寬限期內返回,則不記住反饋狀態(tài)。然而,若客戶機執(zhí)行動作以主動地退出,但主動退出系在寬限期外(查詢602),則主機CPU上之主機程序按警告追蹤中斷協議觀測主動客戶機退出(即使客戶機最終且不得不非主動地退出),且記住針對客戶機CPU之下次啟動的不良反饋,而不管哪一主機CPU可能在該時間布建客戶機CPU(步驟606)。再者,此系假定已安裝警告追蹤設施。若否,則不記住反饋狀態(tài)。
[0077]此后,不管主機記住良好反饋抑或不良反饋,主機程序將主機CPU重新導向至優(yōu)先執(zhí)行指派(步驟608)。亦即,將主機重新導向為現在執(zhí)行使其資源(CPU)返回的一個或多個功能。
[0078]此外,在客戶機CPU之下次循序啟動時,不管哪一主機CPU布建客戶機CPU,若記住反饋狀態(tài),則在啟動客戶機CPU之前設定反饋狀態(tài)指示(步驟610)。在一個實例中,在SIE狀態(tài)描述中(例如,在狀態(tài)描述之PSW中)設定反饋狀態(tài)指示,SIE狀態(tài)描述指示下一循序指令的啟動。
[0079]參看圖7至圖9來描述關于與警告追蹤中斷設施相關聯之處理的其他細節(jié)。詳言之,圖7描繪與警告追蹤中斷設施處理之概述相關聯之邏輯的一實施例;圖8A至圖SC提供根據本發(fā)明的方面的警告追蹤中斷設施處理之細節(jié);且圖9描繪與接收警告追蹤中斷相關聯之邏輯的一實施例。
[0080]參看圖7,最初客戶機程序(例如,客戶機操作系統(tǒng))辨識已安裝警告追蹤中斷設施(步驟700)。在一實施例中,此情形是藉由客戶機程序觀測位于,例如,指明控制區(qū)塊中之已安裝設施指示符,例如位,來實現。若客戶機操作系統(tǒng)具有支持以參與警告追蹤中斷設施,則客戶機操作系統(tǒng)辨識警告追蹤中斷設施已安裝指示符,且接著指示其參與協定的能力。在一個實例中,此情形包括注冊客戶機之參與警告追蹤處理的意圖(步驟702)。如本文中所描述,在一個實例中,經由診斷指令來執(zhí)行注冊。在注冊時,客戶機操作系統(tǒng)向主機CPU與主機程序兩者指示客戶機操作系統(tǒng)知曉如何處置警告追蹤中斷(WTI),警告追蹤中斷(WTI)為向客戶機提供如下警告之明確中斷:例如,客戶機將失去對其共享資源,例如,客戶機CPU,的存取,且,例如客戶機應關于其當前正執(zhí)行之可分派單元采取動作。在一實施例中,注冊為WTI之接收的先決條件。若并未針對警告追蹤中斷設施注冊客戶機,則在客戶機之時間片期滿后,便不供應寬限期,且使客戶機CPU脫離解譯執(zhí)行模式。
[0081 ] 在一實施例中,即使已注冊,客戶機程序仍具有停用WTI之呈現的兩個機制。舉例而言,可將例如程序狀態(tài)字(PSW)中的所選定位設定為零,此情形停用包括WTI之所有外部中斷的呈現;或可將指定控制寄存器(例如,CR0)中的位設定為零以僅停用WTI。當兩個位為一時,啟用WTI之呈現。若WTI之呈現保持停用達整個WTI寬限期,則客戶機之執(zhí)行在不利用WTI之情況下結束,該情形構成非主動退出。
[0082]在客戶機CPU的解譯執(zhí)行期間,若客戶機CPU在內部辨識主機CPU定時器外部中斷條件(例如,期滿之時間片)或由主機程序請求之優(yōu)先執(zhí)行(查詢704),則內部CPU處理在主機接收到控制之前判定是否將執(zhí)行警告追蹤中斷處理(查詢706)。亦即,內部CPU處理檢查針對警告追蹤處理啟用客戶機,且因此判定警告追蹤處理應包括于待執(zhí)行之處理中。若將不執(zhí)行警告追蹤中斷處理,則客戶機之解譯執(zhí)行結束(步驟708),且控制返回至主機程序(步驟710)。返回至查詢706,然而,若將執(zhí)行警告追蹤中斷處理,則如下文進一步詳細描述,執(zhí)行處理(步驟712)。
[0083]參看圖8A至圖SC來描述警告追蹤中斷處理之其他細節(jié)的實施例。在此處理中,使用包括以下各者之若干個控制指示符:
[0084]警告追蹤中斷設施寬限期作用中內部控制(例如,G位),其并非架構上可見,但供內部CPU邏輯使用;
[0085]警告追蹤中斷(WTI)呈現內部控制(例如,P位),其在為I時指示已將WTI呈現給客戶機,且在為O時指示尚未呈現WTI。類似于警告追蹤中斷設施寬限期作用中內部控制,WTI呈現內部控制并非架構上可見,但供內部CPU邏輯使用;
[0086]客戶機控制的主機程序優(yōu)先執(zhí)行(例如,T位),其例如為客戶機CPU狀態(tài)描述中的警告追蹤干預請求指示符;以及
[0087]在E指不符為一時,存在外部中斷之啟用。在個實例中,E指不符為當如程序狀態(tài)字(PSW)內的位。
[0088]參看圖8A,在一個實例中,辨識主機CPU定時器中斷條件(例如,期滿之時間片),或辨識警告追蹤干預請求(例如,主機希望早早地傳回CPU資源;亦即在時間片結束之前傳回CPU資源)。若辨識出主機CPU定時器中斷條件(查詢800),則作出關于寬限期作用中控制指示符是否經設定(例如,G等于I ?)的判定(查詢802)。若G未經設定,則將G指示符設定為例如I (步驟804),且警告追蹤中斷設施寬限期將開始。接著保存主機CPU定時器之當前值(所保存值在本文中被稱作原始值)(步驟806),且將主機CPU定時器設定為警告追蹤寬限期(例如,50微秒)(步驟808)。
[0089]此后,作出關于是否針對警告追蹤中斷啟用客戶機之判定(查詢810)。在一實施例中,若客戶機層級2為作用中的從而指示一客戶機已啟動另一客戶機,則客戶機2關于客戶機I中斷而退出解譯執(zhí)行模式,且取消客戶機I “啟動解譯執(zhí)行”指令。因此,處理在此點處系作為客戶機I。若客戶機2并非作用中的,則處理僅以客戶機I繼續(xù)。若針對WTI啟用客戶機,則將警告追蹤外部中斷(WTI)呈現給客戶機(步驟812)。在一個實例中,在需要時,此中斷包括特定中斷碼,該特定中斷碼經呈現,從而指示其具有寬限期以便執(zhí)行一個或多個功能(例如,清理)。
[0090]另外,將P設定為1,從而指示WTI已經呈現(步驟814)。又,使用互鎖更新功能將T位設定為I (若最初已使用干預請求,則T位可能已為I)(步驟816)。使主機CPU定時器中之寬限期繼續(xù)遞減,而不管是否呈現了 WTI (步驟818)。接著退出此處理(步驟820)。在一個實例中,退出此程序之指明指示=CPU已完成警告追蹤中斷設施之當前處理,且CPU正返回至如由CPU之當前狀態(tài)指明的其他處理。
[0091]返回至查詢810,若針對警告追蹤中斷未啟用客戶機,則處理進行至步驟816。在此例子中,針對WTI未啟用客戶機,因此無法將WTI呈現給客戶機。然而,將T位設定為未決的,使得稍后在針對WTI確實啟用客戶機時可偵測到T位。
[0092]返回至查詢800,若并非主機CPU定時器中斷條件,則辨識警告追蹤中斷請求(亦即,主機優(yōu)先執(zhí)行)。亦即,客戶機之狀態(tài)描述之干預請求字段中的T位為I。因此,作出關于G指示符是否經設定的判定(查詢850)。若G指示符未經設定(例如,0),則處理以步驟804繼續(xù)。在此情形下,T等于I之條件為啟動WTI程序的初始原因。然而,若G位經設定,則作出關于P是否經設定的判定(查詢852)。若P未經設定(例如,等于O),則處理在呈現WTI之嘗試中以步驟810繼續(xù)。然而,若P經設定(例如,不等于O),則在警告追蹤設施寬限期開始之后T等于I的發(fā)現無影響,且退出程序(步驟854)。
[0093]返回至查詢802,若G經設定(例如,等于I),則客戶機CPU已在寬限期中執(zhí)行,且主機CPU定時器之期滿指示寬限期已期滿。因此,先前已啟動WTI循環(huán),且寬限期已期滿。因此,參看圖8B,將先前保存之原始主機CPU定時器值減小達在寬限期期間實際使用之時間量,且接著將其加載至主機CPU定時器中(步驟860)。退出解譯執(zhí)行模式(步驟862),且將主機CPU定時器外部中斷呈現給主機(步驟864)(此退出為非主動客戶機退出之形式)。
[0094]除以上內容外,可經由可針對WTI啟用CPU之某些指令來啟動WTI分析。舉例而言,參看圖8C,如本文中所描述,最初,可針對WTI啟用CPU之包括以下各者的若干個指令執(zhí)行監(jiān)視:例如,可設定PSW中之指明位的加載PSW(擴展)指令以及接著儲存或系統(tǒng)屏蔽指令,以及可設定控制寄存器中之所選定位的“加載控制”。舉例而言,可針對中斷啟用之指令檢查用于潛在警告追蹤處理的T位。若T = O (查詢880),則不存在WTI,且退出此程序(步驟884)。然而,若T = 1,則處理以查詢822繼續(xù)。
[0095]在查詢882處,作出關于P是否經設定(例如,等于I)之判定。若P經設定,則退出此程序(步驟884),此系由于先前已偵測到啟用。然而,若P未經設定(例如,不等于I),則作出關于G是否經設定(例如,等于I)的另一判定(查詢886)。若G未經設定,則處理以步驟804繼續(xù)(圖8A)。然而,若G經設定(例如,等于I)(步驟886 (圖8C)),則處理以圖8A中之查詢810繼續(xù)(步驟888),且退出處理。
[0096]參看圖9來描述警告追蹤中斷之處理的其他細節(jié)。當客戶機程序接收到警告追蹤中斷時,客戶機程序執(zhí)行客戶機程序將執(zhí)行之任何功能(例如,OS功能)以便例如使得可分派工作單元為可重新分派的(步驟900)。舉例而言,客戶機在特定點處停止可分派單元,保存可分派單元之狀態(tài),且將可分派單元移動至另一客戶機CPU,或藉由提供狀態(tài)信息使得可分派單元能夠被移動,等等??蛻魴C操作系統(tǒng)藉由向主機程序發(fā)出警告追蹤清理完成信號而用信號通知客戶機操作系統(tǒng)已結束(又稱作主動退出)(步驟902)。此信號可為使得客戶機操作放棄剩余時間片的任何機制。然而,該信號由主機程序辨識為協議之清理部分。在一個實例中,使用診斷指令之清理已完成功能。
[0097]若客戶機程序在寬限期期滿之前發(fā)出清理已完成信號(查詢904),則主機程序記住客戶機CPU及時退出(步驟906)。此退出系主動退出。當下次啟動客戶機CPU時,將信號之準時本質指示回至客戶機CPU (步驟908)。在一個實例中,客戶機繼續(xù)執(zhí)行PSW經設定以指示成功條件代碼(例如,條件代碼O)。
[0098]返回至查詢904,若客戶機程序由于任何原因而花費過長時間,則寬限期借助于使寬限期遞減至零之主機CPU定時器而期滿,因此將主機CPU定時器外部中斷條件呈現給CPU。在此狀況下,CPU辨識:客戶機已在寬限期中,且并不授予另一寬限期。確切而言,客戶機執(zhí)行停止,且控制藉由接收外部中斷而回復至主機程序。主機程序辨識:客戶機CPU之此結束為非主動客戶機退出。
[0099]在下次客戶機CPU啟動時,客戶機操作系統(tǒng)可接著發(fā)出清理已完成信號,雖然現在已過遲。主機程序不再期望等待清理已完成信號之接收。因此,在下次啟動客戶機CPU時,將信號之過遲本質指示回至客戶機CPU (步驟912)。在一個實例中,客戶機繼續(xù)執(zhí)行PSW經標示以指示在下次啟動時客戶機將觀察到的遲條件。過遲診斷指令之發(fā)出有時被稱作陳舊診斷指令,此系因為過遲診斷指令先前錯過在寬限期內退出且接著由于不良原因稍后退出。
[0100]在一個實例中,在客戶機CPU之新啟動后,客戶機程序便可針對是否已在寬限期內發(fā)出信號而檢查協議之信號繼續(xù)執(zhí)行部分。客戶機程序可使用此信息來調查:客戶機程序可能因何原因而延遲且作出改良以改良關于未來更及時之統(tǒng)計。
[0101]在一實施例中,當針對所有外部中斷停用客戶機時,可啟用外部中斷之若干個指令執(zhí)行監(jiān)視。當針對外部中斷啟用客戶機時,檢驗WTI啟用。在此點上,若WTI經啟用且P位為O,則將WTI呈現給客戶機CPU。
[0102]如上文所提及,在一實施例中,診斷功能用以指示清理已完成或針對警告追蹤中斷設施注冊。對于清理已完成,診斷功能在以清理參數發(fā)出并執(zhí)行時用信號通知:發(fā)出CPU已執(zhí)行了與警告追蹤外部中斷之接收相關聯的任何所要處理。當執(zhí)行完成時,設定條件代碼,從而指示是否在警告追蹤中斷之后允許用于清理之模型相依時間間隔內發(fā)出完成。
[0103]關于寄存器功能,診斷功能在以寄存器參數發(fā)出并執(zhí)行時用信號通知:發(fā)出配置理解警告追蹤中斷。當執(zhí)行完成時,設定成功條件代碼。注冊狀態(tài)藉由系統(tǒng)重設來清除。
[0104]參看圖10來描述診斷指令之格式的一實施例。在一實施例中,診斷指令1000包括:指示診斷功能之作業(yè)碼1002 ;第一寄存器字段1004(?);第二寄存器字段1006(?);通用寄存器字段1008 (B2);以及移位字段1010 (D2)。在一個實例中,將D2字段之內容添加至通用寄存器民之內容。結果并不用以尋址數據,而是將某些位(例如,位48至63)用作操作碼擴展。當操作碼擴展為預定值時,指定警告追蹤清理已完成,且放棄時間片。
[0105]在一個實例中,R3字段未經使用,且其含有零。另外,通用寄存器R1之指定位未經使用且將含有零,且通用寄存器R1之特定位(例如,位63)在為零時指定清理已完成功能,且在為I時指定寄存器功能。
[0106]在使用共享實體CPU之邏輯分割區(qū)中,此功能可藉由允許將邏輯CPU正執(zhí)行所在之實體CPU指派給另一邏輯CPU而改良系統(tǒng)效能。
[0107]除診斷外,在WTI寬容間隔期間的任何其他SIE退出(無論何原因)類似地恢復遞減達所花費之寬限期時間量的主機CPU定時器之原始值。
[0108]本文中詳細描述的內容為警告追蹤中斷設施,在一實施例中,該警告追蹤中斷設施提供一機制,可藉由該機制將警告追蹤外部中斷呈現給具有共享CPU資源(諸如,邏輯分割區(qū))之配置中的CPU。控制程序可使用警告追蹤外部中斷作為信號以使得當前正執(zhí)行之可分派單元在該配置上之不同CPU上為可分派的。
[0109]在一實施例中,于時間片中在實體處理器上執(zhí)行之邏輯(客戶機)處理器接收到指示寬限期之警告信號,例如,在邏輯處理器將被中斷(自可共享之實體處理器解除分配)之前的時間量,從而使得能夠完成由邏輯處理器進行之工作或將工作移動至另一邏輯處理器。作為實例,用信號向客戶機CPU通知:其時間片已期滿,且客戶機CPU應優(yōu)先執(zhí)行當前可分派工作單元(DU)以使得當前可分派工作單元在另一客戶機CPU上為可重新分派的。在一個實例中,警告信號為一中斷,該中斷具有指示該中斷為WTI的中斷碼。在另一個實例中,中斷碼包括關于對寬限期給予之時間量或其他時段的信息。
[0110]在一實施例中,警告追蹤中斷設施可用于非虛擬環(huán)境以及虛擬環(huán)境中,在這些環(huán)境中,一個程序和/或處理器與一個或多個其他程序和/或處理器共享資源(例如,CPU資源或其他資源)。
[0111]在環(huán)境為虛擬環(huán)境的一實施例中,自客戶機之觀點而言:
[0112]1.客戶機程序觀測警告追蹤中斷協議設施之已安裝條件。
[0113]2.客戶機程序針對警告追蹤中斷協議注冊。
[0114]3.客戶機CPU根據特定架構(例如,共享內存指示、共享I/O器件指示、中斷)接收警告追蹤通知。
[0115] 4.在客戶機CPU上執(zhí)行的客戶機程序根據已接收通知之客戶機程序的本質來執(zhí)行可適用處理(期望通知之處理為按操作系統(tǒng)獨特的)。
[0116]5.客戶機CPU根據警告追蹤協議主動技術放棄控制。
[0117]6.在客戶機CPU下次啟動時,客戶機程序可根據警告追蹤協議觀測反饋。
[0118]另外,在一實施例中,自主機的觀點而言:
[0119]A.客戶機程序觀測警告追蹤中斷協議設施之已安裝條件。
[0120]1.主機程序獲取警告追蹤中斷協議設施已安裝指示。
[0121]2.主機程序持久地記住警告追蹤中斷協議之已安裝狀態(tài)。
[0122]3.主機程序將警告追蹤協議已安裝狀態(tài)指示給每個客戶機配置。
[0123]4.主機程序停用所有未注冊客戶機CPU中之警告追蹤協議。
[0124]5.主機程序做好準備以辨識來自每個客戶機配置之客戶機警告追蹤注冊請求。
[0125]B.主機程序辨識來自客戶機之警告追蹤注冊請求。
[0126]1.主機程序持久地記住客戶機配置理解警告追蹤協定。
[0127]2.主機程序針對警告追蹤協議啟用客戶機。
[0128]C.在正常客戶機CPU X操作期間,使用客戶機CPU X之優(yōu)先執(zhí)行重新獲取對應主機 CPU X。
[0129]1.CPU Y中之主機程序用信號向客戶機CPU X發(fā)通知。
[0130]a.根據警告追蹤協議,CPU X經由共享內存位置之更新、共享I/O器件之更新或對客戶機CPU X之中斷而將通知傳播至客戶機CPU X。
[0131]D.客戶機CPU X停止,從而使控制返回至主機CPU X。
[0132]1.若在寬限期內,則CPU X上之主機程序按警告追蹤協議觀測主動客戶機退出,且記住針對客戶機CPU X之下次啟動的良好反饋,而不管哪一主機CPU可能在該時間布建客戶機 CPU X。
[0133]a.若在寬限期內,但客戶機CPU X之退出并非根據警告追蹤協議,則不記住反饋狀態(tài)。
[0134]2.若不在寬限期內,則CPU X上之主機程序按警告追蹤協議觀測主動客戶機退出,且記住針對客戶機CPU X之下次啟動的不良反饋,而不管哪一主機CPU可能在該時間布建客戶機CPU X。
[0135]a.若不在寬限期內,但客戶機CPU X之退出并非根據警告追蹤協議,則不記住反饋狀態(tài)。
[0136]3.主機CPU X上之主機程序將CPU X重新導向為優(yōu)先執(zhí)行指派。
[0137]E.若記住反饋狀態(tài),則不管哪一主機CPU布建客戶機CPU X,客戶機CPU X之下次循序啟動在啟動客戶機CPU X之前根據警告追蹤協議設定反饋指示。
[0138]在一實施例中,客戶機配置之客戶機處理器接收唯一中斷,該中斷系針對計算機架構而定義,且中斷之含義系警告追蹤中斷。該中斷指示將中斷識別為警告追蹤中斷的特定碼。該中斷隱含被稱作寬限期之相對較短之時間間隔,從而逐漸引導至結束客戶機處理器執(zhí)行。
[0139]在寬限期期間,在一個實例中,名義上期望客戶機程序使得當前可分派工作單元在另一客戶機處理器上為可重新分派的,因此避免卡塞于當前客戶機處理器上、等待其來自主機之下次正常時間片啟動。
[0140]在一個實例中,客戶機處理器之每次主機程序啟動授予相對較短之時間間隔僅一次。自例如客戶機處理器正執(zhí)行所在之現有時間間隔來授予時間間隔。由于自正常剩余時間片來分配所授予之時間間隔,因此時間間隔本質上并非借用時間,而是使用來自當前時間間隔之受約束時間量來確保客戶機處理器在相對較短之一段時間內確實被優(yōu)先執(zhí)行。
[0141]在當前時間片已期滿之另一個實例中,除客戶機處理器正執(zhí)行所在之現有時間間隔外,亦將時間間隔授予為額外時間。由主機程序對照將由客戶機處理器消耗的期望客戶機處理器接下來執(zhí)行之期望的下一循序正常時間間隔來考慮所授予之時間間隔。仍意欲確保:客戶機處理器在相對較短之一段時間內確實被優(yōu)先執(zhí)行。
[0142]在一個實例中,可產生對警告追蹤事件之中斷請求以向程序告知:程序正接近共享CPU上的當前執(zhí)行間隔的結束。中斷請求為在注冊配置且針對警告追蹤中斷設施啟用配置時產生的未決條件類型。
[0143]程序(例如,主機以及客戶機)之間的合作處理使程序(例如,客戶機操作系統(tǒng))間的資源共享(例如,CPU)優(yōu)化。一或多項方面以相同CPU利用提供例如更好之響應時間。另外,在超管理器未分派之前釋放系統(tǒng)串行化。
[0144]在另一實施例中,本發(fā)明的一個或多個方面可供來自操作系統(tǒng)之請求使用以使個別線程繼續(xù)改良時間敏感性工作之經過時間。亦即,線程可請求額外時間或被提供額外時間以執(zhí)行功能。
[0145]如本領域技術人員將了解,本發(fā)明的一個或多個方面可體現為系統(tǒng)、方法或計算機程序產品。因此,本發(fā)明的一個或多個方面可采用完全硬件實施例、完全軟件實施例(包括固件、常駐軟件、微碼等)或組合軟件與硬體方面之實施例的形式,這些實施例在本文中皆可大體上被稱作“電路”、“模塊”或“系統(tǒng)”。此外,本發(fā)明的一個或多個方面可采用以一個或多個計算機可讀媒體體現所述的計算機程序產品之形式,該一個或多個計算機可讀媒體上體現有計算機可讀程序代碼。
[0146]可利用一個或多個計算機可讀媒體的任何組合。計算機可讀媒體可為計算機可讀儲存介質。舉例而言,計算機可讀儲存介質可為(但不限于)電子、磁性、光學、電磁、紅外線或半導體系統(tǒng)、裝置或器件,或前述各者之任何合適組合。計算機可讀儲存介質之更特定實例(非詳盡列表)包括以下各者:具有一或多條導線之電連接、攜帶型計算機磁盤、硬盤、隨機存取內存(RAM)、只讀存儲器(ROM)、可抹除可程序化只讀存儲器(EPR0M或閃存)、光纖、攜帶型光盤只讀存儲器(CD-ROM)、光學儲存器件、磁性儲存器件,或前述各者之任何合適組合。在此文件之內容脈絡中,計算機可讀儲存介質可為可含有或儲存供指令執(zhí)行系統(tǒng)、裝置或器件使用或結合指令執(zhí)行系統(tǒng)、裝置或器件而使用之程序的任何有形媒體。
[0147]現參看圖11,在一個實例中,計算機程序產品1100例如包括一個或多個非暫時性計算機可讀儲存介質1102以在上面儲存計算機可讀程序代碼構件或邏輯1104,從而提供并促進本發(fā)明的一個或多個方面。
[0148]可使用適當媒體來傳輸體現于計算機可讀媒體上之程序代碼,適當媒體包括(但不限于)無線媒體、有線媒體、光纜、RF等或前述各者之任何合適組合。
[0149]可以一種或多種程序設計語言的任何組合來撰寫用于進行本發(fā)明的一個或多個方面之操作的計算機程序碼,該一或多種程序設計語言包括諸如Java、Smalltalk、C++或其類似者之面向對象程序設計語言,以及諸如“C”程序設計語言、組譯器或類似程序設計語言之習知程序性程序設計語言。程序代碼可完全在用戶計算機上執(zhí)行,部分地在用戶計算機上執(zhí)行,作為獨立軟件包而執(zhí)行,部分地在用戶計算機上執(zhí)行且部分地在遠程計算機上執(zhí)行,或完全在遠程計算機或服務器上執(zhí)行。在完全在遠程計算機或服務器上執(zhí)行的情境中,遠程計算機可經由任何類型之網絡(包括局域網絡(LAN)或廣域網(WAN))連接至用戶計算機,或可連接至外部計算機(例如,使用因特網服務提供商經由因特網)。
[0150]本文中參看根據本發(fā)明之實施例之方法、裝置(系統(tǒng))以及計算機程序產品的流程圖說明和/或方塊圖來描述本發(fā)明的一個或多個方面。應理解,可藉由計算機程序指令來實施這些流程圖說明和/或方塊圖之每個區(qū)塊以及這些流程圖說明和/或方塊圖中之區(qū)塊的組合??蓪⑦@些計算機程序指令提供至通用計算機、專用計算機或其他可程序化數據處理裝置之一處理器以產生一機器,以使得經由該計算機或其他可程序化數據處理裝置之該處理器而執(zhí)行之指令產生用于實施在該或這些流程圖和/或方塊圖區(qū)塊中所指定之功能/動作之構件。
[0151]亦可將這些計算機程序指令儲存于一計算機可讀媒體中,其可指導計算機、其他可程序化數據處理裝置或其他器件以特定方式起作用,使得儲存于該計算機可讀媒體中之指令產生一制造對象,該制造對象包括實施在該或這些流程圖和/或方塊圖區(qū)塊中所指定之功能/動作的指令。
[0152]亦可將這些計算機程序指令加載至計算機、其他可程序化數據處理裝置或其他器件上,以使得在該計算機、其他可程序化裝置或其他器件上執(zhí)行一系列操作步驟以產生一計算機實施程序,使得在該計算機或其他可程序化裝置上執(zhí)行之指令提供用于實施在該或這些流程圖和/或方塊圖區(qū)塊中所指定之功能/動作的程序。
[0153]諸圖中的流程圖以及方塊圖說明根據本發(fā)明的一個或多個方面的各種實施例的系統(tǒng)、方法以及計算機程序產品之可能實施方案的架構、功能性以及操作。就此而言,流程圖或方塊圖中的每個區(qū)塊可表示程序代碼之一模塊、區(qū)段或部分,其包含用于實施指定之邏輯功能的一個或多個可執(zhí)行指令。亦應注意,在一些替代實施方案中,區(qū)塊中所注釋的功能可不以諸圖中所注釋之次序發(fā)生。舉例而言,取決于所涉及之功能性,連續(xù)展示之兩個區(qū)塊實際上可實質上同時執(zhí)行,或這些區(qū)塊有時可以相反次序執(zhí)行。亦應注意,可藉由執(zhí)行指定之功能或動作的基于專用硬件之系統(tǒng)或專用硬件與計算機指令之組合來實施方塊圖和/或流程圖說明之每個區(qū)塊以及方塊圖和/或流程圖說明中之區(qū)塊的組合。
[0154]除以上內容外,本發(fā)明的一個或多個方面亦可由供應客戶環(huán)境之管理的服務提供商來提供、供應、部署、管理、服務等。舉例而言,服務提供商可為一個或多個客戶產生、維護、支持等執(zhí)行本發(fā)明的一個或多個方面的計算機程序碼和/或計算機底層結構。作為回報,作為實例,服務提供商可在訂用和/或收費協議下自客戶收取付款?;蛘呋蛄硗?,服務提供商可自廣告內容銷售至一個或多個第三方而收取付款。
[0155]在本發(fā)明的一個方面中,應用程序可經部署以用于執(zhí)行本發(fā)明的一個或多個方面。作為一個實例,應用程序之部署包含提供可操作以執(zhí)行本發(fā)明的一個或多個方面的計算機底層結構。
[0156]作為本發(fā)明的另一方面,可部署一計算機底層結構,其包含將計算機可讀程序代碼整合至計算系統(tǒng)中,其中與計算系統(tǒng)組合之程序代碼能夠執(zhí)行本發(fā)明的一或多項方面。
[0157]作為本發(fā)明的又一方面,可提供用于整合計算機底層結構之程序,其包含將計算機可讀程序代碼整合至計算機系統(tǒng)中。計算機系統(tǒng)包含計算機可讀媒體,其中計算機媒體包含本發(fā)明的一個或多個方面。與計算機系統(tǒng)組合之程序代碼能夠執(zhí)行本發(fā)明的一或多項方面。
[0158]盡管上文描述了各種實施例,但這些實施例僅為實例。舉例而言,其他架構的計算環(huán)境可含有并使用本發(fā)明的一個或多個方面。另外,寬限期可不同于時間量,諸如指令或循環(huán)之數目或任何其他可量化值??稍诓黄x本發(fā)明之精神的情況下進行許多改變和/或添加。
[0159]另外,其他類型的計算環(huán)境可受益于本發(fā)明的一個或多個方面。作為實例,適用于儲存和/或執(zhí)行程序代碼之數據處理系統(tǒng)為可用的,其包括直接或經由系統(tǒng)總線間接耦接至內存組件的至少兩個處理器。內存組件例如包括在程序代碼之實際執(zhí)行期間所使用之本端內存、大容量儲存器,以及高速緩存,該高速緩存對至少某一程序代碼提供臨時儲存以便減少在執(zhí)行期間必須自大容量儲存器擷取程序代碼的次數。
[0160]輸入/輸出或I/O器件(包括(但不限于)鍵盤、顯示器、指針器件、DASD、磁帶、CD、DVD、隨身碟(thumb drive)以及其他內存媒體等)可直接或經由介入I/O控制器f禹接至系統(tǒng)。網絡配接器亦可耦接至系統(tǒng)以使得數據處理系統(tǒng)能夠經由介入之私用或公用網絡耦接至其他數據處理系統(tǒng)或遠程打印機或儲存器件。調制解調器、電纜調制解調器以及以太網絡卡僅為可用類型之網絡配接器中的少數幾種。
[0161]下文描述可含有和/或使用本發(fā)明的一個或多個方面的計算環(huán)境之其他實例。
[0162]參看圖12,描繪實施本發(fā)明的一個或多個方面之主計算機系統(tǒng)5000的代表性組件。代表性主計算機5000包含與計算機內存(亦即,中央儲存器)5002通信之一個或多個CPU5001,以及用于與其他計算機或SAN以及其類似者通信之至儲存介質器件5011以及網絡5010的I/O接口。CPU5001符合具有經建構指令集以及經建構功能性之架構。CPU5001可具有用于將程序地址(虛擬地址)變換成內存之實地址的動態(tài)地址轉譯(DAT)5003。DAT通常包括轉譯后備緩沖器(TLB) 5007,其用于對轉譯進行快取使得對計算機內存5002之區(qū)塊之稍后存取并不需要地址轉譯之延遲。通常,高速緩存5009用于計算機內存5002與處理器5001之間。高速緩存5009可為階層式高速緩存,從而具有可用于一個以上CPU之大高速緩存以及大高速緩存與每個CPU之間的較小之較快速(較低層級)高速緩存。在一些實施方案中,將較低層級高速緩存分裂以提供單獨的低層級高速緩存以用于指令提取以及數據存取。在一實施例中,經由高速緩存5009藉由指令提取單元5004自內存5002提取指令。在指令解碼單元5006中解碼指令,且將指令分派(在一些實施例中,藉由其他指令)給指令執(zhí)行單元5008。通常,使用若干個執(zhí)行單元5008,例如算術執(zhí)行單元、浮點執(zhí)行單元以及分支指令執(zhí)行單元。指令系由執(zhí)行單元執(zhí)行,從而在需要時自指令指定之寄存器或內存存取操作數。若將自內存5002存取(加載或儲存)操作數,則加載/儲存單元5005通常在正執(zhí)行之指令之控制下處置存取??稍谟布娐分谢蛟趦炔课⒋a(固件)中或藉由兩者之組合執(zhí)行指令。
[0163]如所注釋,計算機系統(tǒng)包括本端(或主)儲存器中之信息,以及尋址、保護,以及參考和改變記錄。尋址之一些方面包括地址之格式、地址空間之概念、地址之各種類型,以及一類型之地址經轉譯至另一類型之地址的方式。主儲存器中之一些儲存器包括永久指派之儲存地址。主儲存器為系統(tǒng)提供數據之可直接尋址之快速存取儲存。數據與程序兩者在其可得以處理之前將被加載至主儲存器中(自輸入器件)。
[0164]主儲存器可包括有時稱作高速緩存之一個或多個較小之較快速存取緩沖儲存器。高速緩存通常與CPU或I/O處理器實體地相關聯。除效能外,相異儲存介質之實體構造以及使用的效應大體上為程序不可觀測的。
[0165]可維護用于指令以及用于數據操作數的單獨高速緩存。高速緩存內之信息以連續(xù)字節(jié)維持于稱作快取區(qū)塊或快取列(或簡稱為列)之整體邊界上。模型可提供傳回快取列之以字節(jié)為單位之大小的“擷取高速緩存屬性”指令。模型亦可提供“預取數據”以及“預取數據相對長度”指令,前述兩個指令實現儲存器至數據或指令高速緩存中之預取或數據自高速緩存的釋放。
[0166]儲存器被視為長水平位串。對于大多數操作而言,對儲存器之存取以自左至右序列進行。將位串再分為八個位之單元。八位單元被稱作字節(jié),字節(jié)系所有信息格式之基本建置區(qū)塊。儲存器中之每個字節(jié)位置藉由一唯一非負整數來識別,該非負整數系該字節(jié)位置之地址,或簡稱為字節(jié)地址。鄰近字節(jié)位置具有連續(xù)地址,在左側上以O開始且以自左至右之序列進行。地址為無正負號之二進制整數,且為24個、31個或64個位。
[0167]在儲存器與CPU或信道子系統(tǒng)之間一次一個字節(jié)或字節(jié)群組地傳輸信息。除非以其他方式指定,否則例如在z/Architecture"中,儲存器中的字節(jié)群組是藉由群組之最左側字節(jié)來尋址。群組中之字節(jié)之數目由待執(zhí)行之操作隱含地或顯式地指定。當用于CPU操作中時,字節(jié)群組被稱作字段。在每個字節(jié)群組中,例如在z/Architecture:l<中,以自左至右之序列對位編號。在z/ArchitectureK中,最左側位有時被稱作“高位序”位,且最右側位被稱作“低位序”位。然而,位編號并非儲存地址??蓛H尋址字節(jié)。為了對儲存器中之字節(jié)的個別位進行操作,存取整個字節(jié)。字節(jié)中之位自左至右編號為O至7(例如,在z/Architecture?中)。地址中之位對于24位地址可編號為8至31或40至63,或對于31位地址可編號為I至31或33至63 ;地址中之位對于64位地址編號為O至63。在多個字節(jié)之任何其他固定長度格式內,構成格式之位自O開始連續(xù)編號。出于錯誤偵測目的,且較佳為了校正,可將一個或多個檢查位與每個字節(jié)或與字節(jié)群組一起來傳輸。這些檢查位藉由機器自動產生,且不可直接受程控。以字節(jié)之數目來表達儲存容量。當儲存操作數字段之長度是藉由指令之操作碼隱含時,字段據稱為具有固定長度,該固定長度可為一個、兩個、四個、八個或十六個字節(jié)。可針對一些指令隱含較大字段。當儲存操作數字段之長度未經隱含而是經顯式陳述時,字段據稱為具有可變長度??勺冮L度操作數之長度可以一字節(jié)之增量(或藉由一些指令,以兩個字節(jié)之倍數或其他倍數)變化。當將信息置放于儲存器中時,替換指明字段中所包括的僅那些字節(jié)位置之內容,即使至儲存器之實體路徑的寬度可大于正儲存之字段的長度亦如此。
[0168]信息之某些單元將在儲存器中的整體邊界處。當儲存地址為以字節(jié)為單位的長度的倍數時,邊界對于信息單元而言被稱作整體。對整體邊界上之2個、4個、8個以及16個字節(jié)之字段給予專用名稱。半字組(halfword)為二字節(jié)邊界上之兩個連續(xù)字節(jié)的群組,且為指令之基本建置區(qū)塊。字組為四字節(jié)邊界上之四個連續(xù)字節(jié)的群組。雙字組為八字節(jié)邊界上之八個連續(xù)字節(jié)的群組。四倍字組(quadword)為16字節(jié)邊界上之16個連續(xù)字節(jié)的群組。當儲存地址指明半字組、字組、雙字組以及四倍字組時,地址之二進制表示分別含有一個、兩個、三個或四個最右側零位。指令將在二字節(jié)整體邊界上。大多數指令之儲存操作數并不具有邊界對準要求。
[0169]在實施用于指令以及數據操作數之單獨高速緩存的器件上,若將程序儲存至隨后提取指令所自之快取列上,則可經歷顯著延遲,而不管儲存器是否變更隨后提取的指令。
[0170]在一實施例中,可藉由軟件(有時指代經授權內碼、固件、微碼、毫碼、皮碼(pico-code)及其類似者,前述各者中之任一者將與本發(fā)明的一個或多個方面一致)來實踐本發(fā)明。參看圖12,體現本發(fā)明的一個或多個方面的軟件程序代碼可由主機系統(tǒng)5000之處理器5001自諸如⑶-ROM光驅、磁帶機或硬盤機之長期儲存介質器件5011存取。軟件程序代碼可體現于多種已知媒體中之任一者上以供數據處理系統(tǒng)使用,諸如磁盤、硬盤機或⑶-ROM。程序代碼可散布于這些媒體上,或可自計算機內存5002散布至用戶或經由網絡5010自一計算機系統(tǒng)之儲存器散布至其他計算機系統(tǒng)以供這些其他系統(tǒng)之用戶使用。
[0171]軟件程序代碼包括控制各種計算機組件以及一個或多個應用程序之功能以及互動的操作系統(tǒng)。程序代碼通常自儲存介質器件5011分頁至程序代碼可用于由處理器5001進行處理的相對較高速計算機儲存器5002。用于將軟件程序代碼體現于內存中、實體媒體上和/或經由網絡散布軟件程序代碼的技術以及方法為熟知的,且本文中將不進一步加以論述。程序代碼在產生并儲存于有形媒體(包括但不限于電子內存模塊(RAM)、閃存、光盤(CD)、DVD、磁帶及其類似者)上時常常被稱作“計算機程序產品”。計算機程序產品媒體通??捎奢^佳計算機系統(tǒng)中之處理電路來讀取以供處理電路執(zhí)行。
[0172]圖13說明可實踐本發(fā)明的一個或多個方面的代表性工作站或服務器硬件系統(tǒng)。圖13之系統(tǒng)5020包含包括可選周邊器件之代表性底層計算機系統(tǒng)5021,諸如個人計算機、工作站或服務器。底層計算機系統(tǒng)5021包括一個或多個處理器5026,以及一總線,該總線用以根據已知技術在處理器5026與系統(tǒng)5021之其他組件之間連接以及實現處理器5026與系統(tǒng)5021之其他組件之間的通信。舉例而言,總線將處理器5026連接至內存5025以及長期儲存器5027,長期儲存器5027可包括硬盤機(包括,例如,磁性媒體、CD、DVD以及閃存中的任一者)或磁帶機。系統(tǒng)5021可能亦包括用戶接口配接器,其經由總線將微處理器5026連接至一個或多個接口器件(諸如,鍵盤5024、鼠標5023、打印機/掃描儀5030和/或其他接口器件),這些接口器件可為諸如觸敏式屏幕、數字化鍵入板(entry pad)等之任何用戶接口器件??偩€亦經由顯示器配接器將諸如LCD屏幕或監(jiān)視器之顯示器件5022連接至微處理器5026。
[0173]系統(tǒng)5021可借助于能夠與網絡5029通信(5028)之網絡配接器與其他計算機或計算機之網絡通信。實例網絡配接器為通信頻道、符記環(huán)、以太網絡或調制解調器?;蛘?,系統(tǒng)5021可使用諸如蜂巢式數字封包數據(⑶PD)卡之無線接口進行通信。系統(tǒng)5021可與局域網絡(LAN)或廣域網(WAN)中之這些其他計算機相關聯,或系統(tǒng)5021可為具有另一計算機之客戶端/服務器配置中的客戶端,等等。所有這些配置以及適當通信硬件和軟件為此項技術中知曉的。
[0174]圖14說明可實踐本發(fā)明的一個或多個方面的數據處理網絡5040。數據處理網絡5040可包括多個別網絡,諸如無線網絡和有線網絡,這些網絡中之每個者可包括多個別工作站5041、5042、5043、5044。另外,如本領域技術人員將了解,可包括一個或多個LAN,其中LAN可包含耦接至主機處理器之多個智能型工作站。
[0175]仍參看圖14,網絡亦可包括大型計算機或服務器,諸如網關計算機(客戶端服務器5046)或應用程序服務器(可存取數據儲存庫且亦可直接自工作站5045存取的遠程服務器5048)。網關計算機5046充當至每個別網絡中之入口點。當將一網絡連接協議連接至另一網絡連接協議時,需要網關。網關5046可較佳借助于通信鏈路耦接至另一網絡(例如,因特網5047)。網關5046亦可使用通信鏈路直接耦接至一個或多個工作站5041、5042、5043、5044??衫每少徸?Internat1nal Business Machines Corporat1n 之 IBM
eServer? System Z服務器來實施網關計算機。
[0176]同時參看圖13和圖14,可體現本發(fā)明的一個或多個方面的軟件程序設計碼可由系統(tǒng)5020之處理器5026自諸如⑶-ROM光驅或硬盤機之長期儲存介質5027存取。軟件程序設計碼可體現于多種已知媒體中之任一者上以供數據處理系統(tǒng)使用,諸如磁盤、硬盤機或⑶-ROM。程序代碼可散布于這些媒體上,或可自內存散布至用戶5050、5051或經由網絡自一計算機系統(tǒng)之儲存器散布至其他計算機系統(tǒng)以供這些其他系統(tǒng)之用戶使用。
[0177]或者,程序設計碼可體現于內存5025中,且使用處理器總線由處理器5026來存取。此程序設計碼包括控制各種計算機組件和一個或多個應用程序5032之功能和互動的操作系統(tǒng)。程序代碼通常自儲存介質5027分頁至程序代碼可用于由處理器5026進行處理的高速內存5025。用于將軟件程序設計碼體現于內存中、實體媒體上和/或經由網絡散布軟件程序代碼的技術和方法為熟知的,且本文中將不進一步加以論述。程序代碼在產生并儲存于有形媒體(包括但不限于電子內存模塊(RAM)、閃存、光盤(CD)、DVD、磁帶以及其類似者)上時常常被稱作“計算機程序產品”。計算機程序產品媒體通??捎奢^佳計算機系統(tǒng)中之處理電路來讀取以供處理電路執(zhí)行。
[0178]最易于可用于處理器之高速緩存(通常比處理器之其他高速緩存快且小)為最低(LI或層級一)高速緩存 ,且主儲存器(主存儲器)為最高層級高速緩存(若存在3個層級,則為L3)。最低層級高速緩存常常被分成保持待執(zhí)行之機器指令的指令高速緩存(1-高速緩存),以及保持數據操作數之數據高速緩存(D-高速緩存)。
[0179]參看圖15,針對處理器5026描繪例示性處理器實施例。通常,高速緩存5053之一個或多個層級用以緩沖存儲器區(qū)塊以便改良處理器效能。高速緩存5053為保持最可能使用之內存數據之快取列的高速緩沖器。典型快取列為64個、128個或256個字節(jié)之內存數據。除用于對數據進行快取外,單獨高速緩存亦常常用于對指令進行快取。高速緩存連貫性(內存和高速緩存中之列之復本的同步)常常藉由此項技術中熟知之各種“窺探”算法來提供。處理器系統(tǒng)之主存儲器儲存器5025常常被稱作高速緩存。在具有4個層級之高速緩存5053的處理器系統(tǒng)中,主儲存器5025有時被稱作層級5 (L5)高速緩存,此系由于其通常為較快速的,且僅保持可用于計算機系統(tǒng)之非揮發(fā)性儲存器(DASD、磁帶等)之一部分。主儲存器5025對由操作系統(tǒng)頁入和頁出主儲存器5025之數據頁“進行快取”。
[0180]程序計數器(指令計數器)5061追蹤待執(zhí)行之當前指令的地址。z/Architecture^:處理器中之程序計數器為64個位,且可截斷為31或24個位以支持先前尋址限制。程序計數器通常體現于計算機之程序狀態(tài)字(PSW)中,使得程序計數器在內容脈絡切換期間持續(xù)。因此,具有程序計數器值之進行中程序可藉由例如操作系統(tǒng)來中斷(自程序環(huán)境至操作系統(tǒng)環(huán)境之內容脈絡切換)。程序之PSW在程序并非作用中的時維持程序計數器值,且在操作系統(tǒng)正執(zhí)行時使用操作系統(tǒng)之程序計數器(在PSW中)。通常,使程序計數器遞增達等于當前指令之字節(jié)之數目的量。精簡指令集計算(RISC)指令之長度通常為固定的,而復雜指令集計算(CISC)指令之長度通常為可變的。IBM z/'Architecturex之指令為具有2個、4
個或6個字節(jié)之長度的CISC指令。舉例而言,藉由內容脈絡切換操作或分支指令之分支符記操作來修改程序計數器5061。在內容脈絡切換操作中,將當前程序計數器值連同關于正執(zhí)行之程序的其他狀態(tài)信息(諸如,條件代碼)一起保存于程序狀態(tài)字中,且加載新程序計數器值從而指向待執(zhí)行之新程序模塊的指令。執(zhí)行分支符記操作以便藉由將分支指令之結果加載至程序計數器5061中來準許程序作出決策或在程序內循環(huán)。
[0181]通常,指令提取單元5055用以代表處理器5026提取指令。提取單元在內容脈絡切換之后提取“接下來的循序指令”、分支符記指令之目標指令或程序之最初指令?,F代指令提取單元常常使用預取技術來基于可能使用預取指令之可能性而推測性地預取指令。舉例而言,提取單元可提取包括下一循序指令的指令之16個字節(jié)和其他循序指令之額外字節(jié)。
[0182]接著由處理器5026執(zhí)行所提取指令。在一實施例中,將所提取指令傳遞至提取單元之分派單元5056。分派單元解碼指令,且將關于經解碼指令之信息轉遞至適當單元5057、5058、5060。執(zhí)行單元5057通常將自指令提取單元5055接收關于經解碼算術指令之信息,且將根據指令之作業(yè)碼對操作數執(zhí)行算術運算。較佳將操作數自內存5025、經建構之寄存器5059或自正執(zhí)行之指令的實時字段提供至執(zhí)行單元5057。執(zhí)行之結果在儲存時儲存于內存5025、寄存器5059中或其他機器硬件(諸如,控制寄存器、PSW寄存器及其類似者)中。
[0183]處理器5026通常具有一個或多個單元5057、5058、5060以用于執(zhí)行指令之功能。參看圖16A,執(zhí)行單元5057可借助于介接邏輯5071與經建構通用寄存器5059、解碼/分派單元5056、加載儲存單元5060和其他處理器單元5065通信。執(zhí)行單元5057可使用若干個寄存器電路5067、5068、5069以保持算術邏輯單元(ALU) 5066將進行運算的信息。ALU執(zhí)行諸如加法、減法、乘法和除法之算術運算以及諸如與(and)、或(or)和互斥或(XOR)、旋轉和移位的邏輯功能。較佳地,ALU支持設計相依性之專用運算。舉例而言,其他電路可提供包括條件代碼和修復支持邏輯的其他經建構設施5072。通常,ALU運算之結果保持于輸出寄存器電路5070中,輸出寄存器電路5070可將結果轉遞至多種其他處理功能。存在處理器單元之許多配置,但本發(fā)明描述僅意欲提供對一實施例之代表性理解。
[0184]例如,加法(ADD)指令將在具有算術和邏輯功能性的執(zhí)行單元5057中執(zhí)行,而例如浮點指令將在具有專用浮點能力的浮點執(zhí)行中執(zhí)行。較佳地,執(zhí)行單元藉由對藉由指令識別的操作數執(zhí)行作業(yè)碼定義之功能而對操作數進行運算。舉例而言,加法(ADD)指令可由執(zhí)行單元5057對在藉由指令之寄存器字段識別的兩個寄存器5059中發(fā)現之操作數執(zhí)行。
[0185]執(zhí)行單元5057對兩個操作數執(zhí)行算術加法,且將結果儲存于第三操作數中,其中第三操作數可為第三寄存器或兩個源寄存器中的一者。執(zhí)行單元較佳利用算術邏輯單元(ALU) 5066,算術邏輯單元(ALU) 5066能夠執(zhí)行諸如移位、旋轉、與(And)、或(Or)和互斥或(XOR)之多種邏輯功能,以及包括加法、減法、乘法、除法中之任一者的多種代數函數。一些ALU5066經設計以用于純量運算且一些ALU5066經設計以用于浮點。取決于架構,數據可為大端序(Big Endian)(其中最低有效字節(jié)處于最高字節(jié)地址)或小端序(Little Endian)(其中最低有效字節(jié)處于最低字節(jié)地址)。IBM z/Architecture々系大端序。取決于架構,帶正負號之字段可為正負號和量值(I之補碼或2之補碼)。2之補碼系有利的,此系因為:ALU并不需要設計減法能力,此系由于2之補碼中的負值或正值僅需要ALU內的加法。舉例而言,常常以速記法來描述數字,其中12位字段定義4,096字節(jié)區(qū)塊之地址,且通常經描述為4Kbyte (千字節(jié))區(qū)塊。
[0186]參看圖16B,用于執(zhí)行分支指令之分支指令信息通常發(fā)送至分支單元5058,分支單元5058常常使用諸如分支歷史表5082之分支預測算法來在其他條件運算完成之前預測分支之結果。將提取當前分支指令之目標,且在條件運算完成之前推測性地執(zhí)行當前分支指令之目標。當完成條件運算時,基于條件運算之條件和所推測結果而完成或舍棄推測性執(zhí)行之分支指令。典型分支指令可測試條件代碼,且在條件代碼滿足分支指令之分支要求情況下分支至目標地址,可基于例如在寄存器字段或指令之實時字段中發(fā)現之若干數字(包括一)而計算目標地址。分支單元5058可使用ALU5074,ALU5074具有多個輸入寄存器電路5075、5076、5077和一輸出寄存器電路5080。舉例而言,分支單元5058可與通用寄存器5059、解碼分派單元5056或其他電路5073通信。
[0187]舉例而言,一群指令之執(zhí)行可由于多種原因而被中斷,這些原因包括由操作系統(tǒng)啟動之內容脈絡切換、引起內容脈絡切換之程序異?;蝈e誤、引起內容脈絡切換之I/o中斷信號,或多個程序之多線程活動(在多線程化環(huán)境中)。較佳地,內容脈絡切換動作保存關于當前正執(zhí)行之程序的信息,且接著加載關于正調用之另一程序的狀態(tài)信息。舉例而言,狀態(tài)信息可保存于硬件寄存器中或內存中。狀態(tài)信息較佳包含指向待執(zhí)行之下一指令的程序計數器值、條件代碼、內存轉譯信息和經建構之寄存器內容。內容脈絡切換活動可單獨或組合地藉由硬件電路、應用程序、操作系統(tǒng)程序或固件碼(微碼、皮碼或經授權內碼(LIC))來訓練。
[0188]處理器根據指令定義的方法來存取操作數。指令可使用指令之一部分的值來提供實時運算元,可提供明確地指向通用寄存器或專用寄存器(例如,浮點寄存器)的一個或多個寄存器字段。指令可利用藉由作業(yè)碼字段識別之隱含寄存器作為操作數。指令可將內存位置用于操作數。操作數之內存位置可由寄存器、實時字段或寄存器與實時字段之組合來提供,如藉由z/Architecture1(長位移設施例證,其中指令定義基礎寄存器、索引寄存器和實時字段(位移字段),前述三者相加在一起以提供例如操作數在內存中的地址。除非以其他方式指示,否則位置于本文中通常隱含主存儲器(主儲存器)中的位置。
[0189]參看圖16C,處理器使用加載/儲存單元5060來存取儲存器。加載/儲存單元5060可藉由獲得目標操作數在內存5053中之地址且將操作數加載于寄存器5059或另一內存5053之位置而執(zhí)行加載操作,或可藉由獲得目標操作數在內存5053中之地址且將自寄存器5059或另一內存5053之位置獲得的數據儲存于內存5053中之目標操作數位置中而執(zhí)行儲存操作。加載/儲存單元5060可為推測性的,且可以相對于指令序列而言無序的序列存取內存,然而,加載/儲存單元5060對于程序維持按次序執(zhí)行指令的顯現。加載/儲存單元5060可與通用寄存器5059、解碼/分派單元5056、高速緩存/內存接口 5053或其他組件5083通信,且包含各種寄存器電路、ALU5085和控制邏輯5090以計算儲存地址并提供管線定序以保持操作按次序。一些操作可為無序的,但加載/儲存單元提供使得無序操作對于程序顯現為已按次序執(zhí)行的功能性,如此項技術中所熟知的。
[0190]較佳地,應用程序“看見”的地址常常被稱作虛擬地址。虛擬地址有時被稱作“邏輯地址”和“有效地址”。這些虛擬地址為虛擬的在于:其藉由多種動態(tài)地址轉譯(DAT)技術中之一者而重新導向至物理內存位置,這些動態(tài)地址轉譯(DAT)技術包括(但不限于)簡單地對虛擬地址加偏移值作為前綴、經由一個或多個轉譯表轉譯虛擬地址,轉譯表較佳單獨或組合地包含至少一個段表和一頁表,較佳地,段表具有指向頁表之條目。在z/Architectureκ中,提供轉譯階層,包括區(qū)第一表、區(qū)第二表、區(qū)第三表、段表和可選之頁表。常常藉由利用轉譯后備緩沖器(TLB)來改良地址轉譯之效能,該轉譯后備緩沖器(TLB)包含將虛擬地址映像至相關聯物理內存位置的條目。當DAT使用轉譯表來轉譯虛擬地址時,產生這些條目。虛擬地址之后續(xù)使用可接著利用快速TLB之條目而非緩慢循序轉譯表存取。可藉由包括最近最少使用(LRU)之多種替換算法來管理TLB內容。
[0191]在處理器為多處理器系統(tǒng)之處理器的狀況下,每個處理器具有保持諸如I/O、高速緩存、TLB和內存之共享資源互鎖以達成一致性的責任。通常,“窺探”技術將用于維持高速緩存之一致性中。在窺探環(huán)境中,可將每個快取列標示為處于共享狀態(tài)、互斥狀態(tài)、改變之狀態(tài)、無效狀態(tài)和其類似者中之任一者以便促進共享。
[0192]舉例而言,I/O單元5054(圖15)為處理器提供用于附加至包括磁帶、光盤、打印機、顯示器和網絡之周邊器件的構件。I/o單元常常由軟件驅動程序呈現給計算機程序。在諸如可購自IBNiliISystem z'Kt的大型計算機中,信道配接器和開放系統(tǒng)配接器為大型計算機之提供操作系統(tǒng)與周邊器件之間的通信之I/O單元。
[0193]另外,其他類型的計算環(huán)境可受益于本發(fā)明的一個或多個方面。作為實例,如本文中所提及,環(huán)境可包括一仿真器(例如,軟件或其他仿真機制),在該仿真器中仿真特定架構(包括例如指令執(zhí)行、諸如地址轉譯的經建構之功能,和經建構之寄存器)或其子集(例如,在具有處理器和內存的原生計算機系統(tǒng)上)。在此環(huán)境中,仿真器之一個或多個模擬函式可實施本發(fā)明的一個或多個方面,即使執(zhí)行該仿真器之計算機可具有不同于正模擬之能力的架構亦如此。作為一個實例,在仿真模式中,解碼特定指令或正仿真之操作,且建置適當模擬函式以實施個別指令或操作。
[0194]在一模擬環(huán)境中,主計算機例如包括:內存,其儲存指令和數據;指令提取單元,其自內存提取指令且視情況,提供所提取之指令的本端緩沖;指令解碼單元,其接收所提取之指令且判定已提取的指令之類型;以及指令執(zhí)行單元,其執(zhí)行這些指令。執(zhí)行可包括:將數據自內存加載至寄存器中;將數據自寄存器儲存回至內存;或執(zhí)行某一類型之算術或邏輯運算(如由解碼單元判定)。在一個實例中,以軟件來實施每個單元。舉例而言,將由這些單元執(zhí)行之操作實施為仿真器軟件內之一個或多個子例程。
[0195] 更特定而言,在大型計算機中,常常借助于編譯應用程序而供程序設計師(現今通常為“C”程序設計師)使用經建構之機器指令。儲存于儲存介質中之這些指令可原生地在z/Architecture^丨BM1'服務器中或者在執(zhí)行其他架構之機器中執(zhí)行??稍诂F有和未來之IBM?.大型計算機服務器中和在IBM?之其他機器(例如,電力系統(tǒng)(Power
System)服務器和System x?,服務器)上仿真指令。可于在使用由IBM?、Intel?、AMD?及其他制造商制造之硬件的廣泛多種機器上執(zhí)行Linux的機器中執(zhí)行指令。除在依據z/Architecture'之該硬件上執(zhí)行外,亦可使用Linux以及使用由Hercules、UMX或
FSI (Fundamental Software, Inc)進行之模擬的機器,其中執(zhí)行大體上處于仿真模式。在仿真模式中,由原生處理器執(zhí)行仿真軟件以仿真仿真處理器的架構。
[0196]原生(native)處理器通常執(zhí)行仿真軟件,該仿真軟件包含固件或原生操作系統(tǒng)以執(zhí)行仿真處理器的模擬。仿真軟件負責提取并執(zhí)行仿真處理器架構之指令。仿真軟件維護仿真程序計數器以追蹤指令邊界。仿真軟件一次可提取一個或多個仿真機器指令,并將該一個或多個仿真機器指令轉換成一群對應原生機器指令以供原生處理器執(zhí)行??蓪@些經轉換之指令進行快取,使得可實現較快速轉換。盡管如此,仿真軟件仍維護仿真處理器架構之架構規(guī)則以便確保針對仿真處理器撰寫之操作系統(tǒng)和應用程序正確地操作。此外,仿真軟件將提供藉由仿真處理器架構識別之資源,使得經設計以在模擬處理器上執(zhí)行之操作系統(tǒng)或應用程序可在具有仿真軟件之原生處理器上執(zhí)行,這些資源包括(但不限于)控制寄存器、通用寄存器、浮點寄存器、包括例如段表及頁表之動態(tài)地址轉譯功能、中斷機制、內容脈絡切換機制、當日時間(TOD)時鐘及至I/O子系統(tǒng)之經建構接口。
[0197]解碼正仿真之指定指令,且調用子例程以執(zhí)行個別指令之功能。仿真仿真處理器之功能的仿真軟件功能系例如按以下各者來實施:“C”子例程或驅動程序,或在理解較佳實施例之描述之后將在本領域技術人員之技藝內的提供用于指定硬件之驅動程序的某一其他方法。包括(但不限于)以下各者之各種軟件及硬件仿真專利說明用以達成針對不同機器進行架構之指令格式用于可用于本領域技術人員的目標機器的仿真的多種已知方式:Beausoleil 等人之題為 “Multiprocessor for Hardware Emulat1n” 之美國專利證書第 5, 551, 013 號;及 Scalzi 等人之題為 “Preprocessing of Stored Target Routinesfor Emulating Incompatible Instruct1ns on a Target Processor,,的美國專利證書第6, 009, 261 號;及 Davidian 等人之題為“Decoding Guest Instruct1n to Directly AccessEmulat1n Routines that Emulate the Guest Instruct1ns,,的美國專利證書第5,574, 873號;及 Gorishek 等人之題為 “Symmetrical Multiprocessing Bus and Chipset Used forCoprocessor Support Allowing Non-Native Code to Run in a System” 的美國專利證書第 6, 308, 255 號;及 Lethin 等人之題為 “Dynamic Optimizing Object Code Translatorfor Architecture Emulat1n and Dynamic Optimizing Object Code Translat1n Method,,的美國專利證書第 6, 463, 582 號;及 Eric Traut 之題為 “Method for Emulating GuestInstruct1ns on a Host Computer Through Dynamic Recompilat1n of Host Instruct1ns,,的美國專利證書第5,790,825號,前述專利證書中之每個者藉此以其全文引用之方式并入本文中;及許多其他專利證書。
[0198]在圖17中,提供仿真主計算機系統(tǒng)5092之實例,其仿真主機架構之主計算機系統(tǒng)5000’。在仿真主計算機系統(tǒng)5092中,主機處理器(CPU) 5091為仿真主機處理器(或虛擬主機處理器),且包含具有不同于主計算機5000’之處理器5091之原生指令集架構的原生指令集架構之仿真處理器5093。仿真主計算機系統(tǒng)5092具有仿真處理器5093可存取的內存5094。在實例實施例中,內存5094經分割成主計算機內存5096部分及仿真例程5097部分。主計算機內存5096可用于根據主計算機架構之仿真主計算機5092的程序。模擬處理器5093執(zhí)行不同于模擬處理器5091之架構的架構之經建構指令集之原生指令,這些原生指令系自仿真例程內存5097獲得,且可藉由使用在序列與存取/解碼例程中獲得之一個或多個指令來自主計算機內存5096中之程序存取主機指令以供執(zhí)行,序列與存取/解碼例程可解碼所存取之主機指令以判定用于仿真所存取之主機指令之功能的原生指令執(zhí)行例程。舉例而言,針對主計算機系統(tǒng)5000’之架構定義之其他設施可藉由經建構之設施例程來仿真,包括諸如通用寄存器、控制寄存器、動態(tài)地址轉譯及I/O子系統(tǒng)支持及處理器高速緩存的設施。仿真例程亦可利用在仿真處理器5093中可用之功能(諸如,通用寄存器及虛擬地址之動態(tài)轉譯)以改良仿真例程的效能。亦可提供專用硬件及卸除引擎以協處理器5093仿真主計算機5000’之功能。
[0199]本文所使用之術語僅為了描述特定實施例的目的,且并不意欲為本發(fā)明之限制。如本文中所使用,除非上下文另有清楚地指示,否則單數形式“一”及“該”意欲亦包括復數形式。應進一步理解,當術語“包含”用于此說明書中時,其指定所陳述之特征、整數、步驟、操作、組件和/或組件之存在,但并不排除一個或多個其他特征、整數、步驟、操作、組件、組件和/或其群組之存在或添加。
[0200]以下申請專利范圍中之所有構件或步驟加功能組件的對應結構、材料、動作及等效物(若有的話)意欲包括用于結合如特別主張之其他所主張組件執(zhí)行功能的任何結構、材料或動作。出于說明及描述之目的已呈現了本發(fā)明的一個或多個方面的描述,但該描述并不意欲為詳盡的或以所揭示形式限制本發(fā)明。在不偏離本發(fā)明之范疇及精神之情況下,許多修改及變化對于一般本領域技術人員將為顯而易見的。選擇及描述實施例以便最好地解釋本發(fā)明之原理及實務應用,且使得其他一般本領域技術人員能夠針對具有如適合于所預期之特定用途的各種修改之各種實施例來理解本發(fā)明。
【權利要求】
1.一種用于有助于促進計算環(huán)境中的處理的計算機程序產品,該計算機程序產品包含: 計算機可讀儲存介質,其可由處理電路讀取且儲存由該處理電路執(zhí)行以用于執(zhí)行一種方法的指令,該方法包含: 由程序獲取警告追蹤設施已安裝在計算環(huán)境內的指示,該警告追蹤設施向該程序提供警告追蹤寬限期以執(zhí)行該功能; 由該程序接收警告追蹤通知,該通知指示該警告追蹤寬限期已經開始;以及 基于該警告追蹤通知,由該程序在該警告追蹤寬限期內至少啟動該功能。
2.根據權利要求1所述的計算機程序產品,其中該方法還包括由程序注冊該警告追蹤設施。
3.根據權利要求2所述的計算機程序產品,其中基于所述注冊,對該警告追蹤設施啟動該程序。
4.根據權利要求1所述的計算機程序產品,其中該警告追蹤通知包含中斷,在該中斷中,在該警告追蹤寬限期終止之后釋放指派給該程序的共享資源。
5.根據權利要求1所述的計算機程序產品,其中該功能包含以下之一: 完成在其上執(zhí)行該程序的處理器上執(zhí)行的可分派單元;或 使該可分派單元可在該計算環(huán)境的另一處理器上重新分派。
6.根據權利要求1所述的計算機程序產品,其中該程序為客戶機程序,其在提供給其上執(zhí)行該客戶機程序的客戶機中央處理單元的時間片期間,存取該計算環(huán)境的共享資源,該警告追蹤寬限期有別于該時間片。
7.根據權利要求6所述的計算機程序產品,其中該警告追蹤寬限期使該時間片過早地終止。
8.根據權利要求6所述的計算機程序產品,其中除該時間片外,該警告追蹤寬限期亦提供執(zhí)行該功能的時段。
9.根據權利要求1所述的計算機程序產品,其中該方法進一步包含由該程序指示該功能在該警告追蹤寬限期期間的完成。
10.根據權利要求9所述的計算機程序產品,其中該方法進一步包含在該程序下一次執(zhí)行時,由該程序接收該第一功能在該警告追蹤寬限期期間完成的指示。
11.一種用于有助于促進計算環(huán)境中的處理的計算機系統(tǒng),該計算機系統(tǒng)包含: 內存;及 與該內存通信的處理器,其中該計算機系統(tǒng)配置為執(zhí)行一方法,該方法包含: 由程序獲取警告追蹤設施已安裝在計算環(huán)境內的指示,該警告追蹤設施向該程序提供警告追蹤寬限期以執(zhí)行該功能; 由該程序接收警告追蹤通知,該通知指示該警告追蹤寬限期已經開始;以及 基于該警告追蹤通知,由該程序在該警告追蹤寬限期內至少啟動該功能。
12.根據權利要求11所述的計算機系統(tǒng),其中該方法還包括由程序注冊該警告追蹤設施。
13.根據權利要求12所述的計算機系統(tǒng),其中基于所述注冊,對該警告追蹤設施啟動該程序。
14.根據權利要求11所述的計算機系統(tǒng),其中該功能包含以下之一: 完成在其上執(zhí)行程序的處理器上執(zhí)行的可分派單元;或 使該可分派單元可在該計算環(huán)境的另一處理器上重新分派。
15.根據權利要求11所述的計算機系統(tǒng),其中該程序為客戶機程序,在提供給其上執(zhí)行該客戶機程序的客戶機中央處理單元的一時間片期間,該客戶機程序能夠存取該計算環(huán)境的共享資源,該警告追蹤寬限期有別于該時間片。
16.根據權利要求15所述的計算機系統(tǒng),其中該警告追蹤寬限期使該時間片過早地終止。
17.根據權利要求15所述的計算機系統(tǒng),其中除該時間片外,該警告追蹤寬限期亦提供執(zhí)行該功能的時段。
18.一種有助于促進計算環(huán)境中的處理的方法,該方法包含: 由程序接收警告追蹤設施已安裝在計算環(huán)境內的指示,該警告追蹤設施向該程序提供警告追蹤寬限期以執(zhí)行一功能; 由該程序接收警告追蹤通知,該通知指示該警告追蹤寬限期已經開始;以及 基于該警告追蹤通知,由該程序在該警告追蹤寬限期內至少啟動該功能。
19.根據權利要求18所述的方法,其中該功能包括以下之一: 完成在其上執(zhí)行程序的處理器上執(zhí)行的可分派單元;或 使該可分派單元可在該計算環(huán)境的另一處理器上重新分派。
20.根據權利要求18所述的方法,其中該程序為客戶機程序,在提供給其上執(zhí)行該客戶機程序的客戶機中央處理單元的時間片期間,該客戶機程序能夠存取該計算環(huán)境的共享資源,并且其中該警告追蹤寬限期有別于該時間片。
【文檔編號】G06F9/46GK104054054SQ201280067487
【公開日】2014年9月17日 申請日期:2012年11月13日 優(yōu)先權日:2012年1月18日
【發(fā)明者】小查爾斯.蓋尼, J.P.庫巴拉, M.法雷爾, D.W.施米特, J.馬爾德, B.皮爾斯, R.羅杰斯 申請人:國際商業(yè)機器公司