高完整性系统(1)Introduction

news2024/10/6 5:49:52

文章目录

  • 什么是 formal methods
  • 案例1:造影机器
  • 案例2: 特斯拉汽车的自动驾驶功能
  • 案例3:空客 320
  • 案例4:波音737

什么是 formal methods

“Formal methods” 是计算机科学中的一个术语,它指的是一种使用数学模型和技术来描述和分析计算机系统的方法。这种方法尤其适用于设计、开发和验证复杂的软件和硬件系统。

“Formal methods” 可以帮助开发人员理解系统的行为,并在系统开发过程中发现潜在的问题和错误。这些方法通常包括:规范语言(用于描述系统应该做什么),建模语言(用于表示系统的结构和行为),以及验证技术(用于证明系统满足其规范的属性)。

尽管 formal methods 能够提供严格的正确性保证,但其使用也存在一些挑战,例如可能需要较高的数学技能,且往往需要较大的时间和资源投入。因此,实际中并不是所有的项目都会使用 formal methods,但在需要确保高可靠性和安全性的领域(如航空航天、医疗设备和核能设施等),它们的应用尤为常见。

在这里插入图片描述

案例1:造影机器

背景:塞拉皮姆25号是一台在1980年代部署的辐射治疗机。它由一台被视为复古的PDP 11机器驱动,这台机器在UNIX历史中颇有知名度。这台治疗机主要通过发射高能辐射束来治疗癌症。

  • 问题:塞拉皮姆25号的使用导致多人因辐射过量而死亡。其中一个案例是在1986年,一名叫科克斯的患者在接受治疗时被击中了极强的辐射束。他尝试站起来,但操作员再次运行了机器,他被第二次击中。他试图逃跑并敲打连接治疗室和控制室的门,但他最后还是因过量辐射在五个月后死亡。
  • 系统的缺陷:塞拉皮姆25号的软件经常出现错误信息,这导致它并不是一个特别可靠的设备。另外,它的用户界面是一个文本终端,只有黑白两种颜色,操作员只能通过键盘进行操作。在这个界面上修改指令很复杂,需要移动光标删除并替换字母,这样的设计几乎就是在鼓励出错。
  • 安全机制的问题:在25号之前,塞拉皮姆公司生产的前两代辐射治疗机中,有硬件机制防止对人体施加过量辐射。但是在25号上,他们决定用软件替代这些硬件机制,他们过于自信地认为软件可以完全控制机器并保证不会出问题。
  • 制造商的态度:即使发生了问题,制造商最初拒绝承认他们的机器存在问题,因此机器并未立即停用,这导致更多的人受到了伤害。
  • 与现代问题的相似性:在当前的一些案例中,我们可以看到类似的问题。例如,在特斯拉的自动驾驶软件的问题中,也存在过度自信软件的情况,导致没有足够的安全防护措施。

案例2: 特斯拉汽车的自动驾驶功能

  • 有关特斯拉汽车的讨论主要集中在其自动驾驶功能,特别是对其安全性的考量。以下是关于特斯拉汽车的主要描述和思考:
  • 过度自信的问题:特斯拉在其自动驾驶软件中的过度自信。特斯拉的工程师可能过于相信他们的自动驾驶软件能力,忽视了额外的安全特性的重要性。这种过度自信可能导致了不必要的风险,可能导致了一些致命的事故。
  • 安全功能的缺失:文中提到,特斯拉的自动驾驶系统被设计为可以在任何时候被驾驶员干预。然而,这个设计似乎预设了驾驶员会始终保持警觉并及时干预,而这可能与现实中驾驶员使用自动驾驶功能的心理反应不符。如果驾驶员对自动驾驶功能产生过度依赖,可能会导致警觉性降低,从而影响安全。
  • 人性化设计的缺乏:许多其他自动驾驶汽车制造商考虑到了人性化的设计,比如通过监控系统确保驾驶员始终保持警觉,如果驾驶员开始昏睡或者没有将目光放在路上,这些系统将关闭自动驾驶功能。然而,特斯拉的自动驾驶系统似乎没有完全采用这样的设计。
  • 这些思考和讨论对于任何正在研发或使用自动驾驶系统的人或组织都是非常重要的,因为它们提醒我们要保持对于这些系统能力的清晰理解,同时也要认识到额外的安全防护措施的重要性。

案例3:空客 320

  • 这段内容描述了一次涉及空客A320的飞行事故。空客A320是第一架采用飞行电缆(Fly-by-Wire)系统的民用飞机。在这个系统中,飞机上的控制操作并不直接影响物理作动器,而是生成电子信号,通过网络传送到飞机的其他部分,然后触发某个作动器。简单来说,飞机被构建为一个大型的分布式系统或网络系统,其中有许多小型计算机相互通信。
  • 然而,在A320的首次载客飞行中,发生了一起严重的事故。在苏格兰的一个航展上,这架飞机进行了一次低速低空飞行的演示,以展示飞行电缆技术的精密度。然而,飞机飞得太低,没有及时升高,最终撞上了树并坠毁。这次事故造成一名女士和两名儿童丧生。
  • 关于这起事故的原因,人们有不同的看法。官方的报告认为是飞行员操作失误导致的事故,飞行员飞得太低、太慢,没有看到树林。然而,飞行员则坚称是飞行电缆系统的问题,这个系统阻止了飞机在正确的姿态下稳定,并指出还有其他因素,比如他们并不知道那片森林的存在,因为在他们得到的地图上并没有标出,而且他们原本预计的是一个更长的跑道。
  • 这个例子的重要教训是,事故的发生往往不仅仅是单一的故障导致的,而是一系列因素的相互作用结果。我们需要考虑系统运行的上下文环境,包括操作系统的人员,并对他们可能的行为做出合理的假设。

案例4:波音737

  • 这是关于波音737 Max的案例。这款飞机在几年前发生了一些事故,导致飞机停飞了很长时间进行调查,并于2020年和2021年根据不同地区的规定重新获得了飞行许可。事故中发生了两次重大的波音737 Max飞机坠毁,一次是在2018年10月29日的狮子航空的航班,几个月后,埃塞俄比亚航空的航班也发生了坠毁,两次坠机均为同型号飞机。两次坠机事件导致346人死亡。
  • 调查发现,尽管存在许多可能的影响因素,但最核心的因素似乎是737 Max飞机上安装的一个名为MCAS的软件系统。MCAS是为了解决737 Max比前代飞机更大的发动机所引起的飞行特性改变的问题。737 Max比之前的73-7飞机的发动机更大,这就改变了飞机的气动特性。因此,他们必须安装一个软件系统来弥补不同的发动机对飞机飞行方式的影响。
  • MCAS系统的目标是在飞机的鼻子开始过多地向上指时检测并调整,以防止飞机的鼻子过度上扬。当检测到飞机鼻子过度上扬时,系统会自动使飞机鼻子下降,以平稳飞机,并防止发动机熄火。然而,如果飞机鼻子的角度传感器向飞行控制电脑传送错误的数据,那么这个系统可能会反复激活。这似乎就是这两次坠机事件的原因。这个系统在接收到错误的角度信息后,就会反复激活,使飞机鼻子反复下降,最终导致飞机坠地。
  • 另一个问题是,飞行员没有得到关于这个MCAS系统的培训,甚至根本没有被告知它的存在,因此他们不知道如何覆盖它。而波音在设计这个系统时,做了一些关于飞行员可能如何反应的假设,但飞行员并没有按照这些假设进行操作,这也是系统失败的原因之一。
  • 一些决策也导致了这个悲剧的发生,比如,为了使飞机更经济有效,他们决定安装更大的发动机,并且为了避免重新进行昂贵的认证过程,他们只使用一个

以下是详细的总结:

  • 关于文化:文化在软件领域(以及特斯拉等公司)中起着决定性的作用,影响着决策。在波音737 MAX的案例中,一种观点是,他们可能优先考虑了经济利益而非安全。
  • 对波音737 MAX的决策的概述:
  • 波音为了提高飞机的经济效益,通过装载更大的发动机来提高燃油效率,因此安装了MCAS系统。
    为了节省飞行员的再培训成本,波音并未告知飞行员MCAS系统的存在,也未更新训练资料。
    波音没有采用多个攻角传感器,可能是为了避免重新进行飞行控制认证。
  • 安全分析:波音决定了MCAS系统不能导致大规模的故障,因此没有采用冗余输入。他们认为该系统可能对飞机的飞行产生一些影响,但飞行员始终可以覆盖它,这种影响不会过大。然而,实际情况证明他们是错误的。
  • 后果:除了已经讨论过的346人死亡之外,这些飞机被无限期停飞了三四年,这是美国航空史上最长的停飞记录。此外,波音公司的损失大约在200亿美元左右,他们的首席执行官也下台了。由于连续的重大事故,很多航空公司取消了订单,这也让波音损失了大约200亿美元的收入。
  • 教训:从中可以学到几个教训,一个是关于文化的,另一个是关于贪图小便宜可能会让你长期付出代价。这个案例证明了一个老式的工程格言,即做一件事情最便宜的方式就是一开始就做对,而不是回头去改。
  • 文化和伦理:所有的工程师都有责任以伦理的方式行事。如果你在的公司将挣钱优先于道德行事或安全行事,那么你设计和实施的技术可能会对人们造成伤害。
  • 关于职业道德的呼吁:这段讲话最后呼吁听众,在他们的职业生涯中,应该记住这些失败的教训,思考他们所做的决定可能对人们的生活产生巨大的影响。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/606619.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

chatgpt赋能python:Python匹配空格

Python匹配空格 在Python中,空格是一个常见的字符,在字符串和文本处理中非常常见。但是,在某些情况下,我们需要匹配字符串中的空格,这个时候就需要使用Python匹配空格。 什么是Python匹配空格? Python匹…

皮卡丘反射型XSS

1.反射型xss(get) 进入反射型xss(get)的关卡,我们可以看到如下页面 先输入合法数据查看情况,例如输入“kobe” 再随便输入一个,比如我舍友的外号“xunlei”,“666”,嘿嘿嘿 F12查看源代码,发现你输入的数…

【5.29 代随_41day】 整数拆分、不同的二叉搜索树

整数拆分、不同的二叉搜索树 整数拆分1.动态规划的方法图解步骤代码 不同的二叉搜索树图解步骤代码 整数拆分 力扣连接:343. 整数拆分(中等) 1.动态规划的方法 确定dp数组(dp table)以及下标的含义 dp[i]&#xff1a…

redis第四章-redis下redisson分布式锁原理和源码分析

如上图,在最简单使用分布式锁的时候,我们一般获取一个锁对象,对这个对象进行加锁,当执行完业务流程代码后,对分布式锁进行解锁,这样就保证了高并发下程序的锁安全,以及原子性。 如图&#xff0c…

Linux 实验三 Linux C开发工具的使用

做实验之前必须会vim的简单使用 会使用vi 进入文件 i 插入 esc进入底行模式 :wq退出 1、vi编辑器和gcc编译器的简单使用 (1)在用户主目录下新建一个目必须掌握录,命名为vifile (2)进入目录vifile (3&…

LearnOpenGL-高级OpenGL-10.实例化

本人初学者,文中定有代码、术语等错误,欢迎指正 文章目录 实例化例子1.1:100个2D四边形使用Uniform 实例化数组例子1.2:100个2D四边形使用实例化数组例子2.1:行星带不使用实例化数组例子2.2:行星带使用实例…

【转码】nohup后台执行ffmpeg转码后推流srs

【ffmpeg】flv1转码h264且降低分辨率 【ffmpeg】filter_complex 转码视频保留音频推直播flv流 拉流播放剪辑到2M mp4 转flv 同时转码,拉流地址:http://1.1.1.5:8078/live/streamLow.flv 过了三个月,忘了。通过查询后台程序,判断当时自己是用的哪个脚本:看下上次操作的时间…

MySQL简单教程

MySQL的数据类型 类型用途int整型,相当于java的intbigint整型,相当于java的longfloat浮点型double浮点型datetime日期类型timestamp日期类型(可存储时间戳)char定长字符varchar不定长字符text大文本,用于存储很长的…

皮卡丘xss之盲打、xss之过滤

1.xss之盲打 我们先按照题目输入 提交后&#xff0c;很平常 再试试插入payload&#xff1a;<script>alert(1)</script>和<script>alert(2)</script> 提交后还是不变 此时我们看提示 我们尝试访问该地址&#xff1a;127.0.0.1/pk/vul/xss/xssblind/ad…

聊聊Scrum价值观与测试启发

这是鼎叔的第六十二篇原创文章。行业大牛和刚毕业的小白&#xff0c;都可以进来聊聊。 欢迎关注本公众号《敏捷测试转型》&#xff0c;星标收藏&#xff0c;大量原创思考文章陆续推出。 敏捷理论博大精深&#xff0c;相关实践方法论和工具层出不穷&#xff0c;各大公司都有特…

从零开始学习JVM(六)-直接内存和执行引擎

1 直接内存介绍 直接内存不是虚拟机运行时数据区的一部分&#xff0c;也不是《Java虚拟机规范》中定义的内存区域。直接内存是在Java堆外的、直接向系统申请的内存空间。直接内存来源于NIO&#xff0c;通过存在堆中的DirectByteBuffer操作Native内存。通常访问直接内存的速度会…

Stable Diffusion教程

什么是Stable Diffusion Stable Diffusion是一种潜在扩散模型&#xff08;Latent Diffusion Model&#xff09;&#xff0c;能够从文本描述中生成详细的图像。它还可以用于图像修复、图像绘制、文本到图像和图像到图像等任务。简单地说&#xff0c;我们只要给出想要的图片的文…

RK3588平台开发系列讲解(网络篇)本地套接字

平台内核版本安卓版本RK3588Linux 5.10Android 12文章目录 一、本地套接字是什么二、本地字节流套接字 服务器三、本地字节流套接字 客户端沉淀、分享、成长,让自己和他人都能有所收获!😄 📢 本地套接字是 IPC,也就是本地进程间通信的一种实现方式。除了本地套接字以外,…

皮卡丘Unsafe Filedownload

1.不安全的文件下载概述 文件下载功能在很多web系统上都会出现&#xff0c;一般我们当点击下载链接&#xff0c;便会向后台发送一个下载请求&#xff0c;一般这个请求会包含一个需要下载的文件名称&#xff0c;后台在收到请求后 会开始执行下载代码&#xff0c;将该文件名对应…

旧改快讯--桑泰南山桃源“工改商住”项目规划修改

南山区桃源街道西丽同富裕工业城城市更新单元原列入《2019年深圳市南山区城市更新单元计划第一批计划》&#xff0c;后进行更新方向调整&#xff0c;列入《2020年深圳市南山区城市更新单元计划第三批计划》&#xff0c;2022年8月发布实施主体公示&#xff0c;实施主体为深圳市桑…

chatgpt赋能python:Python到底是一个SEO友好的选择吗?

Python到底是一个SEO友好的选择吗&#xff1f; 随着Python成为越来越受欢迎的编程语言&#xff0c;人们开始担心它是否适用于SEO。因为SEO是一项关键性能指标&#xff0c;因此希望了解Python是否确实是适用于这一目标。 Python的SEO优缺点 首先&#xff0c;Python确实具有一…

shell编程之循环语句与函数

文章目录 一.shell函数1.作用2.使用函数的优势3.shell函数定义3.1方式1&#xff1a;3.2方式2&#xff1a; 4.调用函数的方法5.函数返回值5.1 return5.2 exit 6.1-100奇偶求和相加 二.函数传参1.含义2.函数传参的方式 三.函数变量的作用范围1.函数变量的作用范围2.调用函数2.1示…

什么蓝牙耳机戴着舒服,介绍几款佩戴舒适的骨传导蓝牙耳机

骨传导耳机是一种新式的耳机&#xff0c;与常规听歌的入耳式耳机相比&#xff0c;不需要将耳机塞住的耳道&#xff0c;在长时间佩戴时不会损伤听觉。能听声音不需要入耳&#xff0c;在户外运动时能及时听到环境音&#xff0c;避免安全隐患。现在市场上有骨传导。以下是一些骨传…

解决message(antd-design组件库)弹窗多次数出现的问题

当我们多次点击按钮的时候&#xff0c;会出现下图这样的情况&#xff1a; 网址&#xff1a; 全局提示 Message - Ant Design 这样看起来&#xff0c;会降低用户的体验。所以&#xff0c;我想要的效果是&#xff0c;点一次出现一次&#xff0c;当我再次点击的时候&#xff0c;会…

二叉搜索树桶排序

1、二叉搜索树又称二叉排序树&#xff0c;它或者是一棵空树&#xff0c;或者是具有以下性质的二叉树 *若它的左子树不为空则左子树上所有的节点的值都小于根节点的值 *若它的右子树不为空则右子树上所有的节点的值都大于根节点的值 *它的左右子树也分别是一棵二叉搜索树 *二…