电子信息工程学院岳强---计算机联锁控制系统软件可靠性与安全性技术保障计算机联锁控制系统的软件安全性与可靠性技术保障计算机联锁技术计算机联锁控制系统软件可靠性与安全性技术保障一、软件故障二、操作系统选择与应用三、数据的的安全性保障技术四、功能软件的可靠性与安全性保障技术计算机联锁控制系统的软件安全性与可靠性技术保障计算机联锁技术一、故障分析1、故障的分类(1)永久故障:软件编程出现错误(2)瞬间故障:硬件的瞬间故障和干扰。2、软件的故障安全性指软件无论是否完成其预定功能,不会导致意外事故发生的概率计算机联锁控制系统的软件安全性与可靠性技术保障计算机联锁技术一、故障分析软件故障安全性的主要研究内容(1)软件故障安全性需求分析及软件故障安全性设计消除与控制系统危险的方法减少损失的方法(2)软件故障安全性验证和确认及软件的故障安全评估。计算机联锁控制系统的软件安全性与可靠性技术保障计算机联锁技术二、操作系统选择与应用1、定义操作系统是最基本的系统软件,是计算机用户和计算机硬件之间的接口程序模块,是计算机系统的核心控制软件。其功能简单描述就是控制和管理计算机系统内部各种资源。有效组织各种程序高效运行,从而为用户提供良好的、可扩展的系统操作环境,达到使用方便、资源分配合理、安全可靠的目的。计算机联锁控制系统的软件安全性与可靠性技术保障计算机联锁技术二、操作系统选择与应用目前联锁中采集的操作系统DOS、WINDOWS、LINUX、VxWorks2、几种操作系统的分析(1)通用计算机的操作系统2005年,类Unix家族和微软Windows家族(2)主机系统和嵌入式操作系统使用多样的系统,并且很多和Windows、Unix都没有直接的联系计算机联锁控制系统的软件安全性与可靠性技术保障计算机联锁技术微软(Microsoft)MS-DOSXenixMicrosoftBob基于MS-DOS操作系统的WindowsWindows1.0Windows2.0Windows3.1Windows95Windows98WindowsMEWindowsNTWindowsNT3.5WindowsNT4Windows2000WindowsXPWindowsXPMediaCenterEditionWindowsXPProfessionalx64EditionWindowsServer2003WindowsServer200364-bitEditionWindowsVista计算机联锁控制系统的软件安全性与可靠性技术保障计算机联锁技术非Unix商业操作系统CPM操作系统MP/M-80UCSDP-systemMini-FLEXSSB-DOSCP/M-86DR-DOSFreeDOSMS-DOSPC-DOSMach由卡纳尼基梅隆大学研究L4微内核第二代微内核CHORUSChoicesMulticsOS-9NSJ计算机联锁控制系统的软件安全性与可靠性技术保障计算机联锁技术Unix及类似系统A/UX(AppleUNIX)Unix微软XenixChorusOSCromixUNIflexOS-9IBM的AIXBSDFreeBSDNetBSDOpenBSDDragonFlyBSDDigitalUNIX,即之后康柏Tru64DNIXHP的HP-UXGNU/HurdSGI的IRIXLinux(或称GNU/Linux)MacOSXMenuetOSMinixOSF/1SCO的SCOUNIXSun的SunOS,即之后的SolarisSystemVUltrixUniCOS麒麟操作系统(Kylin),由国防科技大学、中软公司、联想公司、浪潮公司和民族恒星公司五家单位合作研制的服务器操作系统OS/390z/OSSyllable计算机联锁控制系统的软件安全性与可靠性技术保障计算机联锁技术嵌入式实时操作系统VxWorks美国WindRiver公司的产品,应用很广泛,市场占有率比较高μC/OS-II:美国嵌入式系统专家JeanJ.Labrosse用C语言编写的一个结构小巧、抢占式的多任务实时内核μClinux优秀的嵌入式Linux版本,其全称为micro-controlLinuxeCoseCos(embeddedConfigurableoperatingsystem),即嵌入式可配置操作系统计算机联锁控制系统的软件安全性与可靠性技术保障计算机联锁技术计算机联锁控制系统的软件安全性与可靠性技术保障计算机联锁技术计算机联锁控制系统的软件安全性与可靠性技术保障计算机联锁技术三、数据的的安全性保障技术1、采用不对称编码表示涉及安全的信息2、关键数据异地多份存储空间冗余3、规范化数据结构与数据生成方式机辅设计4、数据完好的正确性检验检验软件计算机联锁控制系统的软件安全性与可靠性技术保障计算机联锁技术四、功能软件的可靠性与安全性保障(一)故障安全软件设计的基本原则及方1、采用冗余结构,多样性,双份编码2、充分的分析和测试3、失败或可疑时,可采用程序卷回的方法4、所有在线的计算机应该进行连续的比较5、正确的次序执行6、采用固件运行的模式7、失效发生,输出限定在安全状态。8、监视器防止程序进入死循环或停止运行计算机联锁控制系统的软件安全性与可靠性技术保障计算机联锁技术(二)程序设计阶段必须遵循的措施1、严格遵守软件工程方法编制正确的规格说明书,良好的软件开发工具和环境2、采用模块化程序设计原则(1)每个模块对应一种特定功能。(2)一个模块只应有一个入口和一个出口。(3)任何模块长度不得超出该系统规定的极限。(4)模块间的接口应尽可能简单。(5)模块的输入输出参数应限制到最少计算机联锁控制系统的软件安全性与可靠性技术保障计算机联锁技术(二)程序设计阶段必须遵循的措施3、采用结构化程序设计原则(1)安全关键模块之间的接口严格的校验。(2)明确的安全侧和危险侧。使用前进行验证。(3)选择结构应使用条件标志的危险例编码做为判断条件;对选择结构的两个出口必须规定哪一个是安全侧。(4)应校验危险出口有关的所有条件标志;在选择安全侧出口时,只作简单校验即可。4、正确的数据结构和良好的设计风格计算机联锁控制系统的软件安全性与可靠性技术保障计算机联锁技术(三)软件容错设计基本技术1、N版本程序设计(NVP)静态冗余结构优点:机构简单,不需设计检测程序缺点:①处理时间是单版本的N倍;②设计所花的力量是单版本的N倍;③表决程序设计比较困难;④与外部事件同步或并行处理中有交互过程时,难于处理。计算机联锁控制系统的软件安全性与可靠性技术保障计算机联锁技术NVP结构计算机联锁控制系统的软件安全性与可靠性技术保障计算机联锁技术(三)软件容错设计基本技术2、恢复块(RecoveryBlock)技术计算机联锁控制系统的软件安全性与可靠性技术保障计算机联锁技术(三)软件容错设计基本技术3、容错算法的设计数值运算容错设计(1)慎重设计算法,合理安排运算顺序(2)子程序的容错设计逻辑运算的容错设计计算机联锁控制系统的软件安全性与可靠性技术保障计算机联锁技术(四)减少程序失控的编程技术1.尽量采用单字节指令2.尽量少用程序控制类指令的操作码作多字节指令的操作数,以降低程序失控的概率。3.慎用堆栈操作指令4.指令冗余5.关键指令的双重化6.指令复执7.程序卷回计算机联锁控制系统的软件安全性与可靠性技术保障计算机联锁技术(五)程序失控的捕捉技术1.软件陷阱法实际的软件陷阱是由三条指令构成的:NOPNOPLJMPERR2.监督定时器(WDT)法计算机联锁控制系统的软件安全性与可靠性技术保障计算机联锁技术(六)接口软件的容错设计1、输入接口软件的容错设计①开关量输入接口软件的容错设计多次输入法、数字量数字鉴别法、数字量输入的封锁法;②模拟量输入接口软件容错设计数字滤波:中值滤波、算术平均滤波、去极值平均滤波、加权平均滤波、滑动平均滤波计算机联锁控制系统的软件安全性与可靠性技术保障计算机联锁技术(5)接口软件的容错设计2、输出接口软件容错设计出接口进行双重锁定,并设置相应的输出接口容错控制程序。3、人-机接口软件的容错设计