系统架构设计师-系统可靠性分析与设计

目录

一、可靠性相关基本概念

二、可靠性指标

        1、串联系统与并联系统可靠性指标计算

        2、混合系统

三、可靠性设计

        1、影响软件可靠性的主要因素:

        2、增加可靠性的解决方案

                2.1 避错技术

                2.2 降低复杂度设计

                2.3 检错技术

                2.4 容错技术

        3、双机容错


一、可靠性相关基本概念

        【可靠性】:可靠性是软件系统在应用或系统错误面前 ,在意外或错误使用的情况下维持软件系统的功能性的基本能力。

        【可用性】:可用性是系统能够正常运行的时间比例

        软件可靠性 ≠ 硬件可靠性

        (1)复杂性:软件复杂性比硬件高,大部分失效来自于软件失效

        (2)物理退化:硬件失效主要是物理退化所致,软件不存在物理退化。

        (3)唯一性:软件是唯一的,每个COPY版本都一样,而两个硬件不可能完全一样。

        (4)版本更新周期:硬件较慢,软件较快。

二、可靠性指标

        【失效率】:(λ)λ = N / T,N表示在某个时间段内失效的总数,T则是相应时间段的总时间。

        【平均无故障时间】:(MTTF)MTTF = 1 / λ,λ为失效率

        【平均故障修复时间】:(MTTR)MTTR = 1 / μ,μ为修复率

        【平均故障间隔时间】:(MTBF)MTBF = MTTR + MTTF

        【系统可用性】:MTTF / (MTTR + MTTF)* 100%

         在实际应用中一般MTTR很小,所以通常认为MTBF ≈ MTTF。

        1、串联系统与并联系统可靠性指标计算

                串联: 

                        可靠性:R = R1 * R2 * ... * Rn

                        使效率近似公式:λ = λ1 + λ2 + ... + λn

                并联:

                         可靠性:R = 1 -(1 - R1)*(1 - R2)* ...*(1 - Rn)

        2、混合系统

 

三、可靠性设计

        1、影响软件可靠性的主要因素:

        (1)软件的开发方法和开发环境(2)运行环境

        (3)软件系统的规模(4)软件的内部结构(5)软件的可靠性投入

        

        2、增加可靠性的解决方案

                2.1 避错技术

                        例如:使用CMMI(能力成熟度模型集成)规范管理过程、应用测试等。

                2.2 降低复杂度设计

                        设计层面降低系统复杂度。

                2.3 检错技术

                        出错后报警,人工处理,成本较低。

                2.4 容错技术

                        (1)N版本程序设计(静态冗余)

                                多个版本同时计算获得到结果,通过表决器算法最终确定采用结果。主要应用在可靠性要求极高的场景,成本高。例:飞行控制系统、高铁信号系统。

                                 与通常软件开发过程不同的是,N版本程序设计增加了三个新的阶段:相异成分规范评审、相异性确认、背对背测试。

                                N版本程序的同步、N版本程序之间的通信、表决算法(全等表决、非精确表决、Cosmetie表决)、一致比较问题、数据相异性。

 

                        (2)恢复快设计(动态冗余)

                                 设计时应保证实现主块和后备块之间的独立性,避免相关错误的产生,使主块和备份块之间的共性错误降到最低程度。

                                必须保证验证测试程序的正确性。

 

                        【N版本程序设计与恢复快方法区别】

                                 前向恢复:使当前的计算继续下去,把系统恢复成连贯的正确状态,弥补当前状态的不连贯情况。

                                后向恢复:系统恢复到前一个正确状态,继续执行。

 

                        (3)防卫式程序设计

                                 对于程序中存在的错误和不一致性,通过在程序中包含错误检查代码和错误恢复代码,使得一旦错误发生,程序能撤销错误状态,恢复到一个已知的正确的状态中去。

                                实现策略:错误检测、破坏估计、错误恢复。(例:代码中 try / catch 函数)

                        冗余:

                        (1)结构冗余(硬件冗余、软件冗余)

                        (2)信息冗余(校验码)

                        (3)时间冗余(重复多次进行相同计算)

 

        3、双机容错

                (1)双机热备模式(主系统、备用系统)

                (2)双机互备模式(同时提供不同服务,心不跳则接管)

                (3)双机双工模式(同时提供相同的服务,集群的一种)

                 双机模式是集群的前身

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

idea中提示Unsupported characters for the charset ‘ISO-8859-1‘

application.properties中文注释拉黄线 ,提示Unsupported characters for the charset ISO-8859-1 解决办法: 注意: 改完之后之前输入的中文就变成“ ???”了,建议备份一下 1、打开setti…

BLE蓝牙协议栈分析

BLE——协议层次结构 一、BLE Controller Controller实现射频相关的模拟和数字部分,完成最基本的数据发送和接收,Controller对外接口是天线,对内接口是主机控制器接口HCI(Hostcontroller interface); 控制…

尚医通(医院预约挂号系统)笔记

文章目录 一. 登录系统1. 手机登录1.1 业务流程1.2 代码1.3 JWT 2. 微信登陆2.1 业务流程2.2 代码2.3 OAthu2 3. 用户认证与网关整合 二. 预约挂号1. 业务流程及模块设计 一. 登录系统 1. 手机登录 1.1 业务流程 传入手机号和验证码校验手机号和验证码是否为空校验手机验证码…

【用unity实现100个游戏之6】制作一个战旗自走棋类游戏(附源码)

文章目录 前言导入素材开始1. 设置瓦片间隙2. 放置全图瓦片3. 美化瓦片地图4. 添加树木障碍物5. 设定不同的排序图层6. 瓦片交互6. 瓦片交互优化6. 瓦片是否允许角色7. 添加角色8. 新增游戏管理脚本9. 角色移动范围逻辑10. 角色移动范围可视化11. 角色移动12. 重置瓦片颜色12. …

C语言必会题目(2)

W...Y的主页 😊 代码仓库分享💕 今天继续分享C语言必会的题目,上一篇文章主要是一些选择题,而今天我们主要内容为编程题的推荐与讲解 准备好迎接下面的题了吗?开始发车了!!! 输入…

Linux源码剖析匿名共享内存shmem原理

如下问题如果都清楚了就不用看本文了: 1. shmem ram文件系统的初始化流程是怎样的 2. shmem思想上想复用基于文件的操作流程,实现上shmem也引入了一个文件,那么类似文件open会生成struct file,shmem的struct file怎么生成的 3.…

Ansible Playbook快速部署一主多从MySQL集群

部署目标: 1、快速部署一套一主两从的mysql集群 2、部署过程中支持交互式定义安装目录及监听端口号 部署清单目录结构: rootmaster:/opt/mysql# tree . . ├── group_vars │ └── all.yml ├── hosts ├── mysql.yml └── roles└── mys…

【Spring Cloud +Vue+UniApp】智慧建筑工地平台源码

智慧工地源码 、智慧工地云平台源码、 智慧建筑源码支持私有化部署,提供SaaS硬件设备运维全套服务。 前言:互联网建筑工地,是将互联网的理念和技术引入建筑工地,从施工现场源头抓起,最大程度的收集人员、安全、环境、材…

C++的六大“天选之子“拷贝构造与与运算符重载

🎈个人主页:🎈 :✨✨✨初阶牛✨✨✨ 🐻推荐专栏1: 🍔🍟🌯C语言初阶 🐻推荐专栏2: 🍔🍟🌯C语言进阶 🔑个人信条: 🌵知行合一 &#x1f…

MySql(干货)

写这篇博客的目的不是为了将介绍原理,而是为了Sql中的代码操作属实太多了,在这里进行一个汇总,方便查阅!!! Sql分类 分类全称说明 DDL Data Definintion Language数据定义语言,用来定义数据库对…

Docker知识(详细笔记)

概览图 文章目录 概览图docker 知识速查1. 初识 Docker1.1 概念1.2 特点1.3 架构1.4 应用场景1.5 安装 Docker1.6 配置 Docker 镜像 2. Docker 命令2.1 Docker 进程相关命令2.2 Docker 镜像相关命令2.3 Docker 容器相关命令 3. Docker 容器的数据卷3.1 数据卷概念及作用3.1.1 概…

jvm里的内存溢出

目录 堆溢出 虚拟机栈和本地方法栈溢出(栈溢出很少出现) 方法区和运行时常量池溢出 本机内存直接溢出(实际中很少出现、了解即可) 堆溢出 堆溢出:最常见的是大list,list里面有很多元素 堆溢出该怎么解决…

修改IDEA的idea.vmoptions参数导致IDEA无法打开(ReservedCodeCacheSize)

事发原因 Maven导依赖的时候OOM,因此怀疑是内存太小,尝试修改idea.vmoptions的参数,然后发现IDEA重启后打不开了,卸载重装后也无法打开。。。 实际上如果导包爆出OOM的话应该调整下图参数,不过这都是后话了 解决思路…

52.Linux学习day02 基础命令详解2

目录 Linux常见的基础命令 1.cp 2.mv 3.rm 4.find 5.grep 6.管道 | 7.wc 8.su 9.关机与重启 10.runleve Linux常见的基础命令 1.cp 用于复制文件或目录 使用 cp 命令的基本格式如下: cp [选项] 源文件 目标文件或目录选项:cp 命令支持一些选…

Spring5新功能

文章目录 前言一、整合日志功能二、Nullable注解三、函数式风格编程四、JUnit5单元测试框架总结 前言 整合日志、Nullable注解、函数式风格编程、整合JUnit5、Webflux 一、整合日志功能 Spring5移除了Log4jConfigListener,官方建议使用Log4j2. 依赖: &…

k8s 滚动更新控制(一)

在传统的应用升级时,通常采用的方式是先停止服务,然后升级部署,最后将新应用启动。这个过程面临一个问题,就是在某段时间内,服务是不可用的,对于用户来说是非常不友好的。而kubernetes滚动更新,…

研发工程师玩转Kubernetes——PVC使用Label和storage选择PV

在《研发工程师玩转Kubernetes——local型PV和PVC绑定过程中的状态变化》和《研发工程师玩转Kubernetes——使用local型PV在不同Pod上共享数据》中,我们介绍了指定VPC的spec.volumeName为PV名称来绑定它们的方法。本文将介绍PVC在创建时,系统自动选择绑定…

什么是DNS欺骗及如何进行DNS欺骗

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、什么是 DNS 欺骗?二、开始1.配置2.Ettercap启动3.操作 总结 前言 我已经离开了一段时间,我现在回来了,我终于在做一个教…

[vscode]vscode运行cmake时候exe不执行而且前面多一些字符

遇到一个奇怪问题,你单独打开cmd去执行vscode编译过程序没问题,但是你在vscode确不会执行,这是因为vscode没有读取到电脑环境变量导致加载DLL失败,但是在vscode终端不会给你提示少DLL,需要你自己把DLL复制到exe目录即可解决问题。…

Vue.js 生命周期详解

Vue.js 是一款流行的 JavaScript 框架,它采用了组件化的开发方式,使得前端开发更加简单和高效。在 Vue.js 的开发过程中,了解和理解 Vue 的生命周期非常重要。本文将详细介绍 Vue 生命周期的四个阶段:创建、挂载、更新和销毁。 …