用于操作系统中的错误识别的方法转让专利

申请号 : CN201810329786.X

文献号 : CN108733502B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 斯蒂芬·波莱德纳A·沃尔夫赫而曼·高柏兹M·赫夫勒

申请人 : TTTECH汽车股份公司

摘要 :

本发明涉及用于识别操作系统中计算机存在或出现错误的方法,其中在所请求的应用任务(107)的开始时刻(102,112)之前的运行时间期间,执行特别是独立的验证任务(106),该验证任务读取并验证计算机中由操作系统的计算任务(105)设置的控制寄存器的内容,该内容指定所请求的应用任务(107)的运行时环境的特性。此外,本发明涉及在其上执行此类方法的计算机。

权利要求 :

1.一种用于识别操作系统中的计算机存在或出现错误的方法,其特征在于,

在所请求的应用任务(107)的开始时刻(102,112)之前的运行时间期间,执行验证任务,所述验证任务读取并验证所述计算机中由所述操作系统的计算任务(105)设置的控制寄存器的内容,所述内容指定所请求的应用任务(107)的运行时环境的特性;

如果至少满足以下条件,则计算机的控制寄存器将被验证:应用任务的数据受到保护,以防止其他任务未经授权的存取;

计算机中的数据的所设置的读/写权限符合应用任务的规范;

输入/输出数据的地址符合应用任务的规范;

要由操作系统监控的应用软件的运行时间规定符合应用任务的规范。

2.如权利要求1所述的方法,其特征在于,所述验证任务是独立的验证任务(106)。

3.如权利要求2所述的方法,其特征在于,所述独立的验证任务(106)是操作系统软件的一部分。

4.如权利要求2所述的方法,其特征在于,所述独立的验证任务(106)是应用软件的一部分。

5.如权利要求1到4中任一项所述的方法,其特征在于,在所述验证中已发现控制寄存器中有错误的情况下开始紧急操作。

6.如权利要求1所述的方法,其特征在于,在所述验证中已在帧中发现错误的情况下,在开始紧急操作之前等待下一帧。

7.如权利要求1所述的方法,其特征在于,所述操作系统是时间控制的操作系统和/或应用系统是时间控制的应用系统。

8.如权利要求7所述的方法,其特征在于,在时间控制的操作系统中,在所述应用任务(107)的先验已知的开始时刻(112)之前执行所述操作系统的计算任务(105)和独立的验证任务(106)。

9.一种具有操作系统的计算机,其特征在于,

为了识别在所述计算机的所述操作系统中的所述计算机存在或出现的错误,所述计算机被设置成:在所请求的应用任务(107)的开始时刻(102,112)之前的运行时间期间,执行验证任务,所述验证任务读取并验证所述计算机中由所述操作系统的计算任务(105)设置的控制寄存器的内容,所述内容指定所请求的应用任务(107)的运行时环境的特性;

如果至少满足以下条件,则计算机的控制寄存器将被验证:应用任务的数据受到保护,以防止其他任务未经授权的存取;

计算机中的数据的所设置的读/写权限符合应用任务的规范;

输入/输出数据的地址符合应用任务的规范;

要由操作系统监控的应用软件的运行时间规定符合应用任务的规范。

10.如权利要求9所述的计算机,其特征在于,所述验证任务是独立的验证任务(106)。

11.如权利要求10所述的计算机,其特征在于,所述独立的验证任务(106)是操作系统软件的一部分。

12.如权利要求10所述的计算机,其特征在于,所述独立的验证任务(106)是应用软件的一部分。

13.如权利要求9到12中任一项所述的计算机,其特征在于,在所述验证中已发现控制寄存器中有错误的情况下开始紧急操作。

14.如权利要求9所述的计算机,其特征在于,在所述验证中已在帧中发现错误的情况下,在开始紧急操作之前等待下一帧。

15.如权利要求9所述的计算机,其特征在于,所述操作系统是时间控制的操作系统和/或应用系统是时间控制的应用系统。

16.如权利要求15所述的计算机,其特征在于,在时间控制的操作系统中,在所述应用任务(107)的先验已知的开始时刻(112)之前执行所述操作系统的计算任务(105)和独立的验证任务(106)。

17.一种包括节点计算机的计算机系统,其特征在于,一个或多个节点计算机被构造为根据权利要求9到16中任一项所述的计算机。

18.如权利要求17的计算机系统,其特征在于,所述的计算机系统是时间控制的分布式实时计算机系统。

说明书 :

用于操作系统中的错误识别的方法

技术领域

[0001] 本发明涉及一种用于识别在操作系统中的计算机存在或发生错误的方法。
[0002] 此外,本发明涉及一种具有操作系统的计算机。
[0003] 最后,本发明涉及一种包括节点计算机的计算机系统,特别是时间控制的分布式实时计算机系统,其中一个或多个节点计算机被构造为根据本发明的计算机。
[0004] 本发明属于计算机技术领域。本发明涉及一种方法,该方法使得能够在运行时间期间验证操作系统的行为并且识别错误结果。操作系统的这些错误结果可能是由操作系统
的软件中存在的设计错误或操作系统的运行时间期间的瞬时硬件错误引起的。

背景技术

[0005] 传感器技术和计算机技术的发展实现了技术对象(例如,自主地工作的机器)或自主地控制目标的车辆在很大程度上自主的控制。在这些实时计算机的应用中,特别要求快
速识别计算机系统中的错误,以便能够在发生错误之后快速地将技术对象置于安全状态。
在许多技术对象中,在识别出错误之后立即停止控制过程(紧急停止)是使系统进入安全状
态的措施。
[0006] 在许多实时计算机的应用中,是使用复杂的操作系统(例如LINUX)。许多这些复杂的操作系统都包含无法识别的软件错误。因此,在[2]中指出,在广泛使用的LINUX操作系统
LINUX 3.0版本中标识出855个错误。利用本发明提出的方法,可以减轻这些错误中的一些
错误的后果。
[0007] 在下文中,我们将包括操作系统在内的所有程序集合称之为“操作系统软件”。
[0008] 我们将包括应用系统在内的所有程序集合称之为“应用软件”。
[0009] 概念“软件”应理解为操作系统软件和应用软件的合集。
[0010] 我们将在机器上执行程序(即,软件过程)称为任务。
[0011] 操作系统软件的任务或操作系统的任务也被称为操作系统任务,应用软件的任务或应用系统的任务也被称为应用任务。
[0012] 我们通过有限状态机来对任务的行为进行建模(不管它是操作系统任务还是应用任务)并且将根据给定的输入数据和旧状态来计算新结果和新状态的任务称为计算任务。
我们将验证计算任务结果的正确性的任务称为验证任务。
[0013] 控制系统(其是用于受控对象的实时控制和/或调节的系统)周期性地运行[1,第7页]是属于现有技术。在周期性的观测时刻(采样点)观测受控对象。所获取的数据形成尽可
能快地计算执行器的新的设定值(Sollwerten)的基础,这些设定值影响受控对象的行为。
[0014] 我们将在每次观测之后必须执行的、可能为分布式的、计算序列的周期性重复执行称为帧。
[0015] 在一帧中可以运行一个或多个实时事务(RT事务,参见[1,第24页])。
[0016] 在一个RT事务内执行的操作系统任务和应用任务(即,软件过程)的顺序是在一个或多个数据流路径(DFP)中确定。
[0017] 两个时间参数与每一帧是相关的:
[0018] 执行历时(也称为响应时间)表示采样点与帧结果输出至受控对象的执行器之间的时间间隔。帧的执行历时越短,则控制系统的质量越好。
[0019] 帧区间表示两个相继帧之间的时间间隔。
[0020] 每秒处理的帧的数目常常以赫兹(Hz)来表达。
[0021] 在帧中发生错误的原因可能是计算机硬件的老化故障(物理故障)或计算机硬件或软件中存在的设计错误(设计故障)。
[0022] 当在其寿命开始时能够完全运作的组件由于硬件的老化过程或者物理环境影响(例如,宇宙辐射)而失灵时,会发生老化故障。在现有技术的芯片中,永久老化误差的故障
率<100FIT。
[0023] 瞬时硬件故障的故障率显著高于永久硬件故障的故障率[1,第155页]。在许多情况下,瞬时硬件故障的操作影响与软件中的海森堡漏洞(Heisenbug)[1,第138页]并没有区
别。
[0024] 在软件中发生设计错误的重要原因在于软件的复杂度。
[0025] 降低有可能在软件中未被发现的设计错误的措施包括一有系统的设计过程、检验和验证、以及最重要的是大量的软件测试(包括离线和在线)。
[0026] 在在线测试中,在计算机系统或计算机的操作期间,验证任务中被选定的中间结果、特别是(操作系统软件或应用软件的)计算任务中被选定的中间结果,即,验证其正确
性。可以使用在线测试来识别软件中的设计错误(例如,未识别出的海森堡漏洞)和瞬时硬
件故障的影响。

发明内容

[0027] 本发明的目的在于,在运行时间期间识别操作系统任务、即操作系统的计算任务的错误结果。这些错误结果可能是由操作系统的软件中存在的设计错误或在操作系统的运
行时间期间的老化故障(永久和瞬时硬件故障)引起的。
[0028] 根据本发明,该任务通过以下方式来解决:在所请求的应用任务的开始时刻之前的运行时间期间,执行特别是独立的验证任务,该验证任务读取并验证计算机中由操作系
统的计算任务设置的控制寄存器的内容,该内容指定所请求的应用任务的运行时环境的特
性。
[0029] 根据本发明,在开始执行应用任务之前执行特别是独立的验证任务,该验证任务验证由操作系统提供的结果。
[0030] 例如,如果两个任务是彼此分开来开发和/或测试的,则这两个任务是相互独立的。
[0031] 本发明是基于:计算结果在大多数情况下是比验证结果更复杂。因此,在计算结果期间发生错误的概率高于在验证结果期间发生错误的概率。
[0032] 例如,验证一系列数字是否正确排序要比将无序列的数字排序容易得多。
[0033] 以下描述根据本发明的方法、计算机和计算机系统的有利设计:
[0034] 特别是独立的验证任务可以是操作系统软件的一部分;或者
[0035] 特别是独立的验证任务可以是应用软件的一部分;
[0036] 可以规定,在验证中已发现控制寄存器中有错误的情况下开始紧急操作。
[0037] 可以规定,在验证中已在帧中发现错误的情况下,在紧急操作开始之前等待下一帧。
[0038] 操作系统优选是时间控制的操作系统和/或应用系统是例如时间控制的应用系统;在时间控制的操作系统中,优选地规定,操作系统的计算任务和特别是独立的验证任务
在应用任务的先验已知的开始时刻之前执行。
[0039] 在帧中识别出错误之后是等待下一帧还是立即设置紧急操作,取决于具体的任务。在自主车辆形式的受控对象的情况下,刹停车辆可以是紧急操作。
[0040] 因此,根据本发明,大规模的操作系统(例如LINUX)的计算任务的结果通过优选独立的验证任务来验证。这些优选独立的验证任务可以是操作系统软件的一部分或应用软件
的一部分,因此可以是操作系统软件的任务或应用软件的任务。
[0041] 如果在发生某件因应用而异的事件(例如,消息到达或发生中断)之后请求操作系统将上下文切换至由该事件请求的应用任务,则操作系统的计算任务必须在应用任务的开
始时刻之前计算计算机的控制寄存器的内容,该内容指定所请求的应用任务的运行时环境
的特性。
[0042] 所请求的应用任务的运行时环境的特性至少可包括以下特性:
[0043] ●应用任务的哪些数据区域可以被读取,
[0044] ●应用任务的哪些数据区域可以被写入,
[0045] ●应用任务的哪些数据区域可以被操作系统中活跃的其它任务读取或写入,以及
[0046] ●应用任务可能需要多长时间进行计算。
[0047] 根据本发明,在完成操作系统的计算任务之后,验证任务验证计算机的控制寄存器的内容。
[0048] 为了防止验证任务中的错误改变计算机的控制寄存器的内容,验证任务只能读取计算机的控制寄存器的内容。
[0049] 在验证中已发现错误的情况下,可立即启动应用相关的紧急操作,例如,设备的停机。
[0050] 在验证中已在周期性帧中发现错误的情况下,可以在设置紧急操作之前等待下一帧。
[0051] 如果至少满足以下条件,则计算机的控制寄存器将被验证:
[0052] ●应用任务的数据受到保护,以防止其他任务未经授权的存取。
[0053] ●计算机中的数据的所设置的读/写权限符合应用任务的规范。
[0054] ●输入/输出数据的地址符合应用任务的规范。
[0055] ●要由操作系统监控的应用软件的运行时间规定符合应用任务的规范。
[0056] 我们将在应用任务的开始时刻之前在任务切换的框架下执行的操作系统的活动的历时称为管理开销[1,第245页]。任务切换的管理开销是根据计算任务的执行历时和验
证任务的执行历时之和得到的。

附图说明

[0057] 以下根据附图中示出的实施例来描述本发明。在附图中示出:
[0058] 图1a示出了计算机在事件控制的操作系统中操作系统任务和应用任务的过程;以及
[0059] 图1b示出了计算机在时间控制的操作系统中操作系统任务和应用任务的过程。

具体实施方式

[0060] 在图1a中,示出了事件控制的操作系统中计算机的任务切换的时间过程。横线100示出时间的进展。例如,在事件控制的操作系统中,在先验未知的时刻101,发生涉及任务切
换的事件。在时间区间105中,计算机的操作系统计算计算机的控制寄存器的新内容。在时
间区间106中,操作系统验证寄存器的内容。应用任务在作为所请求的应用任务的开始时刻
的时刻102开始计算。在应用任务的历时107之后,应用任务产生其结果。该结果可以被传递
给执行器或者帧中的后续任务。这在时刻103发生。
[0061] 在图1b中,示出了时间控制的操作系统中的任务切换的时间过程。横线100示出时间的进展。在时间控制的系统中,先验地知道,在开始时刻112,特定的应用任务必须开始其
计算。由于这种先验知识,操作系统可以已经在时刻111开始计算控制寄存器的新内容。
[0062] 在操作系统的计算任务以历时105计算完成之后,操作系统在后续区间106中用验证任务来验证控制寄存器的内容。该验证在作为新应用任务的先验已知的开始时刻的时刻
112结束。在应用任务的执行时间107之后,应用任务产生其结果。该结果可以被传递给执行
器或者帧中的后续任务。这在时刻113发生。
[0063] 时刻111根据以下的算式而得到:
[0064] 时刻111=时刻112–(操作系统的计算任务的历时105+验证任务的历时106)
[0065] 与事件控制ET的操作系统相比,其中对于应用的功能而言重要的执行历时ET为
[0066] 执行历时ET=(操作系统的计算任务的历时105+验证任务的历时106+应用任务的历时107)
[0067] 可以在时间控制(TT)的操作系统中通过应用任务的开始时刻的先验知识将对于应用的功能而言重要的执行历时TT减小到
[0068] 执行历时TT=(应用任务的历时107)
[0069] 通过缩短帧内任务的执行历时,在时间控制的系统中减少了帧的总执行历时,这导致控制系统质量的改善。
[0070] 所引用的文献:
[0071] [1]Kopetz,H.的“实时系统,用于分布式嵌入式应用的设计原理”施普林格出版社,2011年。
[0072] [2]Palix,N等人,LINUX 2.6中的错误,ACM计算机系统期刊,第32卷,第2册,第4.1‑4.41页,2014年6月。