当前位置: 首页 > 专利查询>西门子公司专利>正文

用于在实时操作系统的实施中识别错误的方法技术方案

技术编号:7578708 阅读:203 留言:0更新日期:2012-07-19 02:39
本发明专利技术涉及一种用于在实时操作系统的实施中识别错误的方法,其中实时操作系统的逻辑相同的实例(106;116)在共用的虚拟化环境中的第一处理器(520)的至少两个处理器核心(100;102)上并行地实施,其中系统管理程序(128)监测实例(106;116)的并行实施,其中在执行通过实例(106;116)引发的硬件访问时,通过系统管理程序将在对于每个实例(106;116)的硬件访问时传输的数据相互比较,其中,在传输的数据之间出现差别的情况下,或者在单方面的通过实例之一引发的硬件访问的情况下,通过系统管理程序(128)识别为是错误。

【技术实现步骤摘要】

本专利技术涉及一种用于在执行实时操作系统的实施中识别错误的方法、一种计算机程序产品、以及一种用于在实时操作系统的实施中识别错误的装置。
技术介绍
多种现代化的处理器当前提供了更多处理器核心和虚拟化技术。在此,使用了所谓的系统管理程序(Hypervisor)。在此,这是指一种软件,该软件通过应用虚拟化技术使得一个或多个客户操作系统在真实的硬件上运行,并且在此管理能使用的资源。资源在此可以被分配给客户,也可以处于在系统管理程序控制下。与前面的能使用的技术相比,以较小的性能缺陷使其实现并且不会干预客户操作系统。首要的目标在于,最佳地充分利用现有的高处理器效率,这由此实现,即为各个处理器核心分配不同的任务。因此例如可以在一个核心上委托具有控制任务的、有实时能力的操作系统,而在另一个核心上应用标准操作系统、如Windows系统,以对进行的过程虚拟化。在执行实时操作系统时的一个问题在于,即必须针对错误的实施对该系统进行保护。程序错误、以及硬件方面的错误可以特别在自动化系统中导致自动化系统引起错误的产品生产或产品加工,或者使自动化系统的完全关闭。在所有情况下产生了较大的经济损失,其可能通过适合的错误识别机构,在实时操作系统的实施中被避免。
技术实现思路
因此本专利技术的目的在于,提出一种方法、一种计算机程序产品以及一种装置,用于在实时操作系统的实施中识别错误。本专利技术的目的通过独立权利要求所述的特征来实现。本专利技术的优选的实施方式在从属权利要求中给出。在此提出了一种,其中实时操作系统的逻辑相同的实例(Instanz)在共用的虚拟化环境中的第一处理器的至少两个处理器核心上被并行地实施,其中系统管理程序监测实例的并行实施,其中在执行通过实例引发的硬件访问时,通过系统管理程序将在对于每个实例的硬件访问时传输的数据相互比较, 其中,在传输的数据之间出现差别的情况下,或者在单方面的通过实例之一引发的硬件访问的情况下,通过系统管理程序识别为是错误。本专利技术因此提出了一种系统保护的方案,其中系统管理程序用于并行处理用于控制任务的实时操作系统(在下面也称为固件)的多种不同的版本。目的在于,识别出在两个核心上的处理过程中的差别,以及例如可能由于数据失真而对用户产生损害之前,停止所分配的自动化系统中的控制。表面上,利用在此提出的用于确保用户的系统安全的措施使得控制器的系统性能不发生变化。必须分别在产品特性方面考虑对于性能、特别是处理速度以及等待时间的影响。在固件的行动不同时需要系统管理程序的相互作用(例如访问虚拟的或真实的硬件)。在这种情况下,对虚拟机的处理被中断,并且将中断原因通知给系统管理程序。对于虚拟化软件也可能的是,通过对特殊的操作码(Hypercall超级调用)的处理,中断虚拟机,以便帮助系统管理程序做准备工作。两种类型的中断可以用于使得虚拟化的固件实例的工作-或中间结果实现匹配 (Abgleich)。所述类型的在中断时的匹配在下面称为“同步点”。因此实现了一种控制实例,其在控制器的内部的执行中识别出错误,并且可以相应地作出反应。可以因此如在下面还要进一步探讨地,有助于解决由于未识别的存储器错误引起的错误运行的问题,这并不能在所有情况下都利用前述的解决办法来实现。最少所需要的匹配包括检测写在硬件上的数据和分配由硬件读取的数据。如果应该描述不同的数据,达到不同的同步点或者单方面地达到仅仅一个同步点,则因此可以假定固件发生故障。根据本专利技术的一个实施方式,通过实例之一引发的硬件访问是直接的硬件访问或者是在应用半虚拟化的情况下通过超级调用实现的硬件访问。基本上,固件通过例如输入-和输出区域(I/O端口)、存储器映像设备(memory mapped device)、中断请求(interrupt)和直接存储器访问(direct memory access-DMA) 和硬件集成在一起。所有这些相互作用可以而且必须通过系统管理程序实现匹配和同步。硬件访问在此基本上可以借助于两个方法来实现。一方面可能的是,使虚拟化的固件中的硬件驱动器保持原状,并且对系统管理程序中产生的硬件访问进行拦截和匹配 (硬件虚拟化)。其它可能性在于,将硬件驱动器的最下层移动到系统管理程序中,并且通过超级调用实现对其的访问(半虚拟化)。在硬件虚拟化的情况下,在I/O端口和存储器映像设备上的硬件访问可以通过系统管理程序拦截和处理。在通过中断请求实现与硬件相互作用的情况下需要注意的是,不允许在不同的位置上中断两个虚拟化的固件实例。这可以由此实现,即通过系统管理程序拦截所有的中断请求,并且在同步点处将其注入虚拟化的固件中。另一个可能性在于,以封锁中断请求的方式运行固件,并且有规律地在等候处理的事件中查询前面的中断请求源 (Polling轮流检测)。为了对具有DMA能力的硬件进行处理,对于硬件或系统管理程序存在附加的要求。DMA访问仅仅在一个物理地址上实现,因此系统管理程序为了对存储器内容进行比较或匹配而必须识别和处理存在的DMA传输装置。可以低投入地仅仅通过在虚拟化固件的具有DMA能力的驱动器中插入同步点来满足这种要求,其使得对于系统管理程序而言能简单地识别是否存在DMA指令(Auftrag)。在半虚拟化的解决办法中,如上述地,使得驱动器连同中断请求-和DMA-处理一起移动到系统管理程序中。驱动器的调用通过超级调用来实现。在已经实现处理之后,该结果通过注入中断请求或者通过设定存储单元通知虚拟化的固件实例。在决定了选择哪个驱动器模型时,应该权衡研发投入与性能的关系。如果性能被优先考虑,则将硬件驱动器扩展到系统管理程序中。根据本专利技术的一个实施方式,硬件访问包括存储器访问,其中在执行通过实例引发的存储器访问时,实例访问了共用的存储器。例如,在应用对于两个实例的相同的虚拟化地址空间时进行存储器访问,其中虚拟化地址空间分配有对于每个实例的不同的物理地址空间。固件的实例可以在这种情况下分别具有相同的虚拟化地址空间,其被分配给不同的物理地址空间。因此可以运行固件的完全相同的版本。可替换地,在应用对于两个实例的不同的虚拟化地址空间时实现存储器访问。两个固件实例必须在这种情况下处于不同的定位位置。为了简化系统管理程序的编程,不同的虚拟化的地址空间可以和所属的物理地址空间保持相同,但这不是对于所述的方法的必要的前提条件。如果控制器的存储器能被所有核心访问,则系统管理程序可以通过对页-表格相应地编程用于实现适合的存储器分配和访问保护。虽然没有对于实现系统保护的必要的前提条件,但是通过在固件实例彼此之间的横向访问以及由系统管理程序中的固件实例立即避免了错误。系统管理程序自身持续访问其客户的存储器、即在其控制之下运行的固件实例。两个所述的变体-相同的或不同的虚拟化地址空间-具有独特的优点因此基本上足以识别通过硬件错误而损坏的储存器,从而使得相同的硬件实例并行地运行。处理随后相关于编码和数据在相同的虚拟地址上进行,然而强制性地在不同的物理地址上进行。对于数据而言,分别对于每个核心总归需要一个固有的存储器区域,对于程序编码而言其也是必需的,以便除了损坏的数据存储器之外也能识别损坏的程序存储器。最迟在将损坏的数据发出到硬件接口上或者在同步点上背离时察觉到工作结果中的分歧。因此存储器保护的这种变体适合用于识别硬本文档来自技高网...

【技术保护点】

【技术特征摘要】
...

【专利技术属性】
技术研发人员:奥托·尼塞尔
申请(专利权)人:西门子公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术