CN110018925B - ***安全冗余方法及计算机可读存储介质 - Google Patents
***安全冗余方法及计算机可读存储介质 Download PDFInfo
- Publication number
- CN110018925B CN110018925B CN201810022100.2A CN201810022100A CN110018925B CN 110018925 B CN110018925 B CN 110018925B CN 201810022100 A CN201810022100 A CN 201810022100A CN 110018925 B CN110018925 B CN 110018925B
- Authority
- CN
- China
- Prior art keywords
- operating system
- heartbeat
- backup
- state
- shared memory
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1417—Boot up procedures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Hardware Redundancy (AREA)
Abstract
本发明公开了一种***安全冗余方法及计算机可读存储介质,方法包括:启动后,备份操作***将共享内存中原操作***的***状态更新为启动状态;原操作***获取配置信息;若启用备份***功能,则将共享内存中原操作***的***状态更新为运行状态;根据心跳更新模式,将应用列表中应用的心跳信息更新到共享内存中;若备份操作***检监测到共享内存中原操作***的***状态为运行状态,则定时将***的控制权从原操作***切换到备份操作***;若备份操作***根据共享内存中的心跳信息,判断原操作***正常,则切换回原操作***;否则启用备份操作***中的备份应用。本发明可降低硬件成本和***设计复杂度。
Description
技术领域
本发明涉及冗余技术领域,尤其涉及一种***安全冗余方法及计算机可读存储介质。
背景技术
如果基于现有的技术方案来做车载***的冗余需要设计一套备份的硬件,同时要协调两套***之间的通信,或者需要额外的监控措施来协调两套***的协同工作,这无论从成本,设计维护难度方面都不是理想的方案。
发明内容
本发明所要解决的技术问题是:提供一种***安全冗余方法及计算机可读存储介质,可降低硬件成本和***设计复杂度。
为了解决上述技术问题,本发明采用的技术方案为:一种基于trustzone的***安全冗余方法,包括:
启动后,备份操作***将共享内存中原操作***的***状态更新为启动状态;
原操作***获取配置信息,所述配置信息包括是否启用备用***功能、心跳更新模式和应用列表;
若启用备份***功能,则将共享内存中原操作***的***状态更新为运行状态;
根据所述心跳更新模式,将所述应用列表中应用的心跳信息更新到共享内存中;
若备份操作***检监测到共享内存中原操作***的***状态为运行状态,则定时将***的控制权从原操作***切换到备份操作***;
备份操作***根据共享内存中的心跳信息,判断原操作***是否正常;
若正常,则切换回原操作***;
若异常,则启用备份操作***中的备份应用。
本发明还涉及一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如上所述的步骤。
本发明的有益效果在于:利用trustzone技术为原***提供一个近乎相似的的备份***,备份***在后台运行,原***在前台运行,备份***监测原***的运行情况,当原***出现异常或者其他原因导致原***无法正常工作时,备份***接管原***的工作继续运行以确保整个***功能正常运行。本发明不仅可降低硬件成本和***设计复杂度,同时原***和备份***之间的通信和监控也更简洁高效。
附图说明
图1为本发明一种基于trustzone的***安全冗余方法的流程图;
图2为本发明实施例一的方法流程图;
图3为本发明实施例二的双***结构示意图;
图4为本发明实施例二的通知代理服务的工作流程图;
图5为本发明实施例二的立即模式时的心跳更新流程图;
图6为本发明实施例二的周期更新模式时的心跳更新流程图;
图7为本发明实施例二的监控服务的工作流程图。
具体实施方式
为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图详予说明。
本发明最关键的构思在于:原操作***将应用的心跳信息更新到共享内存中,备份操作***定时将***的控制权切换到自身,并根据心跳信息判断原操作***的运行状况,若原操作***正常则切换回原操作***,否则启用备份应用。
请参阅图1,一种基于trustzone的***安全冗余方法,包括:
启动后,备份操作***将共享内存中原操作***的***状态更新为启动状态;
原操作***获取配置信息,所述配置信息包括是否启用备用***功能、心跳更新模式和应用列表;
若启用备份***功能,则将共享内存中原操作***的***状态更新为运行状态;
根据所述心跳更新模式,将所述应用列表中应用的心跳信息更新到共享内存中;
若备份操作***检监测到共享内存中原操作***的***状态为运行状态,则定时将***的控制权从原操作***切换到备份操作***;
备份操作***根据共享内存中的心跳信息,判断原操作***是否正常;
若正常,则切换回原操作***;
若异常,则启用备份操作***中的备份应用。
从上述描述可知,本发明的有益效果在于:可降低硬件成本和***设计复杂度,同时原***和备份***之间的通信和监控也更简洁高效。
进一步地,所述“若启用备份***功能,则将共享内存中原操作***的***状态更新为运行状态”具体为:
根据所述配置信息,判断是否启动备份***功能;
若不启用备份***功能,则等待退出消息;
若启用备份***功能,则将共享内存中原操作***的***状态更新为运行状态;
当接收到退出消息时,将共享内存中原操作***的***状态更新为关闭状态;
当未接收到退出消息时,则执行所述根据所述心跳更新模式,将所述应用列表中应用的心跳信息更新到共享内存中的步骤。
由上述描述可知,原操作***的状态变化包括启动、运行和关闭,原操作***如果启用备份操作***功能,则需要更改原操作***的状态为运行状态,备份操作***只有监测到这个状态变化,才会定时检查原操作***是否正常。
进一步地,所述心跳更新模式包括立即更新模式和周期更新模式;
当所述心跳更新模式为立即更新模式时,所述“根据所述心跳更新模式,将所述应用列表中应用的心跳信息更新到共享内存中”具体为:
接收应用的心跳信息,所述心跳信息包括应用名称和时间戳;
将所述时间戳写入共享内存中的最后心跳更新时间区域。
进一步地,所述配置信息还包括心跳更新周期和心跳异常上限;
当所述心跳更新模式为周期更新模式时,所述“根据所述心跳更新模式,将所述应用列表中应用的心跳信息更新到共享内存中”具体为:
根据所述心跳更新周期,判断所述应用列表是否为空;
若为空,则将当前***时间写入共享内存中的最后心跳更新时间区域;
若不为空,则获取当前心跳更新周期内接收到的应用的心跳信息;
根据所述心跳信息,判断未收到心跳信息的应用数量是否超过所述心跳异常上限;
若未超过,则将所述心跳信息中最新的时间戳写入共享内存中的最后心跳更新时间区域;
若超过,则关闭所述应用列表中的应用,并发出退出消息。
进一步地,所述“将所述心跳信息中最新的时间戳写入共享内存中的最后心跳更新时间区域”之后,进一步包括:
清空当前心跳更新周期内接收到的应用的心跳信息。
由上述描述可知,无论是立即更新模式还是周期更新模式,最后都只将最新的时间戳写入共享内存中;当为周期更新模式时,当未收到心跳信息的应用数量达到心跳异常上限,则认为原操作***出现异常,需要进行关闭。
进一步地,所述“备份操作***根据共享内存中的心跳信息,判断原操作***是否正常”具体为:
备份操作***判断共享内存中的最后心跳更新时间区域中的时间戳与当前***时间的差值是否在预设的范围内;
若是,则判定原操作***正常;
若否,则判定原操作***异常。
由上述描述可知,若原操作***的最后心跳更新时间与当前***时间差距太大,则认为原操作***已经出现异常无法正常更新心跳。
进一步地,所述“若备份操作***检监测到共享内存中原操作***的***状态为运行状态,则定时将***的控制权从原操作***切换到备份操作***”具体为:
备份操作***实时监测共享内存中原操作***的***状态;
若监测到原操作***的***状态为关闭状态,则关闭备份操作***;
若监测到原操作***的***状态为运行状态,则通过定时器中断将***的控制权从原操作***切换到备份操作***。
由上述描述可知,启动时是先启动备份操作***再启动原操作***,而关机时则先关闭原操作***再关闭备份操作***;只有当原操作***处于运行状态时,备份操作***才定时进行切换检测。
进一步地,所述“将***的控制权从原操作***切换到备份操作***”具体为:
保存原操作***的运行状态并恢复上一次备份操作***的运行状态后,运行备份操作***。
进一步地,所述“切换回原操作***”具体为:
保存备份操作***的运行状态并恢复上一次原操作***的运行状态后,运行原操作***。
本发明还提出了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如上所述的步骤。
实施例一
请参照图2,本发明的实施例一为:一种基于trustzone的***安全冗余方法,可应用于车载***。本方法需要基于ARM trustzone硬件架构,同时包含两个操作***,分别为原操作***和备份操作***;原操作***运行在普通世界,备份操作***运行在安全世界。其中,原操作***和备份操作***都可访问共享内存,本实施例中,共享内存包括两个区域,一个区域存储原操作***的***状态,另一个区域存储最后心跳更新时间。
***上电开机启动时,先加载第一级加载程序(第一级启动引导程序),第一级加载程序完成相关的初始化后加载备份操作***,备份操作***运行起来之后,加载第二级加载程序(第二级启动引导程序),第二级加载程序完成相关的初始化后加载原操作***,至此整个***的启动流程结束,***进入运行状态,原操作***运行在前台,备份操作***运行在后台。
如图2所示,包括如下步骤:
S1:启动后,备份操作***将共享内存中原操作***的***状态更新为启动状态;执行步骤S2和步骤S9。
S2:原操作***获取配置信息,所述配置信息包括是否启用备用***功能、心跳更新模式、心跳更新周期、心跳异常上限和应用列表;
S3:根据所述配置信息,判断是否启动备份***功能,若是,则执行步骤S5,若否,则执行步骤S4。
S4:等待退出消息,当收到退出消息后时,执行步骤S7。
S5:将共享内存中原操作***的***状态更新为运行状态。
S6:判断是否收到退出消息,若是,则执行步骤S7,若否,则执行步骤S8。
S7:将共享内存中原操作***的***状态更新为关闭状态。
S8:根据所述心跳更新模式,将所述应用列表中应用的心跳信息更新到共享内存中;执行步骤S6。
进一步地,所述心跳更新模式包括立即更新模式和周期更新模式。
当所述心跳更新模式为立即更新模式时,则接收应用的心跳信息,所述心跳信息包括应用名称和时间戳(应用发送该心跳信息时的***时间),然后将所述时间戳写入共享内存中的最后心跳更新时间区域。
当所述心跳更新模式为周期更新模式时,则每当达到一个心跳更新周期的时间时,判断所述应用列表是否为空;若为空,则将当前***时间写入共享内存中的最后心跳更新时间区域;若不为空,则获取当前心跳更新周期内接收到的应用的心跳信息,进一步地,可分别记录应用列表中各应用在当前心跳更新周内接收到的心跳信息中的时间戳,若在该周期内未接收到一应用的心跳信息,则该应用对应的时间戳为空,若在该周期内接收到一应用的多个心跳信息,则记录该应用最新的时间戳;然后统计当前心跳更新周期内未收到心跳信息的应用数量是否超过所述心跳异常上限;若未超过,则将所记录的所有应用中的最新的时间戳写入共享内存中的最后心跳更新时间区域,之后清空当前心跳更新周期内记录的所有应用的时间戳;若超过,则关闭所述应用列表中的所有应用,并发出退出消息。
S9:备份操作***实时监测共享内存中原操作***的***状态。
S10:当监测到原操作***的***状态发生了改变,则判断是否变为关闭状态,若是,则执行步骤S11,若否,则执行步骤S12。
S11:关闭备份操作***,即通知备份操作***关闭***。
S12:判断是否变为运行状态,若是,则执行步骤S13,若否,则继续等待原操作***的***状态发生改变,即执行步骤S9。
S13:定时将***的控制权从原操作***切换到备份操作***;具体地,通过一个定时器FIQ中断(当定时器时间溢出时产生中断)强制把***的控制权从原操作***切换到备份操作***,定时器FIQ中断处理程序保存原操作***的运行状态并恢复上一次备份操作***的运行状态,之后运行备份操作***。
S14:备份操作***根据共享内存中的心跳信息,判断原操作***是否正常,即判断共享内存中的最后心跳更新时间区域中的时间戳与当前***时间的差值是否在预设的范围内,若是,则执行步骤S15,若否,则执行步骤S16。
S15:切换回原操作***;具体地,通过发送SMC中断指令请求切换回原操作***,在SMC中断处理程序中保存备份操作***的运行状态并恢复上一次原操作***的运行状态,之后运行原操作***,等待下一次运行状态检测,即返回执行步骤S12。
S16:启用备份操作***中的备份应用。即如果长时间未接收到应用的心跳信息,则认为原操作***已经出现异常,无法正常更新心跳,则为后台运行的备份操作***转为前台操作***做准备初始化,完成初始化之后启用相应的备份应用。进一步地,启用备份应用时会通知运行在原操作***的应用进行关闭操作。
备份操作***开机启动初始化时需要对中断资源进行分配,把***所有FIQ资源(中断优先级比IRQ高)分配给备份操作***,并且在备份操作***中禁用IRQ中断,把所有IRQ资源分配给原操作***。这样可以保证FIQ可以强制中断运行中的原操作***,备份操作***在运行中不会被原操作***的IRQ中断干扰。
因此,可以分配一个硬件定时器(配置为FIQ中断)来定时切换到备份操作***运行。当原操作***异常,需要启用备份操作***时,就不需要在两个***之间进行来回切换,就不需要该定时器了,需要把该定时器关闭掉。
进一步地,整个***的关机顺序和开机顺序相反,***开机时先启动备份操作***,再启动原操作***,关机时是先关闭原操作***,再关闭备份操作***。因此,当原操作***收到关机消息时会将共享内存中原操作***的***状态更新为关闭状态。当备份操作***监测到原操作***的***状态为关闭状态则关闭备份操作***。
本实施例利用trustzone技术为原***提供一个近乎相似的的备份***,备份***在后台运行,原***在前台运行,备份***监测原***的运行情况,当原***出现异常或者其他原因导致原***无法正常工作时,备份***接管原***的工作继续运行以确保整个***功能正常运行。本实施例不仅可降低硬件成本和***设计复杂度,原***和备份***之间的通信和监控也更简洁高效。
同时,将切换功能设置在备份操作***,备份操作***只是运行在后台且只要在需要的时候进行切换,开销小且有效保证了***的可靠性。
实施例二
本实施例是实施例一的一具体应用场景。
本实施例中,运行中的整个***主要组件如图3所示,其中通知代理服务由原操作***独自持有并运行,监控服务由备份操作***独自持有并运行,通知代理服务用来更新原操作***的***状态和接收原操作***部分APP的心跳时间,并将这些信息更新到共享内存,监控服务从共享内存读取原操作***的状态和心跳时间来判断是否需要关闭整个***或者把***切换到前台,启用备份的APP。
通知代理服务是原操作***的一个常驻内存服务,在原操作***启动之后就启动并一直运行直到原操作***需要关闭才退出。通知代理服务的工作流程如图4所示。通知代理启动之后,读取需要用到的配置信息,根据配置信息确认是否启用备份***功能,如果不启用则只是简单地等待退出消息,当收到退出消息时,更新原操作***的状态——由原来的启动状态变为关机状态并退出,并更新到共享内存。否则继续进行更新原操作***的状态——由原来的启动状态变为运行状态,并更新到共享内存。之后进入循序流程查看是否收到退出消息,如果收到则需要更新原操作***的状态——由原来的运行状态变为关机状态,并更新到共享内存。如果没有收到则更新心跳信息进入下一次循序。
其中配置信息的格式如表1所示,包括是否启用备用***功能、心跳更新模式、心跳更新周期、心跳异常上限和支持心跳APP列表(即应用列表)。
表1:
是否启用备用***功能 |
心跳更新模式 |
心跳更新周期 |
心跳异常上限 |
支持心跳APP列表 |
是否启用备份***功能,用来告诉通知代理服务是否启用备份***功能。心跳更新模式表示通知代理服务如何更新心跳信息到共享内存,包括两种模式,分别为立即更新(收到某个APP心跳信息马上更新)和周期更新(按时间周期一起更新所有APP信息)。心跳更新到共享内存的周期按心跳更新周期进行更新(如果心跳更新模式是立即更新则该配置不起作用)。心跳异常上限,只对心跳更新模式为周期更新有效,用来限制当一个周期内支持心跳的所有APP异常(未更新心跳信息)达到某个比例(比如异常APP占总的APP比例为80%)时就认为原***已经出现问题了,需要启动备用***。支持心跳APP列表列出所有需要更新心跳信息到通知代理服务的APP名字,如果APP列表为空,心跳更新模式为周期更新模式且心跳更新周期也不为空,则通知代理服务只监视原操作***是否异常(只要通知代理服务正常运行就认为原操作***正常),即只是周期性(按心跳更新周期)地更新心跳信息到共享内存,否则就认为不启用备份***功能,通知代理服务只等待接收退出消息,收到退出消息后更新***状态为关闭状态并退出。
更新心跳时间按配置的心跳更新模式分为立即模式和周期更新模式。如图5所示。如果是立即模式只是简单地等待APP心跳信息,APP心跳信息包含APP的名字和一个时间戳(APP发送这条消息时刻的***时间),收到APP心跳信息后,扔掉APP的名字,只把时间戳写入共享内存的最后心跳更新时间区域。如图6所示,如果是周期更新模式,则等待一个周期时间的到达,时间到达后确认APP列表是否为空,如果为空,只是简单地把当前***的时间写入共享内存的最后心跳更新时间区域。如果不为空则查看在这个时间周期内收到的APP的心跳信息,记录APP心跳信息的区域大致如表2所示,有收到对应APP心跳信息则对应APP的时间戳不为空,如表2中的APP 1和APP N;如果对应APP的时间戳为空,则表示该周期内没收到该APP的心跳信息,如表2中的APP 2;统计未收到心跳信息的APP数量是否已经达到心跳异常上限,如果没有的话则对比所有APP的时间戳,并取最新的那个时间戳写入共享内存的最后心跳更新时间区域,之后清空所有APP的时间戳等待下一次心跳信息的更新。如果达到心跳异常上限,则需要关闭APP列表内所有的APP,退出通知代理服务。
表2:
APP 1 | APP 2 | … | APP N |
时间戳1 | 空 | … | 时间戳N |
备份操作***的监控服务是备份操作***的一个常驻内存服务,在备份操作***启动之后就启动并一直运行直到备份操作***转为前台操作***才关闭退出。监控服务的整个工作流程如图7所示,监控服务启动之后会更新共享内存中原操作***的状态为启动状态,之后会进入等待原操作***状态改变,如果原操作***并不启用备份操作***功能,则监控服务会一直属于等待状态,直到原操作***需要关闭,改变了原操作***状态变为关闭。当监控服务探测到原操作***状态发生改变,确认是否为关闭状态,如果是则通知备份操作***关闭***,并退出。如果不是关闭状态就进一步确认原操作***是否变为运行状态(原操作***启用备份***功能),如果是其他未知状态,跳回去继续等待原***状态改变,如果是运行状态,则进一步确认共享内存中的最后心跳更新时间和当前***时间是否差距太大,如果在合理的范围之内,则切换回原操作***等待下一次运行状态检测,如果心跳差距太大则认为原操作***已经出现异常无法正常更新心跳,则为后台运行的备份操作***转为前台操作***做准备初始化,完成初始化之后启用相应的备份APP,并退出监控服务。
整个***的关机顺序和开机顺序相反,***开机时先启动备份操作***,再启动原操作***,关机时是先关闭原操作***,再关闭备份操作***。因此当通知代理服务收到关机消息时会更新共享内存中原操作***状态为关闭状态,并退出。当备份操作***的监控服务检测到原操作***状态为关闭状态则通知备份操作***进行关闭,并退出。
前台运行的原操操作***从不主动请求切换入后台运行的备份操作***,切换到备份操作***是通过备份操作***定时强制进行切换的。后台运行的备份操作***通过一个定时器FIQ中断(当定时器时间溢出时产生中断)强制把***的控制权从原操作***切换到备份操作***,定时器FIQ中断处理程序保存原操作***运行状态,并恢复上一次备份操作***的运行状态,之后运行备份操作***,备份操作***继续之前监控服务的运行,如果监控服务检查原操作***心跳正常,请求切换回原操作***(通过发送一条SMC中断指令),在SMC中断处理程序中保存备份操作***运行状态,并恢复上一次原操作***的运行状态,之后运行原操作***。
为了保证备份操作***可强制中断运行中的原操作***,备份操作***开机启动初始化时需要对中断资源进行分配,把***所有FIQ资源(中断优先级比IRQ高)分配给备份操作***并且在备份操作***中禁用IRQ中断,把所有IRQ资源分配给原操作***。这样可以保证FIQ可以强制中断运行中的原操作***,备份操作***在运行中不会被原操作***的IRQ中断干扰。
因此就可以分配一个硬件定时器(配置为FIQ中断)来定时切换到备份操作***运行。当原操作***异常,需要启用备份操作***时,就不需要在两个***之间进行来回切换,就不需要该定时器了,需要把该定时器关闭掉。
实施例三
本实施例是对应上述实施例的一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现以下步骤:
启动后,备份操作***将共享内存中原操作***的***状态更新为启动状态;
原操作***获取配置信息,所述配置信息包括是否启用备用***功能、心跳更新模式和应用列表;
若启用备份***功能,则将共享内存中原操作***的***状态更新为运行状态;
根据所述心跳更新模式,将所述应用列表中应用的心跳信息更新到共享内存中;
若备份操作***检监测到共享内存中原操作***的***状态为运行状态,则定时将***的控制权从原操作***切换到备份操作***;
备份操作***根据共享内存中的心跳信息,判断原操作***是否正常;
若正常,则切换回原操作***;
若异常,则启用备份操作***中的备份应用。
进一步地,所述“若启用备份***功能,则将共享内存中原操作***的***状态更新为运行状态”具体为:
根据所述配置信息,判断是否启动备份***功能;
若不启用备份***功能,则等待退出消息;
若启用备份***功能,则将共享内存中原操作***的***状态更新为运行状态;
当接收到退出消息时,将共享内存中原操作***的***状态更新为关闭状态;
当未接收到退出消息时,则执行所述根据所述心跳更新模式,将所述应用列表中应用的心跳信息更新到共享内存中的步骤。
进一步地,所述心跳更新模式包括立即更新模式和周期更新模式;
当所述心跳更新模式为立即更新模式时,所述“根据所述心跳更新模式,将所述应用列表中应用的心跳信息更新到共享内存中”具体为:
接收应用的心跳信息,所述心跳信息包括应用名称和时间戳;
将所述时间戳写入共享内存中的最后心跳更新时间区域。
进一步地,所述配置信息还包括心跳更新周期和心跳异常上限;
当所述心跳更新模式为周期更新模式时,所述“根据所述心跳更新模式,将所述应用列表中应用的心跳信息更新到共享内存中”具体为:
根据所述心跳更新周期,判断所述应用列表是否为空;
若为空,则将当前***时间写入共享内存中的最后心跳更新时间区域;
若不为空,则获取当前心跳更新周期内接收到的应用的心跳信息;
根据所述心跳信息,判断未收到心跳信息的应用数量是否超过所述心跳异常上限;
若未超过,则将所述心跳信息中最新的时间戳写入共享内存中的最后心跳更新时间区域;
若超过,则关闭所述应用列表中的应用,并发出退出消息。
进一步地,所述“将所述心跳信息中最新的时间戳写入共享内存中的最后心跳更新时间区域”之后,进一步包括:
清空当前心跳更新周期内接收到的应用的心跳信息。
进一步地,所述“备份操作***根据共享内存中的心跳信息,判断原操作***是否正常”具体为:
备份操作***判断共享内存中的最后心跳更新时间区域中的时间戳与当前***时间的差值是否在预设的范围内;
若是,则判定原操作***正常;
若否,则判定原操作***异常。
进一步地,所述“若备份操作***检监测到共享内存中原操作***的***状态为运行状态,则定时将***的控制权从原操作***切换到备份操作***”具体为:
备份操作***实时监测共享内存中原操作***的***状态;
若监测到原操作***的***状态为关闭状态,则关闭备份操作***;
若监测到原操作***的***状态为运行状态,则通过定时器中断将***的控制权从原操作***切换到备份操作***。
进一步地,所述“将***的控制权从原操作***切换到备份操作***”具体为:
保存原操作***的运行状态并恢复上一次备份操作***的运行状态后,运行备份操作***。
进一步地,所述“切换回原操作***”具体为:
保存备份操作***的运行状态并恢复上一次原操作***的运行状态后,运行原操作***。
综上所述,本发明提供的一种***安全冗余方法及计算机可读存储介质,利用trustzone技术为原***提供一个近乎相似的的备份***,备份***在后台运行,原***在前台运行,备份***监测原***的运行情况,当原***出现异常或者其他原因导致原***无法正常工作时,备份***接管原***的工作继续运行以确保整个***功能正常运行。本发明不仅可降低硬件成本和***设计复杂度,同时原***和备份***之间的通信和监控也更简洁高效。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (7)
1.一种基于trustzone的***安全冗余方法,其特征在于,包括:
启动后,备份操作***将共享内存中原操作***的***状态更新为启动状态;
原操作***获取配置信息,所述配置信息包括是否启用备用***功能、心跳更新模式和应用列表;
若启用备份***功能,则将共享内存中原操作***的***状态更新为运行状态;
根据所述心跳更新模式,将所述应用列表中应用的心跳信息更新到共享内存中;
若备份操作***检监测到共享内存中原操作***的***状态为运行状态,则定时将***的控制权从原操作***切换到备份操作***;
备份操作***根据共享内存中的心跳信息,判断原操作***是否正常;
若正常,则切换回原操作***;
若异常,则启用备份操作***中的备份应用;
所述心跳更新模式包括立即更新模式和周期更新模式;
当所述心跳更新模式为立即更新模式时,所述根据所述心跳更新模式,将所述应用列表中应用的心跳信息更新到共享内存中,具体为:
接收应用的心跳信息,所述心跳信息包括应用名称和时间戳;
将所述时间戳写入共享内存中的最后心跳更新时间区域;
所述备份操作***根据共享内存中的心跳信息,判断原操作***是否正常,具体为:
备份操作***判断共享内存中的最后心跳更新时间区域中的时间戳与当前***时间的差值是否在预设的范围内;
若是,则判定原操作***正常;
若否,则判定原操作***异常;
所述若备份操作***检监测到共享内存中原操作***的***状态为运行状态,则定时将***的控制权从原操作***切换到备份操作***,具体为:
备份操作***实时监测共享内存中原操作***的***状态;
若监测到原操作***的***状态为关闭状态,则关闭备份操作***;
若监测到原操作***的***状态为运行状态,则通过定时器中断将***的控制权从原操作***切换到备份操作***。
2.根据权利要求1所述的基于trustzone的***安全冗余方法,其特征在于,所述“若启用备份***功能,则将共享内存中原操作***的***状态更新为运行状态”具体为:
根据所述配置信息,判断是否启动备份***功能;
若不启用备份***功能,则等待退出消息;
若启用备份***功能,则将共享内存中原操作***的***状态更新为运行状态;
当接收到退出消息时,将共享内存中原操作***的***状态更新为关闭状态;
当未接收到退出消息时,则执行所述根据所述心跳更新模式,将所述应用列表中应用的心跳信息更新到共享内存中的步骤。
3.根据权利要求1所述的基于trustzone的***安全冗余方法,其特征在于,所述配置信息还包括心跳更新周期和心跳异常上限;
当所述心跳更新模式为周期更新模式时,所述“根据所述心跳更新模式,将所述应用列表中应用的心跳信息更新到共享内存中”具体为:
根据所述心跳更新周期,判断所述应用列表是否为空;
若为空,则将当前***时间写入共享内存中的最后心跳更新时间区域;
若不为空,则获取当前心跳更新周期内接收到的应用的心跳信息;
根据所述心跳信息,判断未收到心跳信息的应用数量是否超过所述心跳异常上限;
若未超过,则将所述心跳信息中最新的时间戳写入共享内存中的最后心跳更新时间区域;
若超过,则关闭所述应用列表中的应用,并发出退出消息。
4.根据权利要求3所述的基于trustzone的***安全冗余方法,其特征在于,所述“将所述心跳信息中最新的时间戳写入共享内存中的最后心跳更新时间区域”之后,进一步包括:
清空当前心跳更新周期内接收到的应用的心跳信息。
5.根据权利要求1所述的基于trustzone的***安全冗余方法,其特征在于,所述“将***的控制权从原操作***切换到备份操作***”具体为:
保存原操作***的运行状态并恢复上一次备份操作***的运行状态后,运行备份操作***。
6.根据权利要求1所述的基于trustzone的***安全冗余方法,其特征在于,所述“切换回原操作***”具体为:
保存备份操作***的运行状态并恢复上一次原操作***的运行状态后,运行原操作***。
7.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-6任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810022100.2A CN110018925B (zh) | 2018-01-10 | 2018-01-10 | ***安全冗余方法及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810022100.2A CN110018925B (zh) | 2018-01-10 | 2018-01-10 | ***安全冗余方法及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110018925A CN110018925A (zh) | 2019-07-16 |
CN110018925B true CN110018925B (zh) | 2023-08-29 |
Family
ID=67188050
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810022100.2A Active CN110018925B (zh) | 2018-01-10 | 2018-01-10 | ***安全冗余方法及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110018925B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101620562A (zh) * | 2009-08-07 | 2010-01-06 | 中兴通讯股份有限公司 | 一种嵌入式***性能的评估方法及*** |
CN102750187A (zh) * | 2012-07-11 | 2012-10-24 | 北京联时空网络通信设备有限公司 | 一种跨进程交互方法及装置 |
CN103199972A (zh) * | 2013-03-25 | 2013-07-10 | 成都瑞科电气有限公司 | 基于soa、rs485总线实现的双机热备份切换方法及热备份*** |
CN105337762A (zh) * | 2015-09-28 | 2016-02-17 | 浪潮(北京)电子信息产业有限公司 | 一种支持自动故障切换的文件共享方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105579973A (zh) * | 2014-01-10 | 2016-05-11 | 株式会社日立制作所 | 冗余***以及冗余***管理方法 |
-
2018
- 2018-01-10 CN CN201810022100.2A patent/CN110018925B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101620562A (zh) * | 2009-08-07 | 2010-01-06 | 中兴通讯股份有限公司 | 一种嵌入式***性能的评估方法及*** |
CN102750187A (zh) * | 2012-07-11 | 2012-10-24 | 北京联时空网络通信设备有限公司 | 一种跨进程交互方法及装置 |
CN103199972A (zh) * | 2013-03-25 | 2013-07-10 | 成都瑞科电气有限公司 | 基于soa、rs485总线实现的双机热备份切换方法及热备份*** |
CN105337762A (zh) * | 2015-09-28 | 2016-02-17 | 浪潮(北京)电子信息产业有限公司 | 一种支持自动故障切换的文件共享方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110018925A (zh) | 2019-07-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5405320B2 (ja) | 仮想計算機制御装置、仮想計算機制御方法及び仮想計算機制御プログラム | |
US7426657B2 (en) | System and method for predictive processor failure recovery | |
JP4060322B2 (ja) | アプリケーション管理装置およびそのソフトウェアを格納した記憶媒体 | |
US8191069B2 (en) | Method of monitoring performance of virtual computer and apparatus using the method | |
JP5225515B2 (ja) | プロセッサ装置及びプログラム | |
CN109656742B (zh) | 一种节点异常处理方法、装置及存储介质 | |
US7434085B2 (en) | Architecture for high availability using system management mode driven monitoring and communications | |
JP2005115751A (ja) | 計算機システム及び計算機システムの障害兆候の検知方法 | |
JP2002259155A (ja) | 多重系計算機システム | |
EP3926467B1 (en) | Application control method and apparatus, terminal, and computer-readable storage medium | |
JP6130520B2 (ja) | 多重系システムおよび多重系システム管理方法 | |
CN110018925B (zh) | ***安全冗余方法及计算机可读存储介质 | |
JP2010086363A (ja) | 情報処理装置及び装置構成組み換え制御方法 | |
JP2008015704A (ja) | マルチプロセッサシステム | |
US12008396B2 (en) | Application state control method apparatus, and terminal and computer-readable storage medium | |
JP2009237758A (ja) | サーバシステム、サーバ管理方法、およびそのプログラム | |
EP3176674A1 (en) | Method for power control of a control unit and control unit | |
CN116360865A (zh) | 集群管理方法、设备及计算*** | |
CN109062718B (zh) | 一种服务器及数据处理方法 | |
CN107092531B (zh) | 计算框架、电子设备及信息处理方法 | |
JP2009282601A (ja) | 動作監視プログラム、監視システム、および、監視方法 | |
JP4892260B2 (ja) | イベント通報装置およびイベント通報プログラム | |
CN117593172B (zh) | 进程管理方法、装置、介质及设备 | |
US20180225201A1 (en) | Preserving volatile memory across a computer system disruption | |
JP4788516B2 (ja) | 動的置き換えシステム、動的置き換え方法およびプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |