虽然近年来计算机技术、感知技术、网络技术和控制技术等在创新性理论和技术方面取得了快速发展,但是利用现有的基础理论和技术设计CPS时将面临巨大挑战。下文将分别从计算系统、网络系统和控制系统三个方面分析和概括CPS设计面临的主要挑战。
(1)CPS在计算系统方面面临的主要挑战
计算理论基于邱奇-图灵理论和冯·诺依曼体系结构,认为计算是对数据进行转化的过程,该抽象忽略了时间、温度和能量等物理属性的描述。而且现有计算系统采用离散的二进制对计算对象进行抽象描述,这与CPS中物理属性的连续性不一致。现有计算抽象层次中,从指令集体系结构、编程语言、操作系统到网络,都缺乏对时间和并发行为的有效表示,对物理世界中包含的与时间相关的各种属性也还没有完全了解。在工程实践计算机技术人员选择对上层抽象隐藏时间相关属性,另外,对于时间的概念也存在一些错误观点,如“时间是一种资源”“时间是一种非功能属性”,但是资源管理的问题是最优化问题,如嵌入式系统中内存、能耗的最优化(系统中内存、能量都是有限和可保留的),而时间取决于系统执行行为的可重复性(系统执行行为的可重复性是系统行为可预测的基础,是获得准确的系统性能分析结果和保障系统实时性、安全性和可靠性的基础)。在信息世界与物理世界交互的过程中,时间总是不断流逝,时间是无限的和不可保留的,并且任务的执行不一定完成得越早越好,完成过早反而可能导致任务的不可调度。所以,与内存、能量等系统资源不同,时间不能被当作一种资源进行处理。CPS功能的正确性不但取决于程序执行结果的正确性,还依赖于系统行为在时间上的可重复性和准确度,时间也是CPS的一种功能属性。现有编程语言(如C和Java等)的语义中普遍缺乏对时间属性的相关描述,仅仅将时间当作一种非功能性属性。所采用的各种抽象机制(如继承、多态、动态绑定和内存管理等)主要是为了增强语言的扩展性和功能性,却削弱了系统行为的可预测性。而且各种编程语言通常都是图灵完备的,将造成程序执行时间的不可判定。操作系统中的调度技术、线程技术等是基于“尽力而为”的思想,仅适用于静态的、不存在(或仅存在很少)并发行为的系统的设计。而CPS是动态的和高度并发的,现有操作系统技术在满足CPS实时性、安全性和可靠性方面面临巨大挑战。而且随着CPS复杂性的增长以及多核处理器技术等的引入,操作系统进程之间、处理器核之间的通信越来越频繁,这进一步降低了操作系统时间行为的可预测性。进程死锁、优先级反转和中断等机制破坏了操作系统本身的设计原则。对并发行为进行抽象描述的线程技术本身就存在问题:一方面多线程的执行结果不可重现,另一方面多线程之间具有时间依赖的行为特点,即使线程执行顺序上的细小改变,也将造成时间属性发生不可预测的变化。“系统中的并发问题很快就能压倒人类,对并发行为进行推理分析变得越来越困难”。其实并不是人类在并发推理方面的能力差,人类所生活的物理世界中就存在很多高度并发的物理进程,人类的生存也依赖于对并发的、动态的物理进程进行分析的能力,造成系统行为不可预测的关键原因在于软件对并发行为的抽象描述不恰当。所以,利用现有操作系统技术所设计的CPS将会是脆弱的,会面临严重的安全性和可靠性问题。
当前进行计算系统设计时,主要采用测试、仿真、最差情况执行时间(Worst-Case Execution Time,WCET)分析和调度分析技术来保障系统的实时性、安全性和可靠性,但是矛盾的是WCET和调度分析方法的有效性又以系统的实时性和可靠性为前提。仅仅依靠测试和仿真很难保证这一点,因为不能保证系统中所有执行路径的全覆盖。随着体系结构技术的发展,为了解决“存储墙”等问题而引入的流水线、多级存储结构和分支预测技术等,使得WCET分析变得异常困难。上述技术是以牺牲系统行为的可预测性来换取系统平均性能的提高,这对于安全关键的CPS来说是不可取的。嵌入式系统是CPS的重要组成部分,其理论基础是“确定性的假设前提”和“最差情况下(假设所有功能同时运行)的性能分析”。但是在CPS中任务触发是随机的、物理世界中存在很多不确定性因素,如果以最差情况作为系统设计的出发点,那么CPS就只能在很低的平均资源利用率水平上提供服务保障,这将造成资源的极大浪费。
通过上述分析可知,利用现有计算系统的基础理论和技术进行CPS设计时,将面临诸多问题,如各个计算抽象层次中都缺乏对时间等物理属性的有效描述、物理系统中广泛存在的动态、并发行为也未能得到合理抽象等,这将造成CPS在实时性、安全性和可靠性方面分析结果不理想、难度大等问题。计算技术中引入的各种新特征也都是为了增强其功能,未对实时性、安全性和可靠性方面可能引入的隐患进行考虑。CPS的复杂性、异构性和动态性特点,使得依赖测试、仿真以及WCET和调度分析来保障实时性、安全性和可靠性的传统做法将仅能发挥非常有限的作用。尤其在子系统集成方面,现有的模型、算法和工具等仅面向特定子系统或领域,支持系统级性能分析的能力很弱,不能满足大规模CPS设计的要求。所以,需要在计算基础理论和技术两个层面进行深入研究,既满足实时性、安全性和可靠性保障方面的要求,又能在提高资源利用率、降低系统设计成本和缩短上市时间等方面取得进步。
(2)CPS在网络系统方面面临的主要挑战
CPS中的网络系统被提升到了与计算系统和控制系统同等重要的地位。WSN、因特网等无线和有线网络所构成的复杂网络系统是CPS实现信息系统与物理系统融合和统一的基础,各种具备信息采集、计算和决策控制能力的异构物理实体、计算实体等通过复杂网络实现交互和协作,使得整个系统处于最佳状态,故网络系统将在CPS中起到非常关键的作用。
与传统的嵌入式系统、WSN不同,CPS不是单个的封闭系统,它是一个大规模、开放、异构而且物理上分散的分布式系统。而现有网络技术是基于“尽力而为”的思想,以优化点对点连接为目标。所以,CPS设计在网络技术方面提出了大量挑战性问题:
1)CPS中包含大量的异构网络节点(如不同类型的计算系统、控制系统、传感器和执行器等),如何通过各种网络技术实现异构节点实时、安全和可靠的互联互通,并保证网络服务质量,以增强CPS的可重构和自适应能力。(www.daowen.com)
2)信息系统与物理系统的交互过程中将产生大量数据,只有保证这些数据在网络中的有效传输和管理,才能实现网络节点的自治和相互之间的协调以提供智能化控制,如何在服务质量、实时消息传输、安全性、能耗管理、节点同步和协作等方面提供保障。
3)CPS中广泛存在大量动态、不确定性因素(如各种干扰和随机行为),如何对上述因素进行建模和分析,以容忍其对实时性、安全性和可靠性造成的影响。
4)CPS中存在多种类型的网络技术(如有线的因特网、无线的WSN等),如何实现不同网络技术之间的实时、安全和可靠地互联和融合,并保证网络服务质量。
(3)CPS在控制系统方面面临的主要挑战
在工程实践中,控制系统设计与计算机系统设计是分开进行的,在这一过程中忽略了各自的许多实现细节。控制系统设计完成之后,需要经过大量的测试和仿真来进行验证,并采用一些特定的调试方法来解决因建模和随机干扰等引入的不确定性问题。在系统子模块进行集成时,需要花费大量的时间(测试和仿真验证)和高昂的成本(强大的硬件支持、超容量资源供应)才能保证系统的正常运行,系统资源的利用率非常低。另外,从理论上来说控制任务的周期性抽象与物理进程的动态性和随机性也是不相符的。随着CPS复杂性的增长以及大量先进技术在网络系统和计算系统中的应用,现有控制系统设计方法在CPS设计中将面临巨大挑战:
1)控制系统以数学理论为基础,采用微分方程对控制对象进行抽象描述,而计算机和网络中采用离散的二进制对信息进行抽象描述,如何实现控制系统与计算系统、通信系统的集成和融合,使CPS真正具备全局协同和自适应能力。
2)控制系统设计依赖于“诸多理想的抽象假设、超容量资源供应和长时间仿真和测试”来保障系统正常运行的方法,由于CPS复杂性、动态性和异构性而仅能发挥越来越有限的作用,CPS设计需要提出新的理论和技术来支持系统级的性能分析和验证、控制系统与其他系统的集成等,才能保证满足系统健壮性、实时性、安全性和可靠性要求。
3)CPS中的网络系统引入了网络延时、数据丢失和安全性等问题,如何在控制系统设计中实现对上述动态、不确定和不可靠因素的容忍以完成健壮、可靠的CPS设计。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。