对在os运行时期间发生的系统错误的基于策略的响应的制作方法

文档序号:6478388阅读:218来源:国知局
专利名称:对在os运行时期间发生的系统错误的基于策略的响应的制作方法
技术领域
这一公开总地涉及故障恢复,具体地但不穷尽地,涉及对在操作系统运行时期间发生的系统错误的基于策略的响应。
背景技术
计算机在现代办公室环境中已成为一种无所不在的工具。但是,这些计算机的用户面对每天出现的无数系统错误或故障,并不具备补救这些错误所需的技术知识和/或训练。通常,当计算机遭受故障而用户又不能解决的时候,他们会打电话给信息技术(“IT”)的技术人员寻求帮助,这需要人员之间的互换。在一些情况下,IT技术人员可以通过电话指导用户如何补救故障。不过,在很多情况下,IT技术人员必须实际前往发生故障的计算机来诊断问题并且补救故障。补救措施可以简单到改变运行在计算机上的应用程序中的软件设置,一直到在计算机上安装新的软件或者甚至新的固件映像。
在大的办公室环境中,办公计算机通常通过局域网(“LAN”)与服务器互连。这些办公计算机被称为客户计算机。LAN和客户计算机通常是由内部IT技术人员或IT组来维护的。IT组的工作就是要尽快诊断并且补救发生故障的客户计算机。客户计算机的“故障时间”相当于浪费的用户生产率。然而,对大办公室环境中的大量日常故障作出响应,这是一项需要很多IT技术人员的繁重任务。使用随叫随到的IT技术人员本质上是一件很昂贵的事情,而且IT技术人员常常供不应求,这些全都经常会给用户生产率造成不应有的损失。
为了避免这样的花销,已经开发出多种诊断工具,使得IT技术人员能够获得有关发生故障的计算机的信息,而不必实际到达发生故障的计算机处。过去,设备制造商已采用网络协议例如简单网络管理协议(“SNMP”)来执行远程系统诊断。IT技术人员可以使用基于SNMP的软件工具来查询发生故障的计算机的状态,或者调用客户计算机的内置诊断功能并且远程监控测试结果。但是,这种方法仍然需要IT技术人员从服务器计算机监视补救过程。此外,如果客户计算机的操作系统发生了故障或者已经“崩溃”,那么基于SNMP的软件可能就无法对IT技术人员的状态查询作出响应。因此,在系统崩溃的情况下,可能仍需要IT技术人员到客户计算机旁亲自解决问题。


参考以下附图来描述本发明非限制性并且非穷尽性的实施方案,其中除非特别指出,在各个附图中相同的标号是指相同的部分。
图1是根据本发明的一个实施方案,图示了对系统错误执行基于策略的响应的处理系统的框图。
图2的状态图示出了根据本发明的一个实施方案,一个处理系统对系统错误执行基于策略的响应所循环经历的状态。
图3的流程图示出了根据本发明的一个实施方案,用于实现对系统错误执行基于策略的响应的处理系统的方法。
图4是根据本发明的一个实施方案,图示了通过网络对系统错误执行基于策略的响应的服务器-客户端系统的框图。
图5的流程图示出了根据本发明的一个实施方案,用于实现通过网络对系统错误执行基于策略的响应的客户端系统的方法。
图6的流程图示出了根据本发明的一个实施方案,用于实现通过网络对系统错误执行基于策略的响应的服务器系统的方法。
图7图示了根据本发明的一个实施方案,实现对系统错误执行基于策略的响应的处理系统、客户端系统或服务器系统的示例性计算机系统。
具体实施例方式
这里描述的是对在操作系统(“OS”)运行时期间发生的系统错误实现基于策略的响应的系统和方法的实施方案。在一些描述中阐述了大量具体的细节,以提供对本发明实施方案的完整理解。然而,相关领域的技术人员将认识到,没有这些具体细节中的一个或多个,或者利用其他方法、组件或材料等也可以实现本发明。此外,没有示出及描述公知的结构、材料或操作,以免模糊了本发明的各个方面。
在整个说明书中提及“一个实施方案”或者“实施方案”是指参考该实施方案所描述的具体特征、结构或特性被包括在本发明的至少一个实施方案中。因此,短语“在一个实施方案中”或者“在实施方案中”在整个说明书不同地方的出现不一定都是指同一个实施方案。此外,具体的特征、结构或特性可以以适当的方式被组合在一个或多个实施方案中。
在本发明的一个实施方案中,一个处理系统能够诊断系统错误,并且能够基于容错策略对该系统错误作出响应。该处理系统甚至能够诊断并响应导致系统崩溃的系统错误,例如当该处理系统的操作系统(“OS”)挂起或冻结时。在一个实施方案中,服务器系统能够通过网络诊断并响应客户端系统的系统错误。下面将详细描述本发明的这些和其他实施方案以及附加特征。
图1是图示了根据本发明的实施方案,对系统错误执行基于策略的响应的处理系统100的框图。在一个实施方案中,处理系统100包括中央处理单元(“CPU”)105、存储器单元110、存储器位置125和非易失性(“NV”)存储单元130。在一个实施方案中,存储器单元110包括保护区111和非保护区113。在一个实施方案中,故障响应代理(agent)135和容错策略140被存储在存储器单元110的保护区111中。在一个实施方案中,故障响应代理145被存储在NV存储单元130中。在一个实施方案中,OS150和软件应用程序155都被存储并运行在存储器单元110的非保护区113中。
处理系统100的元件如下互连。CPU104被可通信地耦合到NV存储单元130,以从中接收并执行固件指令。此外,CPU105被可通信地耦合到存储器单元110,以执行OS150和软件应用程序155。在一些情形中,固件指令可以由CPU105从NV存储单元130转移到存储器单元110,并从中由CPU105来执行。
在一个实施方案中,CPU105是基于Intel体系结构的CPU。在其他实施方案中,CPU105是能够接收、发送并执行软件指令的任何处理器。在一个实施方案中,存储器单元110是系统随机访问存储器(“RAM”)。在其他实施方案中,存储器单元110是硬盘、软盘、磁带驱动器、非易失性存储器等。在一个实施方案中,NV存储单元130是只读存储器器件。在其他实施方案中,NV存储单元130是可编程只读存储器器件、可擦除可编程只读存储器器件、电可擦除可编程只读存储器器件、闪存器件等。
现在参考图1和2,处理系统100的一个实施方案循环经历以下状态,以对系统错误实现基于策略的响应。在系统关闭状态210中,处理系统100被关机。当CPU105接收到开机信号时,状态转移213将处理系统100转移到初始化状态220。
在初始化状态220中,处理系统105开始它的早期初始化。这一初始化过程可以包括由CPU105执行任务,例如从NV存储单元130加载引导程序,执行开机自检测(“POST”),以及搜索附接的驱动器以找到OS150并将OS150的文件加载到存储器单元110的非保护区113中。例如,在微软WindowsTM环境中,CPU105可以将被称为IO.SYS的文件加载到非保护区113中。在一个实施方案中,初始化状态220包括将故障响应代理145加载到存储器单元110的保护区111中。为清楚起见,一旦故障响应代理145从固件130被加载到保护区111中,它将被称为故障响应代理135。应当认识到,故障响应代理145可以被存储在可通信地耦合到CPU105的任何非易失存储器件中,例如硬盘等。如果处理系统100被可通信地耦合到网络,它也可以经由动态主机配置协议(“DHCP”)或其他适当的网络协议,在初始化状态220期间获取服务器地址。处理系统100可以在初始化状态220期间执行很多其他任务,为清楚起见没有包括进来。
当引导程序将对处理系统100的控制交给OS150时,发生状态转移223。状态转移223将处理系统100从初始化状态220转移到OS运行时运行模式状态230。在OS运行时运行模式状态230中,OS150对处理系统100具有控制权,并且CPU105可以在OS150的上面执行任意数量的软件应用程序155。
在一个实施方案中,当CPU105接收到中断信号107时,处理系统100经由状态转移233转移到受保护运行模式状态240。当处于受保护运行模式状态240中时,OS运行时被中止。在受保护运行模式状态240期间,处理系统100的运行被保护以免受到在OS运行时运行模式状态230期间执行的OS150或应用程序155的破坏。因此,即使OS150已经崩溃并且CPU105不能在OS运行时运行模式状态230期间进行有用的执行,CPU105也能够在受保护运行模式状态240期间执行软件指令。
在一个实施方案中,受保护运行模式状态240是内建于Intel SL增强型486和PentiumTMCPU内的系统管理模式(“SMM”)。在这一实施方案中,当CPU105接收到系统管理中断(“SMI”)时,进入SMM。当一个事件产生SMI时,CPU105通过将其当前状态的实质部分保存在状态保存映射表中而作出响应,初始化某些寄存器以提供SMM执行环境,然后开始在SMM内执行。在这个SMM的实施方案中,存储器单元110的保护区域111被称为系统管理随机访问存储器(“SMRAM”)。只有在SMM期间执行的应用程序有权访问SMRAM。因此,在OS运行时运行模式状态230期间执行的OS150和软件应用程序155不具有对SMRAM的访问权。以这种方式,就可以保护在SMM期间执行的SMRAM和应用程序(例如故障响应代理135)免受OS150和/或软件应用程序155的破坏。即使OS150已经崩溃,或者软件应用程序155之一挂起,CPU105在SMM期间的执行也不受影响。另外,SMM对OS155是透明的,并且是OS不可知(agnostic)的。换言之,OS150和软件应用程序155并不知道SMM和SMRAM。
一旦处于受保护运行模式状态240中,故障响应代理135就查询处理系统100,以确定是否发生了系统错误。如果故障响应代理135没有检测到系统错误,则处理系统100沿着状态转移235返回到OS运行时运行模式状态230。一旦处理系统100沿着状态转移235返回到OS运行时运行模式状态230,CPU105的执行就在它原来停止的地方恢复。
如果故障响应代理135检测到了系统错误,则故障响应代理135作出响应,以基于容错策略140来补救所述系统错误。在一个实施方案中,容错策略140包含与系统错误相对应的一列策略命令(directive)。故障响应代理135执行这些策略命令,以对检测到的系统错误作出响应。下面将更详细地讨论容错策略140。基于故障响应代理135所执行的具体策略命令,处理系统100将沿着状态转移235返回到OS运行时运行模式状态230,或者沿着状态转移243转移到系统关闭状态210。如果处理系统100返回到OS运行时运行模式状态230,那么它将再次返回到受保护运行模式状态240。下面将更详细地讨论处理系统100执行状态转移233的频率。如果处理系统100沿着状态转移243转移到系统关闭状态210,那么处理系统100将以与上述类似的方式返回到OS运行时运行模式状态230。
现在参考图1和图3,根据本发明,处理系统100的一个实施方案如下运行,以实现对系统错误的基于策略的响应。
在处理框305中,处理系统100开机。开机事件可能是处理系统100的用户开启处理系统100的结果,或者它可能是处理系统100复位的结果。离开处理框305,处理系统100将经过前面结合初始化状态220所描述的早期系统初始化(处理框310)。接着,CPU105将故障响应代理145加载到存储器单元110的保护区域111中(处理框315)。在处理框320中,CPU105发动引导目标(例如,当在微软WindowsTM环境中运行时是指IO.SYS)。此时,处理系统100前进到处理框325,进入OS运行时运行模式。
当处于OS运行时运行模式中时,OS150控制CPU105以及处理系统100中未示出的各种其他元件的操作。此外,一个或多个软件应用程序155可以在OS150之上运行。OS运行时运行模式代表了CPU105和处理系统100的普通运行模式。
在处理框330中,CPU105接收到中断信号107,指示CPU105激活受保护运行模式。在一个实施方案中,以一个设定的间隔周期性地产生中断信号107(例如心跳式中断)。在一个实施方案中,响应于硬件看门狗定时器而触发中断信号107。看门狗定时器是一个时钟电路,它从起始数开始向下数到零。如果看门狗定时器正在监视的事件在看门狗定时器到达零之前发生了,那么看门狗定时器复位到起始数,并且再次开始向下计数。如果该时钟电路到达零,则该电路产生中断信号107。在一个实施方案中,看门狗定时器对存储器位置125进行监控,而存储器位置125又是由OS 150或者软件应用程序155之一以设定的间隔来更新的。因此,如果负责更新存储器位置125的OS150或软件应用程序155之一挂起或者以其他方式发生故障(即,引发了系统错误),那么在看门狗定时器向下数到零之前存储器位置125不能被更新。在这种情况下,看门狗定时器将产生中断信号107。在一个实施方案中,中断信号107就是前面所描述的SMI。
一旦在处理框330中产生中断信号107,CPU105就激活受保护运行模式(处理框335),并且中止OS运行时运行模式。当OS运行时间被中止时,在处理框315中被加载到存储器单元110的保护区域111中的故障响应代理135查询处理系统100的各个方面,以确定是否已发生了系统故障或系统错误(处理框340)。在一个实施方案中,查询处理系统100包括访问存储器位置125,以确定自从故障响应代理135上一次查询存储器位置125到现在,在存储器位置125中所包含的数据是否已在OS运行时运行模式期间,以预定或预期的方式随着时间演变。因此,如果OS150或软件应用程序155之一挂起,它可能就不再能够象故障响应代理135所预期的那样对存储器位置125进行更新。在OS运行时运行模式和受保护运行模式之间连续转移之后,故障响应代理135可以将数据的当前值和数据的先前值做比较。如果数据没有以预期的方式改变,则故障响应代理135确定发生了系统错误(判决框345)。
在一个实施方案中,存储器位置125是OS150和/或软件应用程序155可以访问的数据寄存器。在一个实施方案中,存储器位置125是存储器单元110的非保护区域113内的存储器位置或多个存储器位置。存储器位置125可以是耦合到CPU105的任意存储器件或多个存储器件的任意存储地址位置或多个存储地址位置,其在OS运行时间内以可确定的方式演变,或者在OS运行时间内以可确定的方式保持静态。应当理解,虽然在图1中只示出了一个存储器位置125,但是故障响应代理135可以访问处理系统100内任意数量的存储器位置125,以收集有关处理系统100的运行健康状况的诊断信息。在一个实施方案中,应用程序155中的每一个都具有至少一个对应的存储器位置125,在处理框340中,故障响应代理135可以在受保护运行模式期间对该位置进行查询。
故障响应代理135除了知道存储器位置125在处理系统100的健康运行期间被预期如何随着时间演变之外,还知道存储器位置125的其他属性和特性。例如,如果存储器位置125包含处理系统100的系统时钟数据,那么故障响应代理135将会拥有这一信息,并且知道系统时钟应当在以可确定的方式递增。如果系统时钟数据在对存储器位置125的连续查询之间没有递增预期的量,那么故障响应代理135可以查询处理系统100的其他方面,以确定是系统时钟应用程序发生了故障还是OS150发生了故障。
如果故障响应代理135在判决框345确定已发生了系统错误,则故障响应代理基于容错策略140对该系统错误作出响应(处理框355)。在一个实施方案中,容错策略140包含与系统错误相对应的一列策略命令。故障响应代理135执行这些策略命令,以响应所检测到的系统错误。例如,一个这样的策略命令可以是复位处理系统100。在这种情况下,处理系统100将返回处理框305,并且如上所述地从那里开始执行。其他策略命令可以包括终止作为系统错误源的一个或多个软件应用程序155的执行,将所保存的基本输入输出系统映像恢复到NV存储单元130中,或者将所保存的软件映像(例如OS150的系统文件)恢复到耦合到CPU105的硬盘(未示出)中。在一个实施方案中,故障响应代理135维护一个检测到的系统错误的日志。在这个实施方案中,如果故障响应代理135几次将同一系统错误写入日志(例如一星期四次),那么故障响应代理135基于容错策略140和包含重复系统错误的日志,可以确定一种谨慎的策略命令就是分别将所保存的软件映像或者所保存的BIOS映像恢复到硬盘或NV存储单元130中。
返回判决框345,如果故障响应代理135确定未发生系统错误,则处理系统100禁用受保护运行模式(处理框350),并且CPU105从它在OS运行时运行模式中停止的地方继续执行(处理框325)。在一个实施方案中,在OS运行时运行模式和受保护运行模式之间的这一循环无限制地继续下去。此外,在一个实施方案中,应用程序155和OS150恢复执行,而不知道它们曾经被中止过。运行保护模式的这种透明性可以通过就在激活受保护运行模式之前保存CPU105的状态参数来实现。在禁用受保护运行模式之后,所保存的状态参数被复制回CPU105,并且OS运行时运行模式恢复执行。
图4是根据本发明的实施方案,通过网络403对系统错误执行基于策略的响应的服务器-客户端系统400的实施方案的框图。在这个实施方案中,服务器-客户端系统400包括客户端系统401,该系统经由网络403可通信地耦合到服务器系统402。客户端系统401所示出的实施方案包括CPU105、存储器单元110、通信链路415、存储器位置125和NV存储单元130。服务器系统402所示出的实施方案包括CPU405、存储器单元410和通信链路417。在一个实施方案中,存储器单元410包括策略代理435和容错策略440。
在一个实施方案中,客户端系统401与处理系统100类似,但是具有通过网络403与服务器系统402通信的附加功能。通信链路415将客户端系统401的CPU105耦合到网络403。类似地,通信链路417将服务器系统402的CPU405耦合到网络403。通信链路415和417可以是能够连接到网络并且通过网络进行通信的任何设备。在一个实施方案中,通信链路415和417是网络接口卡。网络403的实施方案包括局域网、广域网、因特网等。
现在参考图4和图5,根据本发明的实施方案,客户端系统401的一个实施方案如过程500所示的那样运行,以通过网络403对系统错误实现基于策略的响应。除了以下所讨论的内容之外,客户端系统401的实施方案类似于处理系统100的实施方案那样运行。
在处理框505,客户端系统401开机。此后,客户端系统401经过早期系统初始化(处理框510),并且将故障响应代理145加载到存储器单元110的保护区域111中(处理框515)。在处理框520中,客户端系统401获取服务器系统402的服务器地址。在一个实施方案中,客户端系统401广播DHCP呼叫,以获得服务器系统402在网络403上的服务器地址,以在将来与服务器系统402通信。应当理解的是,客户端系统401可以使用其他网络协议与服务器系统402之间实现网络403上的通信,此外,DHCP呼叫的时间选择可以放在过程500中所图示的处理框520之前或之后。在处理框525中,客户端系统401发动OS150的引导目标。一旦OS150控制了CPU105,客户端系统401就进入OS运行时运行模式(处理框530)。
在处理框535中,CPU105接收到中断信号,该信号指示应当激活受保护运行模式。在一个实施方案中,CPU105接收到指示受保护运行模式应当被激活的中断信号107。在一个实施方案中,CPU105接收到从服务器系统402发出的中断信号407,该信号指示出客户端系统401应激活受保护运行模式。在一个实施方案中,中断信号407是通过网络403传输的数据包(data packet),它触发通信链路415的唤醒LAN功能。在这个唤醒LAN的实施方案中,通信链路415指示CPU105响应于经由网络403接收到中断信号407而激活受保护运行模式。
一旦客户端系统401正运行在受保护运行模式中,故障响应代理135就查询客户端系统401,以确定是否发生了系统错误(处理框545)。对客户端系统401的查询类似于前面结合处理系统100所描述的过程,就是可能发生的系统错误的类型。如果故障响应代理135确定已发生了系统错误(判决框550),则故障响应代理135生成错误消息408,该消息包含了描述具体系统错误的数据,并将错误消息408经由通信链路415和网络403发送到服务器系统402。
在发送了错误消息408后,故障响应代理135等待一段预定的时间,以从服务器系统402接收策略命令409。如果客户端系统401接收到策略命令409(判决框560),那么故障响应代理135解析策略命令570,并且执行包含在策略命令570内的指令。在一个实施方案中,策略命令570包括一个简单的复位指令。在一个实施方案中,策略命令570包括以下指令,该指令指示正从服务器系统402通过网络403发送新的软件映像,客户端系统401将要接收这一新的软件映像,并且客户端系统401应将这一新的软件映像安装在客户端系统401中的适当位置。在一个实施方案中,这一新的软件映像包含未被破坏的OS 150的文件,以替换已被破坏的OS150的文件。在一个实施方案中,策略命令570包括以下指令,该指令指示正从服务器系统402通过网络403发送新的BIOS映像,客户端系统401将要接收这一新的BIOS映像,并且客户端系统401应将这一新的BIOS映像安装在客户端系统401中适当的位置。在一个实施方案中,策略命令570包括供故障响应代理135基于其内置的容错策略140来响应系统错误的指令。应当理解,策略命令409可以包括以上指令中的一些或全部,还可以包括其他指令。
在一个实施方案中,如果在等待了预定的时间段后,故障响应代理135没有从服务器系统402接收到策略命令409,则故障响应代理135基于具体的系统错误以及存储在客户端系统401中的容错策略140,对检测到的系统错误作出响应。换言之,如果故障响应代理135没有从服务器系统402接收到有关如何对具体的系统错误进行响应的指令,那么故障响应代理135将自行采取措施,以基于它自己的内置容错策略140来补救系统错误。
返回判决框550,如果故障响应代理135没有检测到系统错误,则客户端系统401将禁用受保护运行模式(处理框575)并返回OS运行时运行模式(处理框530)。在客户端系统401已被开机后的期间中,这一激活受保护运行模式以及禁用受保护运行模式的循环过程可以无限继续下去。此外,运行保护模式的激活频率可以基于某个固定的持续时间(例如,每10秒,每1秒等),或者基于如上所述的硬件中断来激活,基于软件中断来激活,或者基于其中一些或全部的组合来激活。
现在参考图4和图6,根据本发明的实施方案,服务器系统402的一个实施方案如过程600所示的那样运行,以通过网络403对系统错误实现基于策略的响应。
在处理框605中,服务器系统402的系统管理员或用户使得策略代理435能够运行在服务器系统402上。在一个实施方案中,策略代理435是存储在存储器单元410中并且由CPU405来执行的软件应用程序。在一个实施方案中,存储器单元410是系统RAM。
在处理框610中,策略代理435通过网络403发送中断信号407,以指示客户端系统401激活受保护运行模式。策略代理435可以以多种方式生成并发送中断信号407,这些方式包括周期性地,随机地,响应于网络403上源自客户端系统401的异常网络流量或者在网络403上缺少源自客户端系统401的网络流量,在一天或一周内的预定时间(例如,在网络403的非使用高峰时间),或者在服务器系统402的用户的指引下进行。应当理解,在过程600的其他实施方案中,可以跳过处理框610,因为客户端系统401可以在没有接收到中断信号407的情况下,有能力自己激活受保护运行模式。
在判决框615中,策略代理435可能从客户端系统401接收到错误消息408,也可能没有接收到。如果客户端系统401在激活受保护运行模式后检测到系统错误,并通过网络403发送错误消息408,那么策略代理435就解析错误消息408,以基于容错策略440生成策略命令409(处理框625)。在一个实施方案中,容错策略440包含与多种类型的系统错误相对应的一列策略命令(例如,补救指令)。因此,当策略代理435接收并解析错误消息408时,策略代理435参考容错策略440生成策略命令409,该策略命令409包含用于客户端系统401的补救指令。在一个实施方案中,当策略代理435生成策略命令409时,它要考虑客户端系统401所报告的具体系统错误以及其他因素。举例来说,策略代理435在决定要发送何种类型的补救指令时,可能会考虑网络403上的网络流量。在网络流量高的时间段内,策略代理435可以拒绝开始新的软件或BIOS映像的传输,相反发送短的策略命令409,例如复位指令。策略代理435可以考虑的另一个因素就是包含由客户端系统401发送的错误消息408的记录的日志文件。如果策略代理435确定客户端系统401已经发送异常多数量的错误消息408(例如一星期五个),那么容错策略440可以向策略代理435指示新的软件映像和/或BIOS映像应当被上载到客户端系统401。
在一个实施方案中,响应于从客户端系统401接收到错误消息408,策略代理435可以向客户端系统401上的故障响应代理140发送一条或多条查询指令,以收集有关故障响应代理135所检测到的系统错误的更多信息。在这个实施方案中,错误消息408可以只是代表一种指示,即故障响应代理135已检测到客户端系统401中的系统错误,但是不包含有关系统错误类型的任何信息。在用上述查询指令收集了更多的诊断信息后,策略代理435可以连同容错策略440一起使用这一诊断信息,从而生成策略命令409。
在判决框630中,策略代理435确定是否发送策略命令409。如果策略代理435确定发送策略命令409,则在处理框640中完成发送,然后策略代理435在处理框620中等待一段预定的时间,之后在处理框610中通过网络403将另一个中断信号407广播到客户端系统401。如上所述,如果特定的策略命令409将要上载新的软件或BIOS映像到客户端系统401,并且网络流量当前又很高,那么策略代理435可以拒绝在此时发送所述特定的策略命令409。相反,策略代理435可以暗示所述特定的策略命令409将在稍后网络流量低一些的时候进行发送。在这种情况下,客户端系统401在分配好的时期内将不会接收到策略命令409,并且客户端系统401上的故障响应代理135将根据它自己内置的容错策略140行事。如果策略代理435在判决框630中确定不发送策略命令409,那么策略代理435在处理框620中等待一段预定的时间,之后发送另一个中断信号407。
返回判决框615,如果在发送了中断信号407之后,策略代理435没有在等待适当长的一段时间后接收到错误消息408,那么策略代理435假定客户端系统401没有系统错误要报告。在这种情况下,策略代理435等待一段预定的时间(处理框620),然后发送另一个中断信号407。只要策略代理435在服务器系统402上被激活,这个等待,然后发送中断信号407的循环过程就可以无限继续下去。按照这种方式,就可以补救在耦合到网络403的客户端系统401发生的系统错误或故障,而无需人工干预,并且使客户端系统401的停机时间最短。
应当理解,虽然示出只有一个客户端系统401被耦合到网络403,但是任意数量的客户端系统401都可以被耦合到网络403。此外,服务器系统402可以被配置为按照上述方式服务并维护很多客户端系统401。
图7图示了根据本发明的教导,实现处理系统100、客户端系统401或服务器系统402的计算机系统700的示例性实施方案。计算机系统700包括机箱705、监视器710、鼠标715(或其他点选设备)和键盘720。所图示的实施方案的机箱705中还包括软盘驱动器725、硬盘730、电源(未示出)和主板735,主板735上含有适当的集成电路,包括系统RAM740、非易失存储器745和一个或多个CPU750。
在一个实施方案中,网络接口卡(“NIC”)(未示出)被耦合到主板735的扩展槽(未示出)。NIC用于将计算机系统700连接到计算机网络755,例如局域网、广域网或因特网。在一个实施方案中,网络755还被耦合到远程计算机760,使得计算机系统700和远程计算机760可以相互通信。
硬盘730可以包括单个单元或多个单元,并且可以可选地位于计算机系统700之外。监视器710用于显示由计算机系统700运行的软件程序和程序模块所生成的图形和文本。鼠标715(或其他点选设备)可以被连接到串行端口、USB端口或者其他可通信地耦合到CPU750的类似端口。键盘720以类似于鼠标715的方式被可通信地耦合到主板735,以使用户可输入文本和命令。
在一个实施方案中,非易失存储器745是用于存储故障响应代理145的NV存储单元130。在一个实施方案中,RAM740是具有保护区域111和非保护区域113的存储器单元110。
以上对本发明所图示实施方案的描述,包括说明书摘要中的描述在内,都不想是穷尽性的或者将本发明限制到所公开的精确形式。虽然这里出于说明性的目的描述了本发明的特定实施方案和实施例,但是本领域的技术人员将会认识到,在本发明的范围内有可能作出多种等同的修改。
可以根据以上详细的描述对本发明作出这些修改。在所附权利要求书中所使用的术语不应当被解释成将本发明限制到在说明书和权利要求书中所公开的具体实施方案中。相反,本发明的范围完全由所附的权利要求书来限定,该权利要求书将根据已有的对权利要求的解释原则来理解。
权利要求
1.一种方法,包括在处理系统中激活受保护运行模式;在所述受保护运行模式期间查询所述处理系统,以确定是否发生了系统错误;如果确定已发生了系统错误,则基于容错策略来响应所述系统错误;以及如果确定没有发生系统错误,则禁用受保护运行模式。
2.如权利要求1所述的方法,其中查询所述处理系统以确定是否发生了系统错误的操作是由存储在所述处理系统的存储器的保护区域中的故障响应代理来完成的。
3.如权利要求2所述的方法,其中所述处理系统的所述运行保护模式包括系统管理模式,并且其中所述存储器的保护区域包括系统管理随机访问存储器。
4.如权利要求1所述的方法,其中所述受保护运行模式响应于硬件中断而被激活。
5.如权利要求1所述的方法,其中所述受保护运行模式被周期性地激活。
6.如权利要求1所述的方法,其中当所述处理系统从可通信地耦合到所述处理系统的服务器系统接收到中断信号时,激活所述受保护运行模式。
7.如权利要求1所述的方法,其中查询所述处理系统的操作包括查询包含所述处理系统的数据的存储器位置,以确定所述数据在所述处理系统的操作系统运行时运行模式期间,是否以预定的方式随时间演变。
8.如权利要求1所述的方法,还包括如果确定已发生了系统错误,则向可通信地耦合到所述处理系统的服务器系统发送错误消息;以及从所述服务器系统向所述处理系统发送策略命令,所述策略命令是从所述容错策略和所述错误消息而导出的。
9.如权利要求8所述的方法,其中所述策略命令包括以下指令中的至少一个,即加载软件映像的指令、加载基本输入输出系统映像的指令、以及复位指令。
10.如权利要求1所述的方法,还包括基于所述容错策略和所确定的系统错误来执行以下操作中的至少一种,从而响应所确定的系统错误,其中所述操作包括恢复所保存的软件映像,恢复所保存的基本输入输出映像,以及复位所述处理系统。
11.一种其上包含指令的机器可读介质,所述指令将由机器执行来完成以下操作在处理系统中激活受保护运行模式;在所述受保护运行模式期间查询所述处理系统,以确定是否发生了系统错误;以及如果确定已发生了系统错误,则基于容错策略来响应所述系统错误。
12.如权利要求11所述的机器可读介质,还具有完成以下操作的指令如果确定没有发生系统错误,则禁用所述受保护运行模式,并且激活操作系统运行时运行模式。
13.如权利要求12所述的机器可读介质,其中所述受保护运行模式被周期性地激活。
14.如权利要求11所述的机器可读介质,其中所述受保护运行模式响应于中断信号而被激活。
15.如权利要求11所述的机器可读介质,其中查询所述处理系统并且响应所述系统错误的操作是由从所述处理系统的存储器的保护区域执行的故障响应代理来完成的,以保护所述故障响应代理在所述处理系统的操作系统运行时运行模式期间不受到破坏。
16.如权利要求15所述的机器可读介质,其中所述处理系统的所述运行保护模式包括系统管理模式,并且其中所述存储器的保护区域包括系统管理随机访问存储器。
17.如权利要求11所述的机器可读介质,其中由所述故障响应代理查询所述处理系统的操作包括查询包含所述处理系统的数据的存储器位置,以确定所述数据在所述处理系统的操作系统运行时期间,是否以预定的方式随时间演变。
18.如权利要求11所述的机器可读介质,还具有完成以下操作的指令如果确定已发生了系统错误,则向可通信地耦合到所述处理系统的服务器系统发送错误消息;以及从所述服务器系统接收策略命令,所述策略命令至少部分地是从所述容错策略和所述错误消息中导出的。
19.如权利要求18所述的机器可读介质,其中所述策略命令包括以下指令中的至少一个,即加载软件映像的指令、加载基本输入输出系统映像的指令、以及复位指令。
20.一种客户端系统,包括中央处理单元(“CPU”),该单元在受保护运行模式和操作系统(“OS”)运行时运行模式中执行指令;以及可通信地耦合到所述CPU并且存储故障响应代理的非易失存储单元,所述故障响应代理由所述CPU在所述受保护运行模式期间执行,所述故障响应代理用于检测在所述OS运行时运行模式期间发生的系统错误,并且基于容错策略来响应该系统错误。
21.如权利要求20所述的客户端系统,还包括可通信的耦合到所述CPU的存储器单元,所述存储器单元具有保护区域,所述故障响应代理加载到所述保护区域中,以防止所述故障响应代理在所述OS运行时运行模式期间受到破坏。
22.如权利要求20所述的客户端系统,还包括可通信地将所述CPU耦合到服务器系统的通信链路,当所述故障响应代理检测到系统错误时,所述故障响应代理经由所述通信链路向所述服务器系统发送错误消息。
23.如权利要求22所述的客户端系统,其中所述错误消息是由所述故障响应代理响应于以下操作而生成的,所述操作为查询包含数据的所述客户端系统的存储器位置,以确定所述数据在所述OS运行时运行模式期间,是否以预定的方式随时间演变。
24.如权利要求22所述的客户端系统,其中所述容错策略被存储在所述服务器系统上,并且其中所述故障响应代理从所述服务器系统接收策略命令,所述策略命令至少部分地是从所述容错策略和所述错误消息中导出的。
25.如权利要求24所述的客户端系统,其中所述策略命令包括以下指令中的至少一个,即加载软件映像的指令、加载基本输入输出系统映像的指令、以及复位指令。
26.如权利要求22所述的客户端系统,其中如果所述故障响应代理没有从所述服务器系统接收到策略命令,那么所述故障响应代理至少部分地基于所述系统错误和所述容错策略来执行以下操作中的至少一种,其中包括恢复所保存的软件映像,恢复所保存的基本输入输出映像,以及复位所述客户端系统。
27.如权利要求20所述的客户端系统,其中所述受保护运行模式被周期性地激活。
28.一种服务器系统,包括耦合到网络并且从可通信地耦合到所述网络的客户端系统接收错误消息的通信链路;存储容错策略的存储器单元;以及可通信地耦合到所述通信链路和所述存储器单元的中央处理单元(“CPU”),所述CPU执行策略代理,所述策略代理生成至少部分地从所接收的错误消息和所述容错策略中导出的策略命令,所述策略命令响应于所接收的错误消息,通过所述网络被发送到所述客户端系统。
29.如权利要求28所述的服务器系统,其中所述策略命令包括以下指令中的至少一种,即加载软件映像的指令、加载基本输入输出系统映像的指令、以及复位指令。
30.如权利要求28所述的服务器系统,其中所述策略代理在所述网络上发送将由所述客户端系统接收的中断信号,所述中断信号在所述客户端系统中激活受保护运行模式,并且如果所述客户端系统有未处理的系统错误,则使得所述客户端系统通过所述网络发送所述错误信号。
全文摘要
本发明公开了一种用于检测并响应系统错误的方法和装置。为了检测系统错误,在处理系统中激活受保护运行模式。当受保护运行模式被激活时,对处理系统进行查询,以确定是否发生了系统错误。如果确定已经发生了系统错误,则基于容错策略来响应该系统错误。
文档编号G06F11/00GK1754153SQ200480005327
公开日2006年3月29日 申请日期2004年2月4日 优先权日2003年3月12日
发明者迈克尔·罗斯曼, 文森特·齐默 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1