首页> 中国专利> 具有错误防护以确定控制和命令型的多任务应用实时运行的安全方法

具有错误防护以确定控制和命令型的多任务应用实时运行的安全方法

摘要

本发明涉及实施具有时间同步结构类型管理系统的方法,该系统连接到具有优先执行模式的中央处理单元,对其的访问通过对系统层类型调用的指令来保护。考虑到系统层,应用任务授权的唯一系统层调用包含报告所述任务的控制图表的结点变化。当系统层已认证与如应用的常量表所述的控制图表的运行路径相关的调用合法时,所讨论的系统层在结点执行的所有操作由系统层相关应用的常量表预先确定。在实时运行之前,在微核中执行所考虑的应用的任务列表预排序,当实时运行过程中被系统层调用,这可确保任务列表依照任务的新时间特性顺序更新,尤其是由系统层计算的它们的最早开始时间d(i)和最迟结束时间f(i)。

著录项

  • 公开/公告号CN1488097A

    专利类型发明专利

  • 公开/公告日2004-04-07

    原文格式PDF

  • 申请/专利权人 原子能源局;佛拉玛托姆安珀公司;

    申请/专利号CN01821125.9

  • 发明设计人 V·大卫;J·德尔夸涅;

    申请日2001-11-13

  • 分类号G06F9/48;

  • 代理机构11245 北京纪凯知识产权代理有限公司;

  • 代理人程伟;戈泊

  • 地址 法国巴黎

  • 入库时间 2023-12-17 15:13:52

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2010-01-06

    专利权人的姓名或者名称、地址的变更 变更前: 变更后: 变更前: 变更后: 申请日:20011113

    专利权人的姓名或者名称、地址的变更

  • 2006-10-25

    授权

    授权

  • 2004-06-23

    实质审查的生效

    实质审查的生效

  • 2004-04-07

    公开

    公开

说明书

本发明涉及一种安全方法,用于使一控制系统中控制和命令类型的多任务应用的实时运行确定性,此控制系统包括在定量时间之后发布中断信号的至少一第一时钟,具有至少一个能接收所述时钟中断信号的处理器的中央处理器单元,一主存以及一组用于管理此控制系统输入/输出的外设控制器。

在对各种处理(输入/输出、计算……)的多任务管理的系统中,其中各处理在不同时间变化且需交换数据,所有处理实时同步且一致,则希望能够以确定的方式实时运行处理,即,所有任务相互之间以及与环境之间作用的整体工作情况是唯一且不变的。还希望安全运行实时处理,即包括尽管可能确定存在操作异常时,在确保各任务故障无关的情况下检测和防护异常。

现有多种多任务管理系统。然而,大多数管理系统异步因而不确定。而且,此系统无防止某些故障模式扩散的设计。

尤其,文件FR-A-2 771 828公开了一种安全方法,用于多任务计算机,其中故障检测系统一直通过时间或空间分区来识别合法运行的任务。

依据以上涉及周期顺序类型系统的文件,分区用来限制故障扩散,但在分区间无任何通信,即全级无多任务管理。而且,故障仍可在分区内扩散,这意味着不可能达到最大安全。

因此,文件FR-A-2 771828表明获得确定工作情况与多任务管理矛盾。

本发明试图弥补现有技术的缺陷,尽可能使控制系统更集成化、具有更好的性能且更安全。

尤其,本发明试图依靠计算机获得带有错误防护和错误容许的实时且确定的安全多任务运行。

因此,本发明试图通过显性(时间戳消息)和隐性(时间戳数据流)通信,为周期性和非周期性任务,提供保证多任务应用实时高确定性运行的安全。

以上目的均可通过使控制系统中控制和命令类型的多任务应用能确定性地实时运行的安全方法达到,此方法包括:

至少一第一时钟,在定量时间之后发布中断信号sh

一中央处理器单元(CPU),具有至少一能接收所述时钟中断信号sh的处理器;

一主存;以及

一组控制器,用于控制管理此控制系统输入/输出的外设,

此方法的特征在于它包括以下步骤:

a)对于一给定应用的每个任务,存储由要求调用一系统层的任务的每个时间同步点授权的所有链接,所述链接以一用来监控所述任务调用系统层的运行的控制图表表示,每个控制图表包括一组每个都对应于一控制系统的系统层调用的结点。

b)对于每个任务的控制图表的每个结点,存储调用系统层的特性及其调用参数,包括需要更新的时间参数“最早开始”时间d(i)和“最迟结束”时间f(i);

c)对于每个任务,存储相关图表中的一初始结点;

d)对于给定应用以及在以一时间触发模式开始实时运行之前,初始化代表每个所讨论任务的初始状态的初始结点和初始时刻;

e)对于给定应用以及在以一时间触发模式开始实时运行之前,通过原子微核中的任务预排序列表来初始化每个任务的开始顺序;

f)设置第一时钟,发布构成调用微核的时钟中断信号sh,在应用的第一时刻以时间触发模式开始运行所述应用;

g)在已设置第一时钟之后的普通操作过程中,在每次调用微核时通过微核复位第一时钟;在通过系统层或处理中断信号sh调用微核过程中,微核进入依据任务时间特征,即最早开始时间d(i)和最迟结束时间f(i),以顺序方式更新任务列表的步骤;并且在更新列表之后,微核计算需要唤醒任务的最近未来时刻并依据所述需要唤醒任务且离开微核的最近未来时刻来设置第一时钟;以及

h)当运行一任务时,只有当所述任务的控制图表到达一结点时才调用系统层并将结点数量作为一变元传送。依据所运行任务的控制图表,对系统层的输入进行检测以识别对应于前述系统层调用的结点的链接是否被授权,假如链接未被授权则在系统层装入异常处理而假如链接被授权则继续运行,采用系统层调用微核来更新所运行任务的时间参数包括最早开始时间d(i)和最迟结束时间f(i),并继续当前任务的普通运行直到所述任务又到达其控制图表的一结点。

尤其,本发明的安全方法可应用于还包括一用于控制地址访问权的存储保护单元的控制系统,通过以专用方式产生一有效地址av给定访问或者向CPU发布一表示已授权寻址的例外信号se,存储保护单元响应CPU提供的一请求地址ad和处理器运行内容的权利来访问可寻址存储空间,其中还包括以下步骤:

i)在整个预备阶段,对于一给定应用,存储微核和每个应用任务及其系统层中扩展的每个存储段的访问权,从而依据构成任务的指令是应用中的特殊代码或是构成任务扩展的指令是系统层的一般代码来构建第一和第二运行内容;

j)对于一给定应用且在以时间戳操作模式开始实时运行之前,初始化微核内容以及每个任务及其系统层扩展的第一和第二运行内容;以及

k)在任务运行的过程中,通过用于进入运行特许模式从而可从任务运行内容转到在系统层中任务扩展的运行内容的指令调用系统层,并且在证实对应于前述系统调用的结点链接已被授权之后,以及在采用系统层调用微核从而更新任务的时间参数之后,通过用于返回到可从在系统层中扩展的运行内容转到任务运行内容运行的非特许模式的指令返回任务代码。

最好,每个应用任务的运行内容不成对相交。

依据本发明方法的特有特征,系统层中应用任务的运行内容的扩展不允许以应用代码写入到任务的运行内容中。

任务控制图表的编码防止了在用于控制应用任务运行的机制及所述任务本身运行中普通原因导致的任何故障。

本发明的方法还包括以下步骤:

l)在整个预备阶段,对于每个给定应用以及在所述任务中所有被授权的链接,存储构成用于从任务控制图表中一结点到其它结点所需最大运行时间的上确界的一时间定额,每个时间定额覆盖了运行任务特定指令以及运行任务扩展系统层的一般代码的时间;以及

m)在普通操作过程中,在设置第一时钟之后,若调用以时间中断信号sh触发的微核并复位第一时钟,检查以验证触发微核调用的时间中断信号是否与试图违反时间定额相关,并且如果相关,则微核运行异常处理,如果时间中断信号sh与试图违反时间定额不相关,则微核更新任务列表,且在更新任务列表之后,计算任务需要被唤醒的最近未来时刻以及分配给运行在现有微核中的任务的时间定额期满的未来时刻,以及当更新列表时确定时间的未来时刻,而且,微核将第一时钟设置成更接近所述未来时刻以唤醒任务或检测到由于异常操作而试图违反时间定额,并且在设置第一时钟之后离开微核。

当在控制系统中实现第二时钟时,并依据本发明的一特有特征,微核访问第二时钟以通过比较时间信号来监控第一时钟触发的时间流。

本发明的使控制和命令类型的多任务应用通信的实时运行确定性的安全方法还包括以下步骤:

n)在整个预备阶段,对于一给定应用的每个任务,存储其用于时间同步和与应用中其它需要调用系统层的任务通信的结点的所有授权链接,这些授权链接用一用于所讨论任务调用的系统层运行的控制图表表示,每个图表包括一组每个对应于系统层调用的结点;

o)存储每个需用于在任务间交换数据的缓存区,规定其大小,其包含的元素大小,其位置或基地址,以及可确认通信所需的信息传送的缓存区之间的关系;

p)对于每个缓存区,存储其元素的初始值;

q)对于给定应用且在开始以时间触发操作模式实时运行之前,以预先存储在存储器中的值初始化缓存区的元素值;以及

r)在任务运行过程中,当到达控制图表的一结点时调用系统层且在依据当前运行任务的控制图表证实对应于前述系统层调用的结点链接被授权之后,按照先前所存储调用的特性连续更新缓存区,并按需对所运行任务的时间参数,包括最早开始时间d(i)和最迟结束时间f(i)执行附加更新。

依据本发明的一特有特征,在系统层中,只有缓存区允许被一应用的任务运行内容的扩展来共享,一用于对应于发送消息的动态通信的给定缓存区只能被两个任务运行内容扩展共享,而一用于对应于一时间戳数据流的静态通信的给定缓存区被超过两个任务运行内容扩展共享,但它只能被拥有系统层中内容扩展的任务修改。

本发明的安全方法适用于高度涉及安全性的控制和命令应用。

尤其,本发明的方法可用于安全级为1E的核反应堆控制和命令系统。

本发明到达其它特征和优点体现在以下参照附图对特殊实施例的描述中,其中:

图1是实施本发明安全方法的控制系统体系结构的简图;

图2是表示依据本发明方法,与系统层和微核相关的代码如何进一步分配的图;

图3是一对应于处理依据本发明的安全方法中实时任务一实施例的流程图;

图4是一对应于如图3流程图的控制图表;

图5是采用依据本发明的安全方法处理如图3和4的实时任务实施例的相关时间值和时序表的一实施例;

图6是如图4控制图表的结点表格,包括在最早开始时间d(i)和最迟结束时间f(i)所执行操作的描述;

图7是对应于采用依据本发明的安全方法处理用于与第二任务通信的第一实时任务实施例的流程图;

图8是对应于如图7流程图的控制图表;

图9是对应于处理用于与如图7流程图所示的第一任务通信的第二实时任务实施例的流程图;

图10是对应于如图9流程图的控制图表;

图11是采用依据本发明的安全方法处理如图7至10的实时任务互通实施例的相关时间值和时序表的实施例;

图12和13是如图8和10的控制图表的结点表格,包括在最早开始时间d(i)和最迟结束时间f(i)对消息所执行操作的描述;

图14是表示在本发明方法的一实施例中并依据运行一任务、系统层或是微核,处理器对存储段的访问权的详细表格;

参照表示用于实施本法明安全方法的控制系统的简单类型的体系结构实施例的附图1开始描述。

控制系统包括至少一第一时钟14,在可编程量时间之后经由一线路22传输一中断信号sh。一中央处理器单元(CPU)10具有至少一能经由一线路21接收数据且经由线路22接收所述时钟中断信号sh的处理器。

CPU 10用于经由线路23、24发送地址信号至一包括只读存储器(ROM)12和随机存储器(RAM)13的主存。

ROM 12至少包含包括应用程序的信息(A)和包括应用的常量表和数据的信息(B)。

RAM 13包含应用程序的工作变量数据。

外设1至N的控制器11至1N用于提供控制系统输入输出的实时管理。

一第二时钟15可用于提供对时钟14正确操作的额外监控。

控制系统还可包括一用于实施寻址访问权的存储器保护单元16。

从一由CPU 10经由线路23提供至存储保护单元16的请求地址ad,以及从处理器各运行内容访问可寻址存储空间的权利(D)开始,正如连接ROM 12和存储保护单元16的线路26所提供的,所述存储保护单元16以专用方式经由连接到存储器12和13、外设控制器11至1N以及时钟14和15的线路24产生一有效地址av给定访问,或者经由线路25向CPU发布一表示未被授权寻址的例外信号sc

存储保护单元16可由标准存储管理单元(MMU)机构构成,其中MMU本身可嵌入到CPU 10的处理器中。

CPU 10的处理器,能够接收至少一时钟中断信号sh和一标识未授权寻址的例外信号se,处理一运行特许模式,此模式通过,例如可由一转移指令或“自陷”构成的,“调用系统层”类型的指令防止访问。

通常,本发明涉及管理系统,无论任务本身是周期性或非周期性的,此管理系统为带有显性通信(时间戳消息)和隐性通信(时间戳数据流)的用于实时安全确定性多任务的具有时间触发体系结构(TTA)类型。

尤其,依据本发明的安全方法,采用特定方法管理通过调用特许模式运行来调用控制系统的系统层将有可能检测并发现错误从而认证工作情况为确定性的且可预测的。

在本发明中,管理系统层调用如下:

i/所讨论的应用任务授权给系统层的唯一系统层调用包含报告所讨论任务的控制图表的结点变化;

ii/然后,系统层通过将每个调用与应用常量表中所述的控制图表的运行路径进行比较,以鉴定每个调用的合法性;以及

iii/当调用合法时,所讨论的系统层在结点执行的所有操作由系统层相关应用的常量表预先确定。

所讨论的一应用的任务列表在实时运行原子微核之前已被预先排序,当随后在实时运行过程中系统层调用时,原子微核用于顺序更新具有任务新时间特征的应用的任务列表,尤其系统层计算出来的它们的最早开始时间d(i)和最迟结束时间f(i)。

本发明的基本安全方法实质上包括以下步骤:

a)对于一给定应用的每个任务,存储需要调用系统层的任务的每个时间同步点授权的所有链接,所述链接表示为用于监控所讨论任务调用系统层的运行的控制图表,每个控制图表包括一组结点,每个结点对应于一控制系统的系统层调用;

b)对于每个任务的控制图表的每个节点,存储系统层调用特性和调用参数,包括能更新“最早开始”时间d(i)和“最迟结束”时间f(i)的时间参数;

c)对于每个任务,在相关图表中存储一初始结点(结点0);

d)对于给定应用且在开始以时间触发模式实时运行之前,为每个任务初始化代表所讨论任务初始状态的初始结点(结点0)和初始时刻;

e)对于给定应用且在开始以时间触发模式实时运行之前,通过原子微核中的任务预排序列表来初始化每个任务的开始顺序;

f)设置第一时钟14,发布构成调用微核的时钟中断信号sh,在应用的第一时刻以时间触发模式开始运行所述应用;

g)在已设置第一时钟14之后的普通操作过程中,在每次调用微核时通过微核复位第一时钟;在通过系统层或处理中断信号sh调用微核过程中,微核进入依据任务时间特征,即最早开始时间d(i)和最迟结束时间f(i),以顺序方式更新任务列表的步骤;并且在更新列表之后,微核计算需要唤醒任务的最近未来时刻并依据所述需要唤醒任务且离开微核的最近未来时刻来设置第一时钟14;以及

h)当运行一任务时,只有当所述任务的控制图表到达一结点时才调用系统层并将结点数量作为一变元传送;依据所运行任务的控制图表,对系统层的输入进行检测以识别对应于前述系统层调用的结点的链接是否被授权,假如链接未被授权则在系统层装入异常处理而假如链接被授权则继续运行,采用系统层调用微核来更新所运行任务的时间参数包括最早开始时间d(i)和最迟结束时间f(i),并继续当前任务的普通运行直到所述任务又到达其控制图表的一结点。

如上所述,应用本发明安全方法的控制系统可包括一存储保护单元和访问每段内容的权利的表格,访问权预先确定并可适当存储在ROM中。对于每个运行内容,定义内容权的表格描述只初始化一次,在初始化整个系统的阶段,并在此系统初始化阶段之后,CPU所运行的过程的运行内容均不包括那些表格。

本发明的安全方法还可在以上定义的步骤中包括以下步骤:

i)在整个预备阶段,对于一给定应用,存储微核和每个应用任务及其系统层中扩展的每个存储段的访问权,从而依据构成任务的指令是应用中的特殊代码或是构成任务扩展的指令是系统层的一般代码来构建第一和第二运行内容;

j)对于一给定应用且在以时间戳操作模式开始实时运行之前,初始化微核内容以及每个任务及其系统层中扩展的第一和第二运行内容;以及

k)在任务运行的过程中,通过用于进入运行特许模式从而可在从任务运行内容转到系统层中任务扩展的运行内容的指令调用系统层,并且在证实对应于前述系统调用的结点链接已被授权之后,以及在采用系统层调用微核从而更新任务的时间参数之后,通过用于返回到可从在系统层中扩展的运行内容转到任务运行内容运行的非特许模式的指令返回任务代码。

本发明的安全方法也涉及时间定额并可在所述基础方法及其考虑存在可使方法进入系统层任务扩展的运行内容的特许模式而修改的基础方法的以上定义的步骤中进一步包括以下步骤:

l)在整个预备阶段,对于每个给定应用以及在所述任务中所有被授权的链接,存储构成用于从任务控制图表中一结点到其它结点所需最大运行时间的上确界的一时间定额,每个时间定额覆盖了运行任务特定指令以及运行任务扩展系统层的一般代码的时间;以及

m)在普通操作过程中,在设置第一时钟14之后,若调用以时间中断信号sh触发的微核并复位第一时钟14,检查以验证触发微核调用的时间中断信号sh是否与试图违反时间定额相关,并且如果相关,则微核运行异常处理,如果时间中断信号sh与试图违反时间定额不相关,则微核更新任务列表,且在更新任务列表之后,计算任务需要被唤醒的最近未来时刻以及分配给运行在现有微核中的任务的时间定额期满的未来时刻,以及当更新列表时确定时间的未来时刻,而且,微核将第一时钟14设置成更接近所述未来时刻以唤醒任务或检测到由于异常操作而试图违反时间定额,并且在设置第一时钟14之后离开微核。

在以下描述中,考虑了参考所处理任务的时间配额的最佳实施例,但假如忽略时间定额也能应用于一简单基础实现,更新微核中应用任务列表的过程将更为清楚。

对于运行过程中每次调用微核,无论什么所讨论任务的运行内容的系统层扩展,更新任务列表均涉及两个参数:最早开始时间d(i)和最迟结束时间f(i)。两个任务列表被管理:准备运行的合格任务列表,即过去具有最早开始时间d(i),和不准备运行或等待被唤醒的不合格任务列表,即将来具有最早开始时间d(i)的任务。合格任务列表以最迟结束时间升序进行排序;不合格任务列表以最早开始时间d(i)升序进行排序。一旦到达最早开始时间,每个等待任务被允许进入“准备”状态。

α)假如,在调用微核的过程中,一任务的最早开始时间d(i)在未来,此任务为不合格并因此被送至不合格任务的已排序列表。此时间使得基于最早开始时间的顺序来计算此任务应该被唤醒的未来时刻成为可能:最近未来最早开始时间给出了所讨论的下一任务将合格(将被唤醒)的未来时刻。

β)假如,相反地,在调用微核的过程中,一任务的最早开始时间d(i)在过去,那么此任务为合格且被送至合格任务的已排序列表。然后,微核控制已排序最迟结束时间的列表中具有最近未来最迟结束时间的合格任务,并计算所选任务的时间配额期满的未来时刻(最近未来最迟结束时间与当前时刻的定额不同)。

γ)然而,假如被设置用作当前被处理任务的时间配额的时钟14引起微核调用,那么通过运行应用特有的异常处理行为,微核开始,之后执行α)和β)。

基于以上两个时刻(唤醒一任务的最近未来时间和所选任务的时间配额期满的未来时间),微核以如下方式设置时钟14:在以上两个时刻的最近时刻被激活(在适当时刻唤醒一任务,或检测试图违反时间定额,即异常操作)。随着时钟14被设置,可能通过开关,微核被激励。

因此,在运行过程中,活动任务被一时间中断或随着活动任务的结点改变而改变。

时间中断源可为一等待任务已准备(已被时间触发)的事实,或活动任务已耗尽其时间配额,在此情况下执行一安全检测。

当活动任务改变其控制图表中的结点时,其最迟结束时间或最早开始时间被推回。在第一情况下,一些其它任务取而代之成为活动的。在第二情况下,假如此活动任务的新最早开始时间是将来,则被放入等待任务中。

抢先数量是有限且有界的,而且从分析上有可能计算抢先数量的最大界。

而且,到结点每次改变都更新并监控时间限额的程度,有可能及时检测异常以便立即限制任务。

到只有通过控制图表的合法替换被接受的程度,一任务不可能及时给出导致其比采用相同图表统计估计时消耗更多资源(即用于通信的存储资源)的工作情况。

以下将参照用于一特殊实时任务的图3至6描述本发明的安全方法的一种实现方式。

在此实施例中,假如在一本身超过一阈值s2的持续时间t(v)内,所测量的值v大于一阈值s1,实时任务的功能是发布警报。

图3是对应于以上实施例的任务处理的流程图。

标记101表示一初始结点或结点0,在此调用系统层。

标记102对应于第一步骤,获取所测量的值v。

标记103对应于测试,之后,假如v<s1则返回随后为步骤102的初始结点101,否则假如vs1则进入随后为步骤105的结点1,标记104。

在结点104,调用系统层,且在步骤105,计算持续时间t(v)。

在步骤105之后,通过一测试106,假如t(v)<s2则返回到初始结点101,假如t(v)s2则进入标记107的结点2。

在第二结点107之后,调用系统层,处理进入步骤108,发布一警报,之后返回初始结点101。

图4是包括结点101、104和107以及对应于如图3流程图的相关弧的控制图表。

在此实施例中,执行“获取v”(步骤102)、“计算t(v)”(步骤105)和“发布一警报”(步骤108)操作所分配的时间如下:

获取步骤102:1时间单元

计算步骤105:2附加时间单元

警报发布步骤108:1时间单元

对于每个结点101、104和107,系统层提供的服务以及在最早开始时间d(i)和最迟完成时间f(i)执行的操作如下表所示,在初始化过程中,一最早开始时间d(0)例如为d(0)=0,且一最迟结束时间f(0)例如为f(0)=1时间单元。

结点系统层提供的服务在d(i)和f(i)时执行的操作1/结点0 i)等待预先确定时间的结束 ii)然后调节新时间f(i+1)=f(i)+1  d(i+1)=f(i)2/结点1调整新时间f(i+1)=f(i)+2  d(i+1)=d(i)3/结点2 i)等待预先确定时间的结束 ii)然后调节新时间f(i+1)=f(i)+1  d(i+1)=f(i)

图6概括了结点0、1和2的表格且包括在最早开始时间d(i)和最迟结束时间f(i)所执行操作的描述。

而且,如图4的任务控制图表可采用矩阵形式编码,以上实施例表示如下:

       结点      0    1   2

其中:

假如授权从结点i移动到j,则mij=A;

假如禁止从结点i移动到j,则mij=I;

图5是实现如上所述实时任务及相关时间值的时序表。数字1至10表示从时间触发模式操作开始的若干时间单元的实际时间。

本发明的安全方法也适用于确保通过消息通信的多任务应用的实时运行确定性。

在此情况下,本方法在上述无任务间通信的多任务基础方法的步骤中包括以下特殊步骤:

n)在整个预备阶段,对于一给定应用的每个任务,存储其用于时间同步和与应用中其它需要调用系统层的任务通信的结点的所有授权链接,这些授权链接用一用于所讨论任务调用的系统层运行的控制图表表示,每个图表包括一组每个对应于系统层调用的结点;

o)存储每个需用于在任务间交换数据的缓存区,规定其大小,其包含的元素大小,其位置或基地址,以及可确认通信所需的信息传送的缓存区之间的关系;

p)对于每个缓存区,存储其元素的初始值;

q)对于给定应用且在开始以时间触发操作模式实时运行之前,以预先存储在存储器中的值初始化缓存区的元素值;以及

r)在任务运行过程中,当到达控制图表的一结点时调用系统层且在依据当前运行任务的控制图表证实对应于前述系统层调用的结点链接被授权之后,按照先前所存储调用的特性连续更新缓存区,并按需对所运行任务的时间参数,包括最早开始时间d(i)和最迟结束时间f(i)执行附加更新。

当在系统层中定义了每个应用任务及其在系统层中扩展的第一和第二运行内容,还可包括以下特殊特征:

在系统层,只有缓存区允许被一应用的任务运行内容的扩展来共享,一用于对应于发送消息的动态通信的给定缓存区只能被两个任务运行内容扩展共享,而一用于对应于一时间戳数据流的静态通信的给定缓存区可被超过两个任务运行内容扩展共享,但它只能被拥有系统层中内容扩展的任务修改。

以下参照图7至13描述本发明包括通过消息通信的两实时任务的安全方法。

在此简单的实施例中,假如一测量值v例如为超过一阈值s1,且假如测量值v超过阈值s1的持续时间t(v)本身超过一阈值s2,所执行的功能包括打开一警报灯。

因此,一处理任务获取v,且假如必要的话,向打开特定灯的警报任务发送一消息。

图7是本实施例中运行处理任务的流程图。

标记111表示一初始结点或结点0,在此调用系统层。

第一步骤112是获取测量值v的步骤且与比较值v和阈值s1的测试113相关。

假如v<s1,那么任务返回到初始模式111,否则假如vs1则进入结点1,标记104,且导致系统层调用。

第二步骤115,在结点114之后,计算持续时间t(v)。

与步骤115相关的测试116比较持续时间和阈值s2

假如t(v)<s2则任务返回到初始结点101,否则假如t(v)s2则进入标记117的结点2并导致系统层调用。

在结点117之后,任务进入标记118的结点3,调用系统层,且执行包括在返回初始结点111之前发送一警报消息的第三步骤。

图8是对应于如图7流程图的包括结点和授权弧的控制图表。

图9是本实施例中运行警报任务的流程图。

标记121表示初始结点或结点0,在此调用系统层。

一测试122检查消息是否已被发送。

假如无消息,那么任务进行到关闭警报灯的步骤123,之后返回到初始结点121。

假如存在一个或更多消息,那么任务进行到结点1,标记124,调用系统层并在返回初始结点121之前进行打开警报灯的步骤125。

图10是对应于如图9流程图的包括结点和授权弧的控制图表。

在此实施例中,允许用来执行分别对应于步骤112、115、118、123和125的操作:“获取v”、“计算t(v)”、“发送消息”、“开关关闭”、“开关打开”的时间如下:

“获取v”:       1时间单元

“计算t(v)”:    2附加时间单元

“发送消息”:    1时间单元,但消息将在2时间单元有效

“开关关闭”:    1时间单元

“开关打开”:    1时间单元

对于两个任务的每个结点,系统层的服务以及在最早开始时间d(i)和最迟完成时间f(i)以及消息可见的时间dV执行的操作(d(0)=1和f(0)=1)如下所示:

结点              系统层的服务        在d(i)、f(i)和dV上执

                                            行的操作  (处理任务)结点0(111)      —等待预先确定时间的结束     f(i+1)=f(i)+1;

                 —然后调节新时间         d(i+1)=f(i)结点1(114)             —调节新时间          f(i+1)=f(i)+2;

                                          d(i+1)=d(i)结点2(117)      —等待预先确定时间的结束     f(i+1)=f(i)+1;

                 —然后调节新时间                     d(i+1)=f(i)结点3(118)  —在系统层的任务内容扩展的发送区复            f(i+1)=f(i);

                       制消息                         d(i+1)=d(i)

                                                      dV=d(i)+2(警报任务)结点0(121)  —等待预先确定时间的结束                      f(i+1)=f(i)+1

             —然后调节新时间                         d(i+1)=f(i)

       —从所处理任务的发送区复制可见消息

          至系统层的任务内容扩展的接收区结点1(124)  —在系统层的任务内容扩展的接收区注            f(i+1)=f(i)

                释第一消息已被消耗                    d(i+1)=d(i)

图12和13分别涉及本实施例的处理任务和时钟任务,并包括描述在最早开始时间d(i)、最迟结束时间f(i)和可见时间dV时所执行操作的结点表格。

处理任务和警报任务的控制图表可以矩阵形式编码如下:

       结点      0    1   2    3

(处理任务)

       结点      0    1

(警报任务)

其中:

假如授权从结点i移动到j,则mij=A;

假如禁止从结点i移动到j,则mji=I;

图11是实现如上所述两个通信任务及相关时间值的时序表。数字1至10表示从时间触发模式操作开始的若干时间单元的实际时间。

只有一种消息存储在给定一消息队列。一消息可见时间dV与每个所发送的消息相关。时间dV规定了接收方能消耗消息的未来时刻。按可见时间dV,然后按发送者名称以及最后按发送顺序消耗消息,因此有可能为了消耗的目的而完全排序。

对于每个消息队列,有一用于有关消息队列所有者的接收区和在每个发送者的内容里的一发送区。

因为每个生产者(发送者)有一发送区,两个不同任务发送的两个消息之间不存在冲突的问题。

而且,如上所述,存储分段可能影响任务受其自身存储空间限制的故障。因此,在此应用中不可能有从一任务到其它任务的故障扩散。

存储分段也可能带来以下特性:在任务时间触发(TT)的时间间隔内,在新指令开始与在前指令结束之间,任务运行内容不变。

存储分段应用被到系统层,以便从内部对其进行划分,因此,将微核与系统层的其余部分划分开来。

存储保护单元16构成从物理体系结构来看可能强制存储分段的硬件结构。

图2为最后得到的代码深度分配,从具有用户运行模式201(即非特许模式)的应用层经由具有特许运行模式的系统层202,到微核203。

以特许运行模式访问系统层202受一“自陷”类型转移指令保护,而从系统层202到微核203的段落由一移动类型指令触发。

时钟14提供时间触发并在可编程量时间之后随时发布一时间中断信号sh。

因此,图2显示了应用层201各任务的代码和数据,但在系统层202有任务内容在系统层的扩展和系统层代码。在微核层213,有用于管理分配处理器给任务和时间的微核数据和代码。

参照图14详细的表格,它表示在实现本发明安全方法的分段存储器中各段的权利。

如上所述,一多任务应用包括特定代码、任务、时间变量流、消息盒、一用于在任务间传送信息的系统层、一监控应用代码中任务移动的图表运行器、以及一用于管理时间和处理器共享的微核。

存储器被分为基于处理器的运行内容具有访问权的段。

为理解如图14的表格,采用了以下定义:

.inst:存储器中一组连续指令;

.const:一组连续的常值数据项;

.var:一组连续的可被指令修改的数据项;

I:被授权运行段中指令;

M:被授权修改和查看段;

C:段访问权被限制为查看(只读);

R:段访问被拒绝。

依据是特定应用或是与本发明CPU 10及其处理器的型号相联系,段被分区。

在每个任务中依次有应用区CT、FT、BM、ME、VT和PU,这些应用区描述如下:

任务计算区CT

.const和.var:包括非特许模式堆栈的任务数据;

.inst:任务计算。

任务操作区FT

.const:任务操作描述(运行图表、结点描述、预定时间、CPU计算的时间增量、……);

.var:用于传送变元至系统层的区;

.inst:向系统层请求结点改变的功能。

消息盒区BM

.const:任务的每个消息盒的特性,包括对发送区(ME区)的连接;

.var:可访问当前时刻的任务的所有消息。

消息存储区ME

.const:用于由任务发送的且目标任务不可见的消息的存储区描述;

.var:存储区本身。

时间变量区VT

.const:用于任务、任务可见的时间变量流值,包括与产生此值的链接,的存储区描述;

.var:用于已被通过的可见值的任务的存储区。

区PU

.var:处理器所需的临时工作数据、任务的当前内容、特许模式堆栈。

也存在所有任务共用的全局应用区,如下所述:

全局区G

.const:应用的全局常量(任务数、任务描述信息参考、时钟描述……)和提供与系统层接口的常量描述。

系统层本身包括一区CS,如下所述:

系统层区CS

.const:供参考;

.var:空(过去存储在区PU的段.var中);

.inst:用于图表运行器、管理消息盒、使所传送的时间变量流值有效的指令,和用于管理时钟并计算预定时间的指令。

系统层供应的传输区FR如下所述:

传输时间TR

.const:供参考;

.var:活动任务认证;

.inst:用于改变对存储器的硬件访问权以及转移到系统层或微核的指令。

微核包括区MN和RS,描述如下:

区MN

.const:供参考;

.var:需用来管理硬件(管理时间、管理“自陷”指令……)的数据;

.inst:指令,用于作为预定时间来管理多组准备或休眠任务、备份和改变硬件内容、管理用于耗尽使用处理器权的时钟中断,以及在CPU实现存储保护功能。

区RS

.const:供参考;

.var:空;

.inst:用于初始化CPU和无需存储保护运行的软件的指令。

在一给定时刻,处理器运行代表应用代码(非特许模式)任务的指令,或用于系统层(特许模式)任务的指令,或微核中的指令。

如图14的表格的行表示任务的段,然后是系统层的段,最后是微核的段,如以上所定义。列表示:依据处理器正在运行任务的应用代码的指令(列301)、用于任务的系统层代码的指令(列302)、用于另一任务的系统层代码的指令(列303)、或是在初始化CPU之后的微核代码的指令(304),存储器的访问权。

通常,存储器可分页,且一页可写保护、不存在或可用。在此情况下,段大小均为多页,.const和.var被合并且写保护,且访问权为R的页要么不存在要么从描述中删除。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号