【技术领域】
本发明涉及一种用于监视能够在平台上执行的至少一个软件应用的方法,该平台包括每个软件应用在其执行期间能够访问的资源,该方法由电子监视设备实现。
本发明还涉及一种包括软件指令的计算机程序,该软件指令在由计算机执行时实现这种方法。
本发明还涉及一种用于监视能够在平台上执行的至少一个软件应用的电子监视设备,该平台包括每个软件应用在其执行期间能够访问的资源。
本发明还涉及一种电子航空电子(avionics)系统,包括:能够存储至少一个航空电子软件应用的存储器;能够执行每个航空电子软件应用的平台,该平台包括每个软件应用在其执行期间能够访问的资源;以及能够监视每个航空电子软件应用的这种电子监视设备。
背景技术:
本发明涉及计算机平台,特别是嵌入式平台,特别是嵌入式航空电子平台的鉴定领域。然后,本发明涉及在这种平台上,特别是对于航空电子平台,例如使用一个或多个多核处理器执行的软件应用的操作的监视。
本发明更具体地涉及关键系统领域,并且本发明试图保证被称为关键软件应用的软件应用的正确操作,关键软件应用在安全性方面对相关系统(诸如电子航空电子系统)具有重大影响。这些关键软件应用(也称为关键功能)通常必须在给定的时间量内以限定的时间限额(temporalallowance)执行。相反,被称为非关键的其他软件应用在安全性方面对相关系统影响较低或没有影响,于是它们的执行可以随时间推移至少部分偏移,而不会损害关联系统的正常工作。
当在同一平台上,尤其是通过同一单核或多核处理器,执行多个软件应用时,通常当平台的资源可能由数个软件应用同时使用时,在多种背景下,即,在一方面,在安全性方面影响很小或没有影响的背景下,在另一方面,在安全性方面影响很大且具有严格执行期限的背景下,就会出现困难。
因此,已知通过设计避免在给定的时间执行时刻在关键软件应用和非关键软件应用之间共享平台资源。
但是,有时无法保证不会发生这种资源共享,尤其是使用一个或多个多核处理器时。
还已知在每个软件应用的执行结束时提供时间裕度,这些裕度包括最大潜在时移,以防止非关键软件应用的执行延迟又引起在所述非关键软件应用执行之后执行的关键软件应用的执行延迟。
但是,由于存在这种时间裕度,因此该平台未得到充分利用。
技术实现要素:
因此,本发明的目的在于提出一种用于监视能够在平台上执行的至少一个软件应用的方法和设备,这使得有可能提供平台的更好的操作,同时保证软件应用,特别是通常必须在给定的时间以给定的时间限额执行的关键软件应用的良好执行。
为此,本发明涉及一种用于监视能够在平台上执行的至少一个软件应用的方法,所述平台包括每个软件应用在其执行期间能够访问的资源,所述方法由电子监视设备实现并包括以下步骤:
监视由非关键软件应用发送的、旨在访问在所述非关键软件应用与至少一个关键软件应用之间共享的资源的集合的每个访问请求;和
如果由非关键软件应用发送的访问请求是在包括针对共享资源的集合的保留分段的下一关键软件应用的执行之前的缓冲时段期间发送的,则搁置所述访问请求,所述保留分段是一时段,在该时段期间所述至少一个关键软件应用中的一个关键软件应用请求独占访问所述共享资源的集合的资源中的至少一个。
通过根据本发明的监视方法,如果由所述非关键软件应用发送的访问请求是在包括针对所述共享资源的集合的保留分段的下一关键软件应用的执行之前的缓冲时段期间发送的,则搁置所述访问请求,这使得如果所述非关键软件应用接下来不能在包括下一保留分段的下一关键软件应用的执行之前释放所述共享资源的集合,则能够防止非关键软件应用使用所述共享资源的集合。
换句话说,对由非关键软件应用发送的、旨在访问该非关键软件应用与至少一个关键软件应用之间的所述共享资源的集合的每个访问请求的监视以及在一定情况下对由非关键软件应用发送的某些访问请求的前述的搁置,这力图使得仅当关键软件应用需要访问所述共享资源的集合之前能释放所述集合时才授权非关键软件应用访问所述共享资源的集合。
根据本发明的其它有利方面,所述监视方法包括一个或更多个以下特征,单独考虑或根据所有技术上可能的集合考虑:
如果由所述非关键软件应用发送的所述访问请求是在包括针对所述共享资源的集合的所述保留分段的下一关键软件应用的执行期间发送的,则所述访问请求被进一步搁置;
所述缓冲时段的持续时间取决于针对所述共享资源的集合的每个保留分段的最坏情况执行时间;
所述缓冲时段的持续时间优选等于针对所述共享资源的集合的保留分段的最坏情况执行时间中最大持续时间的最坏情况执行时间;
每个最坏情况执行时间优选是在先前的静态分析期间计算的;
所述共享资源的集合包括多个共享资源,并且所述缓冲时段的持续时间针对所述多个共享资源而确定;
每个共享资源从以下组成的组中选择:所述平台的处理器的核心,所述平台的托管由多个执行线程共享的软件对象的存储区域,所述平台的外围设备的一部分;
所述方法还包括以下步骤:向所述非关键软件应用发送信号,通知它其访问请求已被搁置;
每个关键软件应用具有与根据标准do-178修订版b和后续修订版或根据标准arp4754定义的dal等级相对应的关键等级,
所述关键等级等于等级dala或等级dalb,
等级dala和dalb优选地被认为是最关键的;并且
每个软件应用是航空电子软件应用,所述平台旨在被嵌入在航空器中。
本发明还涉及一种包括软件指令的计算机程序,所述软件指令在由计算机执行时执行实行如上限定的方法。
本发明还涉及一种电子设备,用于监视能够在平台上执行的至少一个软件应用,所述平台包括每个软件应用在其执行期间能够访问的资源,所述电子监视设备包括:
监视模块,配置成:监视由非关键软件应用发送的、旨在访问在所述非关键软件应用和至少一个关键软件应用之间共享的资源的集合的每个访问请求;和
保持模块,配置成:如果由所述非关键软件应用发送的访问请求是在包括针对所述共享资源的集合的保留分段的下一关键软件应用的执行之前的缓冲时段期间发送的,则搁置所述访问请求,所述保留分段是一时段,在该时段期间所述至少一个关键软件应用中的一个关键软件应用请求独占访问所述共享资源的集合的资源中的至少一个。
本发明还涉及一种电子航空电子系统,包括:
能够存储至少一个航空电子软件应用的存储器;
能够执行每个航空电子软件应用的平台,该平台包括每个软件应用在其执行期间能够访问的资源;和
用于监视每个航空电子软件应用的电子监视设备,该电子监视设备如上限定。
【附图说明】
通过阅读以下描述,本发明的这些特征和优点将变得更加清楚,以下描述仅作为非限制性示例提供并参考附图进行,在附图中:
图1是根据本发明的电子航空电子系统的示意图,其包括能够存储至少一个航空电子软件应用的存储器,能够执行每个航空电子软件应用的平台以及用于每个航空电子软件应用的电子监视设备,所述平台包括每个软件应用在执行期间可以访问的资源;
图2是用于监视能够在平台上执行的至少一个软件应用的方法的示意性流程图,该方法由图1的监视设备执行;
图3是图2的监视方法的示例性实施方式的流程图;
图4是例示非关键软件应用和两个关键软件应用之间资源共享的图;
图5是例示在关键软件应用为两个非关键软件应用之间的切换功能程序的情况下、根据本发明的监视的实施方式的视图,包括请求在所述关键软件应用的执行之前的缓冲时段之前被发送并且然后未被搁置的第一示例,以及请求在所述缓冲时段期间发送并且然后被搁置的第二示例;以及
图6是类似于图5的视图,用于根据本发明的在非关键软件应用旨在由平台的多核处理器的核心来执行并且关键软件应用适于由所述处理器的另一核心来执行的情况下的监视的实施方式。
【具体实施方式】
在图1中,电子系统10,特别是旨在装载在航空器上的航空电子系统,包括能够存储软件应用14的存储器12和能够执行每个软件应用14的平台16,并且平台16包括每个软件应用14可以在其执行期间访问的资源18并托管至少一个操作系统20,平台16连接到航空器的其他电子系统22,例如航空器的其他电子航空系统。
根据本发明,电子系统10还包括用于监视至少一个软件应用14的电子设备24。
在图1中,为了简化附图,已经在表示资源18的矩形外部示出了存储器12,以便提供对应于软件应用14的软件层的清晰图示,监视设备24也一样,如果适用的话。然而,本领域技术人员当然将理解,存储器12被包括在平台16的资源18中。
航空器优选地是飞机。或者,航空器是直升飞机,或由飞行员远程驾驶的无人机。
在图1的示例中,存储器12能够存储三个单独的软件应用14,电子监视设备24于是配置成监视这些软件应用14中的每一个。
每个软件应用14旨在由平台16执行,然后被设计为向平台16托管的操作系统20发出一个或多个调用,并且还配置成使用平台16的资源18。
当电子系统10是航空器上装载的电子航空电子系统时,每个软件应用14也被称为航空电子功能。软件应用14例如执行不同的功能以执行飞行。
在软件应用14中,一些软件应用被认为是关键的,然后被标记为14c,而其他软件应用被认为是非关键的,被标记为14nc。
于是,本领域的技术人员将理解,附图标记14一般性地表示软件应用,无论它是否涉及关键应用,并且附图标记14c具体表示关键软件应用,而附图标记14nc具体表示非关键应用。
关键软件应用14c是指必须在给定的时间量内以限定的时间限额执行的软件应用。关键软件应用14c通常在安全性方面对相关系统,例如,航空电子系统10,产生重大影响,并且例如是涉及航空器的制动系统或飞行管理系统的应用。
相反,非关键软件应用14nc是指其执行可以至少部分地在时间上偏移而不破坏相关系统的正常工作的软件应用。这种非关键软件应用14nc在安全性方面对相关系统,例如航空电子系统10,具有很小的影响,甚至没有影响。
每个关键软件应用14c例如具有与根据标准do-178修订版b和随后的修订版或根据标准arp4754定义的dal等级相对应的关键等级。
根据该示例,每个关键软件应用14c于是优选地具有等于等级dala或等级dalb的关键等级,等级dala和等级dalb被认为是最关键的等级,并且每个非关键软件应用14nc则具有等于等级dalc,等级dald或等级dale的关键等级,等级dalc至等级dale被认为是最不关键的。
在雷达系统的示例中,关键软件应用14c于是将例如涉及对来自传感器的数据进行模式计算,这种计算的执行必须在给定的时间量内以预定的时间限额进行,否则,此模式计算的延迟会导致缺少雷达图像,这对操作产生了很大影响。相反,用于雷达系统的维护人机界面的显示是非关键软件应用14nc,维护数据显示的延迟影响很小,这种维护数据的显示在航空器的飞行期间并非必要。
平台16特别地旨在装载在航空器上。平台16例如是由与一个或多个处理器,例如多核处理器,相关联的一个或几个存储器组成的信息处理单元。
本发明适用于不同类型的软件架构,特别是适用于所谓的对称多处理(smp)架构或非对称多处理(amp)架构。
平台16的资源18是能够被提供给软件应用14的物理或逻辑元件。
资源18例如按以下类别分布:
数据处理类型的资源。这种资源例如包括一个或几个处理器,例如单核处理器或各自具有几个不同的核心的多核处理器;
大容量存储器类型的资源;
输入和输出类型的资源;
特定于航空电子网络的资源。这种资源例如是arinc664网络的通信路由器;和
图形类型的资源,也就是说,允许显示的资源,例如屏幕。
在图1的示例中,就数据处理类型的资源而言,平台16包括具有几个不同核心的多核处理器26。就大容量存储器类型的资源而言,平台16包括大容量存储器27,就输入/输出类型的资源而言,平台16包括外围设备28。
对于每个非关键软件应用14nc,确定在所述非关键软件应用14nc的执行期间在所述非关键软件应用14nc与至少一个关键软件应用14c之间共享的资源18的集合30。然后,将在所述非关键软件应用14nc与至少一个关键软件应用14c之间共享的资源18称为共享资源,并标记为18s,如图4所示。
然后,本领域技术人员将理解,附图标记18一般性地表示资源,而不管它是否涉及共享资源,并且附图标记18s具体地表示共享资源。
例如,通过对能够在平台16上执行的软件应用14的设计进行静态分析,来确定每个非关键软件应用14nc的共享资源18s的集合30。
每个共享资源18s例如选自由以下组成的组:平台的处理器26的核心,平台的存储器27的托管由多个执行线程共享的软件对象的区域(也称为存储区域),以及平台16的外围设备28的至少一部分。
托管由多个执行队列共享的软件对象的平台的存储器区域例如是这样的队列:其中要进入的第一个元素也是第一个退出,也称为fifo(先进先出),共享区域,对象的状态,全局变量等。
外围设备28的至少一部分是例如一个或几个高速缓冲存储器,usb端口,串行端口,视频卡,网卡等。
操作系统20例如是根据arinc653标准的操作系统,或者是posix操作系统,或者是管理程序,或中间设备。
于是,本领域技术人员将理解,操作系统20将被广义地理解,并且更一般地是至少一个系统软件程序的集合,被设计为向每个应用14提供不同类型的服务。
如图1中以阴影线所示,电子监视设备24优选地能够直接由平台16执行。监视设备24于是例如优选地采用集成到操作系统20中的监视功能的形式。
在图1中同样示出的变型中,电子监视设备4与平台16分离,并且包括例如由与存储器38相关联的处理器36组成的信息处理单元34。
电子监视设备24包括监视模块40,监视模块40配置成监视由相应的非关键软件应用14nc发送的、旨在访问所述非关键软件应用14nc与至少一个关键软件应用14c之间的共享资源18s的相应集合30的每个访问请求。
电子监视设备24包括保持模块42,该保持模块42配置成:如果由非关键软件应用14nc发送的访问请求是在包括针对共享资源18s的集合30的保留分段46的下一关键软件应用14c的执行之前的缓冲时段44期间发送的,则搁置该请求。保留分段46,也称为关键分段,是期间相应的软件应用14,例如下一关键软件应用14c,请求独占访问所述共享资源集合30中的至少一个资源18s的时段。
作为可选的补充,电子监视设备24包括发送模块48,发送模块48配置成向非关键软件应用14nc发送信号,通知非关键软件应用14nc其访问请求(如果适用)已经由保持模块42搁置。
在图1的示例中,无论监视设备24与平台16分离还是由平台16托管并执行,监视模块40、保持模块42以及可选的发送模块48均被制成为可以由处理器,例如,当监视设备24与平台16分离时,处理器32,执行的软件或软件组件形式。监视设备24的存储器34于是能够存储监视软件和保持软件,监视软件配置成:监视由相应的非关键软件应用14nc发送的、访问所述非关键软件应用14nc与至少一个关键软件应用14c之间的共享资源18s的相应集合30的每个访问请求;保持软件配置成:如果由非关键软件应用14nc发送的请求是在包括针对所述共享资源18s的集合30的相应保留分段46的下一关键软件应用14c的执行之前的缓冲时段44期间发送的,则搁置该请求。作为可选的附加,监视设备24的存储器34于是能够存储包括发送软件,该发送软件配置成向相应的非关键软件应用14nc发送信号来通知它其访问请求(如果适用)已经被保持软件搁置。监视设备24的处理器32于是能够执行监视软件和保持软件以及作为可选的附加的发送软件。
在未示出的变型中,监视模块40和保持模块42以及作为可选的附加的发送模块48各自以可编程逻辑部件的形式(例如,fpga(现场可编程门阵列))或专用集成电路(例如,asic(专用集成电路))的形式制成。
当监视设备24以一个或几个软件程序的形式(即,以计算机程序的形式)制成时,它还能够存储在计算机可读介质上(未示出)。例如,计算机可读介质是适合于存储电子指令并且能够与计算机系统的总线联接的介质。作为示例,可读介质是软盘,光盘,cd-rom,磁光盘,rom存储器,ram存储器,任何类型的非易失性存储器(例如,eprom、eeprom、闪存、nvram)、磁卡或光卡。然后将包括软件指令的计算机程序存储在可读介质上。
监视模块40配置成监视由相应的非关键软件应用14nc发送的、旨在访问共享资源18s的集合30的每个访问请求。监视模块40具体地配置成监视旨在获得针对所述共享资源18s的集合30的相应保留分段46的每个锁获取(lockacquisition),也就是说,配置成监视由非关键软件应用14nc发送的、请求独占访问所述共享资源集合30的资源18s中的至少一个的每个锁获取。
由相应的非关键软件应用14nc发送的每个锁获取例如被发送到操作系统20,监视模块40于是配置成与操作系统20交互,以便监视由非关键软件应用14nc发送的锁获取的集合。
保持模块42配置成:如果由非关键软件应用14nc发送的访问请求是在包括针对所述共享资源集合30的相应保留分段46的下一关键软件应用14c的执行之前的缓冲时段44期间发送的,则搁置该请求。
保持模块42于是例如依次配置成旨在:在相应的非关键软件应用14nc保留分段的每个开始处,验证与对应于所述保留分段46的共享资源集合30相关联的相应的缓冲时段44是否已经开始,并且如果适用,取消由非关键软件应用14nc完成的对保留分段46的锁定,然后搁置由非关键软件应用14nc发送的针对所述共享资源集合30的访问请求。换句话说,在包括所述共享资源集合30的保留分段46的下一关键软件应用14c的执行之前的缓冲时段44定义了禁止区域50,在禁止区域50期间,非关键软件应用14nc不能保持对于所述共享资源集合30的锁定,并且于是不能访问所述共享资源集合30。非关键软件应用14nc对所述共享资源集合30的独占访问于是推迟到该禁止区域50的末尾。
保持模块42优选地还配置成针对预先确定并由根据本发明的监视设备24监视的共享资源的每个集合30计算缓冲时段44的持续时间。
对于共享资源的每个集合30,缓冲时段44的持续时间例如取决于针对所述共享资源的集合30的每个保留分段46的最坏情况执行时间(wcet)。
对于共享资源的每个集合30,缓冲时段44的持续时间优选地等于针对所述共享资源的集合30的保留分段46的最坏情况执行时间中的最大持续时间的最坏情况执行时间。
每个最坏情况执行时间wcet优选地在先前的静态分析期间被计算。
在一种变型中,针对共享资源的每个集合30的缓冲时段44的持续时间是在先前的静态分析期间计算的,而不是由保持模块42计算的。
[表1]
上面的表1示出了根据该优选的缓冲时段44的持续时间的计算,具有两个共享资源集合30,每个共享资源集合包括单个共享资源18s。对于具有称为“资源1”的共享资源18s的第一集合30,最大持续时间的最坏情况执行时间wcet为400ns,并且对应于保留分段或关键分段1.2,因此针对第一集合30的缓冲时段44的持续时间为400ns。类似地,对于具有称为“资源2”的共享资源18s的第二集合30,最大持续时间的最坏情况执行时间wcet是关键分段2.2并且等于80ns,因此针对第二集合30的缓冲时段44的持续时间等于80ns。
另外,共享资源的至少一个集合30包括多个共享资源18s,于是针对所述多个共享资源18s确定对应集合30的缓冲时段44的持续时间。
根据该附加,在优选的情况下,缓冲时段44的持续时间等于针对所述共享资源的集合30的保留分段46的最坏情况执行时间wcet中最大持续时间的最坏情况执行时间wcet,于是最大持续时间是针对多个共享资源18s的保留分段46的集合的最大持续时间来进行考虑。
因此,在上述表1的示例中,假设根据该附加,表1对应于由称为“资源1”和“资源2”的资源形成的几个共享资源的单个集合30,并且针对两个共享资源18s的六个保留分段46中最坏情况执行时间wcet的最大持续时间对应于关键分段1.2并且等于400ns,从而,针对两个共享资源的集合30的缓冲时段44的持续时间于是,例如根据前述优选计算,等于400ns。
作为可选的附加,保持模块42还配置成:如果由非关键软件应用14nc发送的访问请求是在包括针对所述共享资源的集合30的保留分段46的下一关键软件应用14c的执行期间发送的,则搁置该访问请求。
根据该可选的附加,由于该搁置而导致的禁止区域50于是对应于一时段,该时段包括在下一关键软件应用14c的执行之前的缓冲时段44以及该下一关键软件应用14c的执行本身,如图5和6的示例所示。
换句话说,禁止区域50的持续时间或者仅等于缓冲时段44的持续时间,或者等于缓冲时段44的持续时间与下一关键软件应用14c的执行的持续时间之和。
本领域技术人员将理解,除了该持续时间之外,禁止区域50还由起点和步幅限定,起点对应于缓冲时段44的起点,也就是说,对应于下一关键软件应用14c的执行开始减去缓冲时段44的持续时间的时刻,并且所述步幅对应于与该缓冲时段44和该禁止区域50相关联的共享资源的集合30。
发送模块48配置成向非关键软件应用14nc发送信号,通知该非关键软件应用14nc其访问请求已由保持模块42搁置。然后,该信号的接收允许所关注的非关键软件应用14nc评估该搁置对其操作的影响,尤其是查看是否在这些操作裕度中设置了此搁置,以便可以记录然后忽略保持信号;或此搁置是否会引起非关键软件应用14nc的异常行为,在这种情况下,所述非关键软件应用14nc例如将生成关联的错误消息。
现在将使用图2和图3来说明根据本发明的监视设备24的操作,图2示出了根据本发明的用于监视至少一个软件应用14的方法的示意性流程图,该方法由电子监视设备24实现,并且图3示出了使用锁定机构的监视方法的示例性实施方式的流程图。
在步骤100期间,监视设备24经由其监视模块40监视由相应的非关键软件应用14nc发送的、旨在访问所述非关键软件应用14nc与至少一个关键软件应用14c之间的共享资源的相应集合30的每个访问请求。
监视设备24接下来在步骤110期间验证是否在包括针对所述共享资源的集合30的相应保留分段46的下一关键软件应用14c的执行之前的相应缓冲时段44期间发送了所发送的请求,然后将上述发送的访问请求(如果适用)搁置。然而,如果访问请求是由非关键软件应用14nc在所述缓冲时段44之外发送的,特别是在所述缓冲时段44之前发送的,则保持模块42不会搁置所述访问请求,并且非关键软件应用14nc于是在没有保持的情况下访问共享资源的集合30。
作为可选的附加,并且如果非关键性软件应用14nc发送的请求先前已在步骤110期间被搁置,则监视设备24经由其发送模块48发送对应于非关键性软件应用14nc的信号,通知它其访问请求已经在上一步骤110期间被搁置。
监视设备24接下来返回到步骤100,以便监视由非关键软件应用14nc发送的下一请求。
图3示出了在经由操作系统20使用锁定机制以能够为共享资源的相应集合30保留关键分段46的情况下根据本发明的监视方法的实施方式。
在图3中,在初始步骤200期间,监视设备24经由其监视模块40确定希望针对所述共享资源集合30保留关键分段46的软件应用14是关键软件应用14c还是非关键软件应用14nc。
如果希望保留关键分段46的软件应用14是非关键软件应用14nc,则监视设备24接下来经由操作系统20执行对所述共享资源集合30中的与针对由所述软件应用14进行独占访问的所述关键分段46相对应的资源的锁定,然后直接进入随后的步骤220,在步骤220期间,监视设备24经由其保持模块42确定禁止区域50是否针对所述关键分段46在进行中,也就是说,确定由非关键软件应用14nc发送的请求是否是在包括所述共享资源集合30的所述保留分段46的下一关键软件应用14c的执行之前的缓冲时段44期间或者作为可选附加在所述下一关键软件应用14c的执行期间被发送。
在该测试步骤220结束时,如果保持模块42确定在禁止区域50期间,也就是说,在所述缓冲时段44期间或作为可选附加在包括所述关键选择46的下一关键软件应用14c的执行期间,所述访问请求由非关键软件应用14nc发送,则监视设备24接下来执行先前描述的保持步骤110,然后可选地执行用于将信息信号发送到非关键软件应用14nc的步骤120,然后在步骤230期间例如经由触发时间延迟观察保持时间,然后返回到步骤210,接下来是步骤220以查看在该保持之后禁止区域50是否仍在进行。
在该示例中,保持步骤110于是对应于先前在步骤210期间完成的对关键分段46的锁定的取消,也就是说,经由操作系统20锁定释放。
在测试步骤220的结尾,如果相反,则保持模块42确定该请求在禁止区域50之外被发送,也就是说,该请求并非在相应的缓冲时段44期间发送;作为可选附加,如果不是在执行所述下一关键软件应用14c期间,则监视设备24进行下一步骤240,以便记录此保留分段46,特别是已获得对此保留分段46的独占访问的软件应用14的标识符。
继步骤240之后,接下来执行步骤250,步骤250对应于保留分段46的执行,也就是说,所述软件应用14对所述共享资源集合30的相关资源18的独占访问。
最后,在步骤260期间,在保留分段46执行结束时,相应的软件应用14通过(经由操作系统20)释放有关资源的锁定来释放保留分段46,然后,所述软件应用14不再访问这个或这些资源18s。
在初始步骤200结束时,相反地,如果监视设备24确定请求访问的软件应用14是关键软件应用14c,则监视设备24在步骤210期间还通过操作系统20锁定保留分段46,然后直接转到步骤240,然后是先前描述的步骤250和260,而不执行测试步骤220。
换句话说,如果监视设备24确定针对与关键分段46相对应的资源的访问请求是由关键软件应用14c发送的,则监视设备24将不会搁置该访问请求。
换句话说,如果请求是在相应的缓冲时段44期间发送的,则由保持模块42进行的保持仅与相应的非关键软件应用14nc有关,而与关键软件应用14c无关。
图5示出了当非关键软件应用14nc和关键软件应用14c能够在同一处理器核心上执行时,例如当关键软件应用14c为两个连续的非关键软件应用14nc之间的切换功能时,根据本发明的监视的第一实施方式。
在图5中,第一示例e1于是为一个示例:其中在关键软件应用14c的执行之前的缓冲时段44的开始之前,包括处理b1的第一非关键软件应用14nc请求独占访问与关键软件应用14c共享的资源的相应集合30中的资源18中的至少一个,其中关键软件应用14c在其两个处理操作a1,a2的第一个a1期间包括保留分段46。
在该第一示例e1中,由于非关键软件应用14nc发送的访问请求是在缓冲时段44之前或在禁止区域50之外发送的,因此该访问请求不被搁置,该非关键软件应用14nc的处理b1于是可以独占访问与保留分段46相关联的资源,并且然后该保留分段46接下来被释放,由于考虑了缓冲时段44,释放是在下一关键软件应用14c执行其第一处理操作a1期间需要保留分段46之前。
在该第一实施方式中,切换功能的第一处理操作a1对应于所有进行中的活动的中断,然后保存运行环境(context),然后切换功能的第二处理操作a2对应于恢复先前保存的运行环境,从而,下一非关键软件应用14nc可以在与其相对应的运行环境下来执行。
根据该第一示例e1,下一关键软件应用14c在第一时刻t1无时移地执行其包括关键分段46的第一处理操作a1,然后在第二时刻t2执行其第二处理操作a2,随后,核心切换到后续非关键软件应用14nc的执行,使得它可以正常执行其处理操作b2。
在图5中,第二示例e2接下来示出了另一个示例:其中,这次,由非关键软件应用14nc的处理b1针对保留分段46发送的请求是在包括针对所述共享资源集合30的保留分段46的下一关键软件应用14c的在其处理a1期间的执行之前的缓冲时段44期间发送的。非关键软件应用14nc的处理b1发送的访问请求于是被搁置,如图示前述的保持步骤的方框110所示,非关键软件应用14nc的处理b1于是不能在那一刻访问与所述关键分段46相关联的所述共享资源集合30的资源。
根据该第二示例e2,下一关键软件应用14c于是正常地执行,也就是说,在相同的第一时刻t1无延迟或无时移地执行,其包括关键分段46的处理操作a1,在相同的第二时刻t2执行第二处理操作a2,然后核心切换到随后的非关键软件应用14nc的执行,以便它可以执行其处理操作b2。
本领域的技术人员于是将理解,在该第二示例e2中,非关键软件应用nc的处理b1在该迭代期间不能访问关键分段46,因为该访问被搁置。实际上,如果非关键软件应用14nc在其处理b1的时刻可以访问该关键分段46,那么对与该关键分段46相关联的资源的独占访问接下来可能会导致下一关键软件应用14c执行的延迟,也就是说,第一时刻t1和第二时刻t2的时移,而这是必须被禁止的。
图6示出了根据本发明的监视的第二实施方式,根据该实施方式,关键软件应用14c能够在平台16的多核处理器的第一核心c0上执行,而非关键软件应用14nc能够在所述处理器的第二核心c1上执行,关键软件应用14c和非关键软件应用14nc仍然具有至少一个共同的共享资源18s,例如平台16的存储器27的存储区或外围设备28的一部分,对应于图6所示的关键分段46。
在该第二实施方式中,第三示例e3于是为这种示例:其中非关键软件应用14nc的关键分段46在关键软件应用14c的执行之前的缓冲时段44之前开始,并且访问请求由非关键软件应用14nc在关键分段46的开始时发送,以便使对该关键分段46相关联的资源18s的独占访问于是不被保持模块42搁置。然后,非关键软件应用14nc独占访问与所述关键分段46相关联的资源。非关键软件应用14nc接下来在包括所述保留分段46的下一关键软件应用14c之前释放关键分段46,该关键分段46可以在下一次执行之前释放的事实是由于考虑到缓冲时段44。
在该第二实施方式中,第四示例e4示出了另一个示例:其中非关键软件应用14nc的关键分段46这次在包括所述关键分段46的下一关键软件应用14c的执行之前的缓冲时段44期间开始。然后,由非关键软件应用14nc在其关键分段46的开始处发送的请求由保持模块42搁置,如该第四示例e4中的方框110示意性所示,这样,非关键软件应用14nc不能在此时刻访问与该关键分段46相关联的资源18s。然后,这使得可以降低以下风险:在包括针对相同的共享资源集合30的关键分段46的下一关键软件应用14c的执行期间,所述关键软件应用14c对与该关键分段46相关联的资源18s的独占访问将由于非关键软件应用14nc而被延迟。
本领域技术人员将进一步观察到,在该第四示例e4中,由非关键软件应用14nc在其关键分段46的开始处最初发送的访问请求被搁置,直到包括所述关键分段46的关键软件应用14c的执行结束为止,如方框110示意性示出的,在关键软件应用14c的执行结束的同时结束。在该禁止区域50的末端,非关键软件应用14nc然后获得对与所述分段46相关联的资源18s的独占访问,如由表示非关键软件应用14nc的分段46的箭头示意性所示,其在关键软件应用14c执行结束且禁止区域50结束后继续执行。
然后,本领域的技术人员将理解,如果非关键软件应用14nc发送的访问请求是在相应的缓冲时段44期间发送的,则该访问请求不会被拒绝,而只是由保持模块42搁置,优选直到包括针对相同共享资源集合30的关键分段46的关键软件应用14c的执行结束为止。
因此,根据本发明的监视设备24和监视方法使得由于缓冲时段44而能够防止由非关键软件应用14nc在不适当的时刻,也就是说,在离包括与非关键软件应用14nc发送访问请求所针对的相同的共享资源集合30的相应保留分段46的下一关键软件应用14c太近的时刻,发送的访问请求接下来延迟下一关键软件应用14c的执行。如果适用,则根据本发明的监视设备24然后将由非关键软件应用14nc发送的所述访问请求搁置,以便优先执行下一关键软件应用14c并避免其执行的延迟。然后,非关键软件应用14nc可以在该关键软件应用14c的执行结束时独占访问所述集合30的共享资源18s。
于是这使得可以提供平台16的更好的操作,特别是必须在给定的时间量以限定的时间限额执行的关键软件应用14c的更好的操作,同时提供包括非关键软件应用在内的所有软件应用的良好执行,因为非关键软件应用14nc发送的访问请求(如果适用)不会被拒绝,而只是被搁置。
作为可选的附加,向非关键软件应用14nc发送信号,通知它其访问请求已被搁置,如果适用,一方面可以通知非关键软件应用14nc该搁置,另一方面,可以评估该搁置对其操作的影响。
同样作为可选的附加,如果由非关键软件应用14nc发送的访问请求是在包括针对所述共享资源集合30的所述保留分段46的下一关键软件应用14c的执行期间发送的,则该访问请求的搁置也使得可以通过在由缓冲时段44产生的禁止区域50中还包括对应于关键软件应用14c的执行的时段,进一步改善平台16的操作。
同样作为可选的附加,根据针对所述共享资源集合30的每个保留分段46的最坏情况执行时间wcet来对缓冲时段44的持续时间的计算,也可以通过设法保证不管所考虑的每个保留分段46的执行时间,缓冲时段44的持续时间将足以防止由非关键软件应用14nc针对所述共享资源集合30的保留分段46的执行接下来延迟包括针对所述共享资源集合30的保留分段46的下一关键软件应用14c的执行,使得可以进一步改善平台16的操作。
因此,可以看到,根据本发明的监视方法和监视设备24使得可以通过改善软件应用14的执行,特别是通常必须在给定的时间量以限定的时间限额执行的关键软件应用14c的执行,来提供平台16的更好的操作。
1.一种用于监视能够在平台(16)上执行的至少一个软件应用(14)的方法,所述平台(16)包括每个软件应用在其执行期间能够访问的资源(18),所述方法由电子监视设备(24)实施并包括以下步骤:
监视(100)由非关键软件应用(14nc)发送的、旨在访问在所述非关键软件应用(14nc)与至少一个关键软件应用(14c)之间共享的资源(18s)的集合(30)的每个访问请求;和
如果由非关键软件应用(14nc)发送的访问请求是在包括针对共享资源(18s)的集合(30)的保留分段(46)的下一关键软件应用(14c)的执行之前的缓冲时段(44)期间发送的,则搁置所述访问请求(110),所述保留分段(46)是一时段,在该时段期间所述至少一个关键软件应用(14c)中的一个关键软件应用请求独占访问所述共享资源(18s)的集合(30)的资源中的至少一个。
2.根据权利要求1所述的方法,其中,如果由所述非关键软件应用(14nc)发送的所述访问请求是在包括针对所述共享资源(18s)的集合(30)的所述保留分段(46)的下一关键软件应用(14c)的执行期间发送的,则所述访问请求被进一步搁置。
3.根据权利要求1所述的方法,其中,所述缓冲时段(44)的持续时间取决于针对所述共享资源(18s)的集合(30)的每个保留分段(46)的最坏情况执行时间。
4.根据权利要求3所述的方法,其中,所述缓冲时段(44)的持续时间等于针对所述共享资源(18s)的集合(30)的保留分段(46)的最坏情况执行时间中最大持续时间的最坏情况执行时间。
5.根据权利要求4所述的方法,其中,每个最坏情况执行时间是在先前的静态分析期间计算的。
6.根据权利要求1或2所述的方法,其中,所述共享资源(18s)的集合(30)包括多个共享资源(18s),并且所述缓冲时段(44)的持续时间针对所述多个共享资源(18s)而确定。
7.根据权利要求1或2所述的方法,其中,每个共享资源(18s)从以下组成的组中选择:所述平台(16)的处理器的核心,所述平台(16)的托管由多个执行线程共享的软件对象的存储区域,所述平台(16)的外围设备的一部分。
8.根据权利要求1或2所述的方法,其中,所述方法还包括以下步骤:
向所述非关键软件应用(14nc)发送(120)信号,通知它其访问请求已被搁置。
9.根据权利要求1所述的方法,其中,每个关键软件应用(14c)具有与根据标准do-178修订版b和后续修订版或根据标准arp4754定义的dal等级相对应的关键等级。
10.根据权利要求9所述的方法,其中,所述关键等级等于等级dala或等级dalb。
11.根据权利要求10所述的方法,其中,所述等级dala和dalb被认为是最关键的。
12.根据权利要求1或2所述的方法,其中,每个软件应用(14)是航空电子软件应用,所述平台(16)旨在被嵌入在航空器中。
13.一种包括软件指令的计算机程序,所述软件指令在由计算机执行时执行根据权利要求1或2所述的方法。
14.一种电子设备(24),用于监视能够在平台(16)上执行的至少一个软件应用(14),所述平台(16)包括每个软件应用(14)在其执行期间能够访问的资源(18),所述电子监视设备(24)包括:
监视模块(40),配置成:监视由非关键软件应用(14nc)发送的、旨在访问在所述非关键软件应用(14nc)和至少一个关键软件应用(14c)之间共享的资源(18s)的集合(30)的每个访问请求;和
保持模块(42),配置成:如果由所述非关键软件应用(14nc)发送的访问请求是在包括针对所述共享资源(18s)的集合(30)的保留分段(46)的下一关键软件应用(14c)的执行之前的缓冲时段(44)期间发送的,则搁置所述访问请求,所述保留分段(46)是一时段,在该时段期间所述至少一个关键软件应用(14c)中的一个关键软件应用请求独占访问所述共享资源(18s)的集合(30)的资源中的至少一个。
15.一种电子航空电子系统(10),包括:
能够存储至少一个航空电子软件应用(14)的存储器(12);
能够执行每个航空电子软件应用(14)的平台(16),该平台(16)包括每个软件应用(14)在其执行期间能够访问的资源(18);和
用于监视每个航空电子软件应用(14)的电子监视设备(24),该电子监视设备(24)根据权利要求14所述。
技术总结