首页 > 代码库 > 时间防火墙 temporal firewall
时间防火墙 temporal firewall
时间防火墙
为简化大型分布式实时系统的设计复杂度,通常的做法是,将系统划分为多个子系统,通过接口将子系统们连接。其中,子系统是自治系统,接口被称为时间防火墙temporal firewall,具stable and control-free的特点。
自治系统 autonomous system: 在互联网中,AS是一个有权自主地决定在本系统中使用何种路由协议的小型单位。
那么时间防火墙有什么特点呢?H.Kopetz在他的文章中谈到
从时间防火墙的定义,可以看出
(1)时间防火墙是接口
(2)这个接口是单向传输的,能为它所连接的子系统提供数据共享,接口中传输的数据是状态信息,而不是事件信息。
(3)所连接的子系统中,至少有一个子系统是根据“预知调度表”来访问时间防火墙的
(4)接口中包含的信息是实时精确的。(是往后推dacc个时间是精确的??)
针对(2)扩展
数据共享接口中的数据可以分为两类,状态数据和事件数据。
事件数据:包含事件信息,它与事件的发生相关。通常事件数据要在接收端排队,一旦事件被处理后,对应的事件数据必须从队列中移除。这样才能确保每个事件只处理一次。而且排队的顺序是事件发生的顺序,不是事件数据的传递顺序。
状态数据:包含状态信息,因为状态覆盖是合理的,所以状态数据读取后不会被清除。状态的语义类似于程序变量的语义,在实时系统中,状态语义比事件语义使用得更频繁。
针对(3)我的理解是至少有一个子系统是时间触发系统
针对(4)
英文的理解:时间防火墙内的信息在未来dacc时间段内都是有效的。
疑问:时间防火墙内的信息一定是在t时刻产生的么? 是由时间防火墙自己产生的么?
如果信息不是时间防火墙产生的,是别的系统传输过来的,能确保在时间t到达么?
如果不能确保,那就不能说是在未来dacc内数据也是有效的。
扩展:temporal accuracy
还记得前面说到时间防火墙具有 stable and control-free的特点么?下面我们就来看看吧
Stable : 时间防火墙有三个stable properties,并且对于它所连接的子系统,这些properties都是已知的信息。
(1) 数据项的地址和语法结构 (数据项的名字就是它的地址,这个是怎么对应的呢?而且数据项的含义还与它的名字有关。。。可是计算机中的地址不是二进制序列么?这个怎么跟名字对应起来?)
(2) TT子系统访问时间防火墙内数据项的时间点
(3) 时间防火墙内数据项的实时精确间隔 (这个信息可以为消费者对时间防火墙的最小采样率做指导?but how to guide?TT子系统访问时间防火墙的绝对时间是时间防火墙内信息实时精确度的参考时间点?how to 理解)
Control-free: 指时间防火墙不传输控制信号,即temporal firewall is free of control signals。
讲到这里,大家会不会有点疑惑了,时间防火墙具体是用什么实现的呢?怎么感觉这个接口既有存储能力,又有传输能力。跟应用软件中的程序接口差别很大呀!其实我也有点晕了
咱们还是来看H.koptez在文章中是怎么说的吧
An interface that is free of control signals is called a data-sharing interface
A data item of a data-sharing interface consists of two parts: a static name and a dynamic value
A data-sharing interface can be implemented in a dual-ported RAM
The address of a RAM field corresponds to the static name,
The contents of a RAM field contains the dynamic information of the interface data item at a particular moment of time
从这段可以看出
(1) 数据共享接口不传输控制信号
(2) 数据共享接口中,数据项包含两部分:静态名称和动态值
(3) 数据共享接口可以在双端口RAM中实现?
(4) RAM域的地址与静态名称对应;RAM域中的内容与动态值对应
问题来了?什么是RAM? 地址与静态名称,内容与动态值怎么对应?静态名称具体是什么?动态值呢?举个例子吧?
先来解释什么是RAM吧
RAM就是存储数据的存储器,它通过地址总线来定位数据,通过数据总线来传输数据。看下图应该清除RAM和总线的关系了。关于RAM是如何存取数据的,举个例子说明下。对于X86处理器,它通过地址总线发出一个具有22位二进制数字的地址编码——其中11位是行地址,另外11位是列地址,这可以通过RAM地址接口进行分离。行地址解码器受限确定行地址,然后列地址解码器确定列地址,这样就确定了唯一的存储数据位置,然后该数据就会通过RAM数据接口将数据传输到数据总线。(ps:RAM内部存储信息的矩阵并不一定是正方形,行和列数码也不一定相同)
现在清楚的知道RAM是个什么东西了吧~但有个问题,这里的data interface是指时间防火墙中的data interface么? 时间防火墙可以这么理解么:时间防火墙的本质就是一个单向的数据共享接口,再通过额外的机制来确保数据在指定时间点到达接口,以及在接口中数据是实时精确的。????Can we?
总线:计算机各种功能部件之间传输信息的公共通信干线。由导线组成的传输线束。
根据传输信息的种类,计算机总线分别:数据总线、地址总线和控制总线。
数据总线传输数据,地址总线传输数据机制,控制总线传输控制信号。
总线是内部结构,它是cpu、内存、输入、输出设备传输信息的公共通道。主机部件是通过总线相连接,外部设备通过相应的接口电路与总线连接。
在分布式实时系统中,有哪些接口可以作为时间防火墙呢?H.Koptez说到
其中,
CNI是通信网络接口,它存在于主机和通信控制器之间,由于它既要消费信息又要产生信息,所以它需要两个时间防火墙
The stable properties of the input firewall capture all assumptions of the node with respect to the behavior of the node environment 这句话怎么理解呀?
The stable properties of the output firewall form the obligations of the node 这句话,我的理解输出防火墙的稳定属性形成了实现节点必须满足的需求 (节点中定义的数据格式要满足data-item的格式,要提供已知的时间调度表,要使得信息在时间防火墙内是实时精确地)
举例e: 如果CNI连接的通信系统本身就是时间触发的,也就是基于TTP的,那么这个CNI成为时间防火墙的大部分条件都已满足。因为CNI被通信系统访问的时间点已经存储在TTP通信控制器中了。
COI:控制对象接口存在于控制对象和主机之间。
将COI设计成时间防火墙的话,控制对象行为的假设就成为时间防火墙稳定属性的一部分了(这句话又该怎么理解?),而且要被host 检查。因为控制对象不在计算系统的SOC中,所以控制对象的错误行为需要由host在COI中检查。
我可以理解为host去检查COI中的数据是否正确??? COI中存储的应该是数据吧?
Intercluster Gateway Interface: 内部网关接口存在于两个计算簇之间,可以理解为两个CNI形成了网关接口。网关接口是位于网关节点内的,也就是一个网关节点包含两个CNI的接口。
上图表示的是节点的结构,其中CNI和COI的位置十分清晰。根据之前的阐述,可知,COI和CNI都是可以单独作为时间防火墙的;如果用第二个CNI来替换图中的COI,那么这个节点就成为一个网关节点。
问题又来了~ COI和CNI具体又是什么呢? 之前的分析时间防火墙本质是一个数据共享接口,可以传输数据。那么CNI和COI也是数据共享接口么?
……..
时间防火墙的有效性
优缺点:
它的定义十分严格精确,将它引入到架构设计中,会使系统的验证和错误限制变得容易
但,它限制了架构的灵活性和适应能力,可能会造成资源浪费。
先决条件和后置条件
假定一个子系统中有两个时间防火墙,并且这两个时间防火墙是系统与外界的唯一接口。第一个时间防火墙是Input firewall,将RT image从外界传输到子系统内,第二个时间防火墙是output firewall,将子系统的结果传输给其他系统
错误遏制接口
参考文献:
时间防火墙 《Temporal Firewalls in Large Distributed Real-Time Systems》
RAM理解 http://dedejackson.blog.163.com/blog/static/40510085201072711553342/
总线 百度百科
时间防火墙 temporal firewall