发明内容
本发明的目的是,针对现有多处理器***中利用以太网口获取***状态的缺陷,提供一种***状态获取的方法及多处理器***,在***启动时可以尽早获知***的激活状态,在***处于死机、关机等状态时,向用户提示***异常状态信息,为用户提供一个友好的控制界面,保证每次连接都是可控的操作界面。
为了实现上述目的,本发明提供了一种多处理器***中***状态获取的方法,包括:第一***经由第二***的基本输入输出接口向第二***发送探测信息;第一***判断在预定的时间内是否收到第二***的返回信息,当未收到返回信息时,提示第二***的状态异常;所述第一***为主***,所述第二***为下属***。
上述技术方案中,所述第一***经由第二***的基本输入输出接口向第二***发送探测信息的过程包括:第一***通过串口向第二***发送探测字符信息或第一***通过并口向第二***发送探测报文信息。也可以在向第二***发送探测信息之前判断并口/串口号是否为第二***对应的索引号,当并口/串口号为对应的索引号时,才向所述第二***发送探测字符或者报文信息。
在本发明第一***经由第二***的基本输入输出接口向第二***发送探测信息之前还可以包括:第一***检测与之连接的***是否满足第二***的类型特征;当满足第二***的类型特征时,执行向第二***发送探测信息的操作。
本发明还提供了一种多处理器***中***状态获取的装置,包括:
信息获取单元,与判断单元连接,获取第一***向第二***发送的探测信息和第二***的返回信息;
判断单元,与信息获取单元和执行单元连接,判断是否向第二***转发探测信息、第二***是否有信息返回,并将判断结果发送执行单元;
执行单元,与判断单元连接,向第二***发送探测信息,当未收到第二***返回信息时,提示第二***的状态异常;
所述第一***为主***,所述第二***为下属***。
本发明提供了一种利用基本输入输出接口来获取***状态的方法及装置。第一***在需要获取第二***的状态信息或者进行切换控制等操作时,通过基本输入输出接口向第二***发送探测信息,将第二***与第一***相对连接的串口或并口等基本输入输出接口设置为控制口。如果第二***处于激活状态会通过控制口向第一***对应的基本输入输出接口返回信息,第一***由此判定第二***处于激活状态,可以对第二***进行控制操作,否则输出提示信息,表示第二***处于异常状态,。
本发明第一***通过基本输入输出接口探测与之连接的第二***的状态,可以及时准确的反映第二***是否处于激活状态,避免用户在第二***处于死机或者关机状态下,仍对其进行控制操作,从而为用户提供一个更为友好的控制界面,保证每次连接的操作界面都是可控的。并且,利用本发明,在第二***处于开机启动的输入输出(Basic input&outputsystem,简称BIOS)初始化阶段,第一***即可获知第二***处于激活状态,不存在状态反应滞后的现象;为后续需要第二***状态的某种应用提供信息,便于后续操作。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
具体实施方式
图2为本发明***状态获取的方法实施例一流程图。如图2所示,本实施例包括:
步骤1:第一***经由第二***的基本输入输出接口向第二***发送探测信息;
步骤2:第一***判断是否在预定的时间内收到第二***的返回信息,当未收到返回信息时,提示第二***异常状态信息,否则收到返回信息,获知第二***处于正常状态。
本实施例提供了一种利用基本输入输出接口获取***状态的方法,第一***通过基本输入输出接口与第二***连接,第二***将与第一***对应连接的串口或并口等基本输入输出接口设置为控制口。第一***经由第二***的基本输入输出接口向第二***发送探测信息来获取第二***的状态,如果第二***处于激活状态,第二***的基本输入输出接口向第一***返回信息,第一***可以对第二***进行切换等控制操作,否则第一***提示第二***异常状态信息,避免对第二***进行误操作,保持可控、友好的操作界面。现有多处理器***中利用板间协议来获取相互连接的下属***的状态,需要等到下属***初始化之后才能获知下属***的状态,而本实施例利用基本输入输出接口获取***状态的方式,可以在下属***处于BIOS初始化阶段,即可获知***处于启动状态,不存在状态反应滞后的现象;并为后续需要***状态的某种应用提供信息,便于后续操作。
图3为本发明***状态获取的方法实施例二流程图。本实施例中在图2所示步骤1之前还包括:
获取第二***对应的输入输出接口的索引号;
判断基本输入输出接口号是否与所述索引号对应,是则向第二***发送探测信息;否则进行相应处理。
举例说明:第一***每个串口号分别对应一个第二***,将不同的串口号和不同的第二***相对应,当第一***需要获取某个第二***的状态信息时,获取该第二***对应的串口索引号,从而向对应串口号连接的第二***发送探测信息。如:第一***通过串口1、串口2、串口3、串口4分别与四个第二***2、1、3、4连接,即第一***的串口1连接第二***2,串口2连接第二***1...。如第一***要获取第二***1的状态,检索出对应的索引号串口2,从而只向串口2连接的第二***发送探测信息。如果基本输入输出接口号与所述索引号不对应,则输出提示信息。
同理,如果第一***要使用并口探测第二***的状态,那么第二***首先必须使用并口作为基本输入输出口,其次,第一***中与第二***背靠背连接的接口,物理属性上也必须是一个并口,第一***通过并口与第二***连接获取第二***状态时,需要检测并口号是否与第二***的索引号对应,从而向对应的并口发送探测信息,具体过程与串口工作过程类似,在此不再详述。
图4为本发明***状态获取的方法实施例三流程图。如图4所示,本实施例与图3实施例相比,还包括:
获取与第一***相连的***的类型;判断该***是否满足第二***类型特征,是则向该***发送探测信息;否则不发送探测信息或提示信息。
本实施例进一步检测与第一***相互连接的***是否满足第二***的类别特征,当不满足第二***类型特征时,第一***可以直接提示信息,节省了后续步骤。
下面对本实施例应用于多处理器***进行举例说明:主***通过设置一硬件ID标识主***类型,下属***设置另一硬件ID标识下属***类型,相同的***类型设置同一硬件ID。当主***需要切换到某个下属***,探测该***是否处于激活状态时,通过判断该***是否满足下属***的类型特征,从而向满足下属***类型特征的***发送探测信息。
多处理器***中,主***的PCI插槽上可***多个插卡,每个插卡中包括2套以太网口、串口、并口等接口,这2套接口是背靠背连接的。一套接口与主***连接,另一套则与下属***连接。每个插卡中设置有硬件ID值,主***通过检测该ID值,判断该插卡另一侧连接的是否为主***的下属***,如果是,则向该下属***发送命令或探测信息。如果插槽上没有连接插卡,或者插槽上连接的插卡不满足下属***的类型特征,则跳过后续步骤,可以直接提示切换失败等信息,节省了后续时间。
图5为本发明***状态获取的方法应用于串口实施例流程图。本实施例针对串口作为控制口进行命令行回显的特性,对向第二***发送探测信息和接收返回信息的过程进一步细化。如图5所示,本实施例具体包括:
步骤10:第一***输入命令行信息,需要获取某一第二***状态或对某一第二***进行切换控制等操作;
步骤11:第一***判断与串口连接的***是否满足第二***的类型特征,如满足执行步骤12,否则执行步骤15;
步骤12:第一***获取与该第二***对应的串口索引号;
步骤13:第一***判断串口号是否与所述索引号对应,是则执行步骤14,否则执行步骤15;
步骤14:第一***使能该串口收发,通过该串口向对应的第二***发送回车字符,执行步骤20;
步骤15:提示第二***异常状态信息,例如:切换到第二***失败、第二***处于死机或关机等状态信息;
步骤20:第一***轮循读取该串口的先进先出(First in first out,简称FIFO)接收缓冲区;
步骤21:判断是否接收到返回字符,是则执行步骤23;否则执行步骤22;
步骤22:延时1毫秒后判断是否超过设定的时间,如:1秒,如果超过1秒仍未收到任何响应字符,则关闭该串口收发,执行步骤15;否则执行步骤20继续读取该串口接收FIFO缓冲区;
第二***的响应字符有时不能立即返回,所以每隔1毫秒读取一次该串口接收FIFO缓冲区,如果到达了1秒后仍未收到任何字符,则判定第二***异常;
步骤23:提示切换成功信息,表示第二***处于激活状态,可以对第二***进行控制。
第二***处于激活状态时,它的控制口(本实施例将第二***的串口作为控制口)一旦收到了任何一个字符,就能将这个字符原样的发回,返回到与第一***相连接的串口,第一***就可以通过该串口收到此字符。第一***的串口驱动程序如果在1秒之内收到了任何字符,判断第二***处于激活状态,会上报使能成功,进行切换到第二***的操作,提示用户切换成功。反之,判定第二***异常,提示切换失败或第二***异常等信息。当然,第一***亦可以通过串口向第二***控制口发送回车字符以外的其他字符,例如:“t”,当第二***激活时同样可以向第一***返回相同的字符,即可以达到判断第二***是否处于激活状态的目的,但该种情况由于要返回具体字符所以界面不太友好,而发送回车字符对用户的影响最少,所以通常第一***通过串口向第二***发送回车字符。
图6为本发明***状态获取的方法应用于并口实施例流程图。图6与图5类似,但将第二***的并口作为控制口,第一***通过并口向相对连接第二***发送探测报文,如果收到第二***返回的报文信息,则第二***处于激活状态,可以对第二***进行切换等控制操作,反之,提示第二***异常信息,具体过程与图5类似,在此不再一一详述。
图5与图6实施例仅通过串口和并口获取***的状态进行举例,同样原理,本发明所述方法还可以应用于其它基本输入输出接口来获取相互连接的***的状态,在此不再举例。
本发明所述方法应用于多处理器***时,下属***在正常运行期间,将与主***相连接的某一串口或并口等输入输出接口作为控制口,主***切换到下属***期间,通过对应的输入输出接口检测下属***的状态。下属***处于死机、关机等状态时,提示下属***异常信息,无法执行切换操作、切换失败等信息;下属***处于激活状态时,可以切换到下属***的控制口进行操作,保证每次的操作都是可控的操作界面。如:下属***将串口作为控制口,当主***通过串口切换到与该串口连接的下属***的控制口时,可对下属***进行控制操作。在切换到该下属***后,主***的串口配合以太网口和下属***的控制口及以太网口进行数据交换及两个***之间其它状态的通知,从而可以区分下属***死机、关机和链路异常状态。
图7为本发明***状态获取的装置实施例一示意图。如图7所示,本实施例包括:
信息获取单元11,与判断单元12连接,获取第一***向第二***发送的探测信息和第二***的返回信息;
判断单元12,与信息获取单元11和执行单元13连接,判断预设的时间内是否收到第二***的返回信息,并将判断结果发送执行单元;
执行单元13,与判断单元12连接,向第二***的基本输入输出接口发送探测信息,当未收到第二***返回信息时,提示第二***异常状态信息。
本实施例中,执行单元通过向第二***的基本输入输出接口发送探测信息,获取第二***的状态信息,以弥补现有多处理器***通过以太网接口获知***的状态时的缺陷。在第二***处于异常状态时,显示提示信息,用户界面友好,避免了在第二***异常时仍对第二***进行控制所带来的问题。
图8为本发明***状态获取的装置实施例二示意图。如图8所示,本实施例判断单元进一步包括:
发送判断子单元121,判断发送探测信息的基本输入输出接口是否满足要求;
信息返回判断子单元122,判断是否在预设的时间收到第二***返回信息。
发送判断子单元可以在向第二***发送探测信息之前判断接口是否满足要求,如:接口索引号是否对应、接口连接的第二***类型是否满足等,当条件满足时才向对应的接口发送探测信息,否则直接提示信息,节约后续程序,具体可参见方法实施例中对于满足要求的说明。
多处理器***中可以将第一***和第二***分别作为主***和下属***,通过本发明***状态获取的装置来获得下属***的状态信息。第一***可通过本发明所述的装置和第二***相连,也可以将本发明所述装置固化到其内部,作为第一***的一部分,来获取第二***的状态。
综上所述,本发明第一***通过基本输入输出接口探测与之连接的第二***的状态,可以及时准确的反映第二***是否处于激活状态,避免用户在第二***处于死机或者关机状态下,仍对其进行控制操作,从而为用户提供一个更为友好、可控的操作界面。并且,利用本发明,在第二***处于开机启动的BIOS初始化阶段,即可获知第二***处于激活状态,不存在状态反应滞后的现象;为后续需要第二***状态的某种应用提供信息,便于后续操作。
最后应说明的是:以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的精神和范围。