理论教育 防错程序设计:统一符号、控制存取、分隔数据与指令

防错程序设计:统一符号、控制存取、分隔数据与指令

时间:2023-06-17 理论教育 版权反馈
【摘要】:1942.在软件设计中,必须规定用统一的符号来表示参数、常量和标志,以便在不改变源程序逻辑的情况下,对它进行修改。1947.非授权存取的限制如下:1)必须防止对程序的非授权的或无意的存取或修改,其中包括对代码的自修改。1951.为防止程序把数据错当为指令来执行,要采用将数据与指令分隔存放的措施。使NOP指令的总长度应等于最长指令的长度,然后加入一条跳转指令,将控制转向出错处理程序。

防错程序设计:统一符号、控制存取、分隔数据与指令

1942.在软件设计中,必须规定用统一的符号来表示参数、常量和标志,以便在不改变源程序逻辑的情况下,对它进行修改。

1943.必须指明有两个或多个模块公用的数据和公共变量,并尽量减少对公共变量的改变,以减少模块间的副作用。

1944.所有标志必须进行严格的定义,并编制标志的使用说明,说明的项目包括:名称和位定义、功能和作用、使用范围(有效范围)、生命周期(初始状态、运行中的变化条件、状态和时刻、最终状态)、使用情况(使用该标志的模块名称及使用方式)。

1945.对于安全关键的标识,在其被使用的软件单元里,必须唯一且用于单一目的。

1946.文件必须唯一且用于单一目的;文件在使用前必须成功地打开,在使用后必须成功地关闭;文件的属性应予它的使用相一致。

1947.非授权存取的限制如下:

1)必须防止对程序(源程序、汇编程序及目标代码)的非授权的或无意的存取或修改,其中包括对代码的自修改。

2)必须防止对数据的非授权的或无意的存取或修改,应对安全关键功能模块应设置调用密码。

1948.无意指令跳转的处理应注意以下问题:

1)必须检测安全关键软件内或安全关键软件间的无意跳转,如果可行的话,进行故障诊断,并确定引起无意跳转的原因。

2)必须提供从无意指令跳转处进入故障安全状态的恢复措施。

1949.程序检测点的设置应注意以下问题:

1)在安全关键软件中的关键点上进行监测,在发现故障时进行故障隔离。必要时,使系统进入安全状态。

2)在完成必要检测功能的前提下,检测点宜少不宜多。

3)测试特征量流出通道应力求独立,使测试功能的失效不会影响其他功能。(www.daowen.com)

1950.尽量不使用间接寻址方式。

1951.为防止程序把数据错当为指令来执行,要采用将数据与指令分隔存放的措施。必要时在数据区和表格的前后加入适当的NOP指令和跳转指令。使NOP指令的总长度应等于最长指令的长度,然后加入一条跳转指令,将控制转向出错处理程序。

1952.对于安全关键信息的要求如下:

1)安全关键信息不能仅由单一CPU命令产生。

2)不用寄存器和I/O端口来存储安全关键信息。

3)使安全关键信息不会因一位或两位差错而引起系统故障。

4)安全关键信息与其他信息之间应保持一定的码距。

5)安全关键信息的位模式不得使用一位的逻辑“1”和“0”表示,建议用4位或4位以上,即非全0且又非全1的独特模式来表示,以确保不会因无意差错而造成危险。

6)如安全关键信息有差错,应能检测出来,并返回到规定的状态。

7)安全关键信息的决策判断依据不得依赖于全“0”或全“1”的输入(尤其是从外部传感器传来的信息)。

1953.对不需修改的重要信息,条件允许时应放在不易丢失的只读存储器(ROM)中。对需要少量修改的重要信息,则应放在电可擦除可编程只读存储器(E2PROM)中。在宇宙空间不得使用电可擦除可编程只读存储器(EPROM)。

1954.算法的选择要求如下:

1)对规定时间内要完成规定任务的软件,不能采用不成熟的算法。

2)算法所使用的存储空间应完全确定,如尽量不采用动态维空间。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈