当前位置: 首页 > news >正文

系统架构设计高级技能 · 软件可靠性分析与设计(三)【系统架构设计师】

系列文章目录

系统架构设计高级技能 · 软件架构概念、架构风格、ABSD、架构复用、DSSA(一)【系统架构设计师】
系统架构设计高级技能 · 系统质量属性与架构评估(二)【系统架构设计师】
系统架构设计高级技能 · 软件可靠性分析与设计(三)【系统架构设计师】

现在的一切都是为将来的梦想编织翅膀,让梦想在现实中展翅高飞。
Now everything is for the future of dream weaving wings, let the dream fly in reality.

系统架构设计 · 软件可靠性分析与设计(三)

  • 系列文章目录
  • 一、软件可靠性基本概念★
  • 二、软件可靠性建模★
  • 三、软件可靠性管理★
  • 四、软件可靠性分析★★★
    • 4.1 可靠性指标
    • 4.2 串联系统(可靠性)
    • 4.3 并联系统(可靠性)
    • 4.4 混合系统(可靠性)
  • 五、软件可靠性设计★★★★
    • 5.1 影响软件可靠性的主要因素
    • 5.2 软件的可靠性设计技术
      • 5.2.1 容错设计技术
        • 5.2.1.1 冗余设计 - 容错设计技术
        • 5.2.1.2 N版本程序设计 - 容错设计技术
        • 5.2.1.3 恢复块方法 - 容错设计技术
        • 5.2.1.4 防卫式程序设计 - 容错设计技术
      • 5.2.2 检错错设计技术
      • 5.2.3 降低复杂度设计技术
      • 5.2.3 系统配置技术
        • 5.2.3.1 双机容错技术 - 系统配置技术
        • 5.2.3.2 服务器集群技术 - 系统配置技术
  • 六、软件可靠性测试★
  • 七、软件可靠性评价★

一、软件可靠性基本概念★

系统可靠性 是系统在规定的时间内及规定的环境条件下,完成规定功能的能力,也就是系统无故障运行的概率。也就是软件系统在应用或系统错误面前,在意外或错误使用的情况下维持软件系统的功能特性的基本能力。
系统可用性 是指在某个给定时间点上系统能够按照需求执行的概率,也就是系统能够正常运行的时间比例。

软件可靠性 ≠ 硬件可靠性,其区别:

  • 复杂性 ,软件复杂性比硬件高, 大部分失效来自于软件失效
  • 物理退化 ,硬件失效主要是物理退化所致,软件不存在物理退化
  • 唯一性,软件是唯一的 ,每个COPY版本都一样,而两个硬件不可能完全一样。
  • 版本更新周期,硬件较慢,软件较快

软件可靠性的定量描述
软件的可靠性是在软件使用条件、在规定时间内、系统的输入/输出、系统的使用等变量构成的数据表达式。
(1)规定时间:自然时间、运行时间、执行时间,度量软件的可靠性效果最好
(2)失效概率:软件从运行开始算起,运行到某一时间t,出现失效的概率是一个随机函数,称为失效概率。
(3)可靠度:是如软件在规定条件下、规定时间内不失效的概率。
(4)失效强度:单位时间内软件失效的概率。
(5)失效率:也称风险函数或条件失效强度,在运行系统未出现失效的情况下,单位时间软件系统出现失效的概率。
(6)平均无失效时间:软件运行后,到下一次失效的平均时间。更直观地反应软件的可靠度。

可靠性的目标
软件可靠性是指用户对所使用的软件的性能满意程度的期望。可以用可靠性、平均失效时间和故障强度等来描述。

软件可靠性测试的意义
(1)软件失效可能造成灾难性的后果。
(2)软件的失效在整个计算机系统失效中的比例较高。
(3)相比硬件可靠性技术,软件可靠性技术不成熟。
(4)软件可靠性问题会造成软件费用增长。
(5)系统对软件的依赖性强,对生产活动和社会生活影响日益增大。

软件可靠性测试的目的
(1)发现软件系统的缺陷【需求分析、软件设计、系统编码、测试实施】
(2)为软件的使用和维护提供可靠性依据
(3)确认软件是否达到可靠性的定量要求

广义软件可靠性测试 是为了最终评价软件系统的可靠性而运用的建模、统计试验、分析和评价等一系列手段对软件系统实施一种测试。

狭义软件可靠性测试 指为了获取可靠性数据,按预先确定好的测试用例,在软件预期使用环境中,对软件实施的一种测试。

二、软件可靠性建模★

软件可靠性模型是指 为预计或估算软件的可靠性所建立的可靠性框图和数学模型

一个软件可靠性模型通常(但不是绝对)由以下几部分组成

  • 模型假设
    模型是实际情况的简化或规范化,总要包含若干假设,例如测试的选取代表实际运行剖面,不同软件失效独立发生等。

  • 性能度量
    软件可靠性模型的输出量就是性能度量,如失效强度、残留缺陷数等。在软件可靠性模型中性能度量通常以数学表达式给出。

  • 参数估计方法
    某些可靠性度量的实际值无法直接获得,例如残留缺陷数,这时需通过一定的方法估计参数的值,从而间接确定可靠性度量的值。

  • 数据要求
    一个软件可靠性模型要求一定的输入数据,即软件可靠性数据。

绝大多数的模型包含3个共同假设

  • 代表性假设
    是指可以用测试产生的软件可靠性数据预测运行阶段的软件可靠性行为。

  • 独立性假设
    此假设认为软件失效是独立发生于不同时刻,一个软件失效的发生不影响另一个软件失效的发生。

  • 相同性假设
    此假设认为所有软件失效的后果(等级)相同,即建模过程只考虑软件失效的具体发生时刻,不区分软件的失效严重等级。

软件可靠性(模型分类)模的方法包括

  • 种子法模型
    利用捕获一再捕获抽样技术估计程序中的错误数,在程序中预先有意“播种”一些设定的错误“种子”,然后根据测试出的原始错误数和发现的诱导错误的比例,来估计程序中残留的错误数。
  • 失效率类模型
    用来研究程序的失效率
  • 曲线拟合类模型
    用回归分析的方法研究软件复杂性、程序中的缺陷数、失效率、失效间隔时间。
  • 可靠性增长模型
    这类模型预测软件在检错过程中的可靠性改进,用增长函数来描述软件的改进过程。
  • 程序结构分析模型
    是根据程序、子程序及其相互间的调用关系,形成一个可靠性分析网络。
  • 输入域分类模型
    选取软件输入域中的某些样本“点”运行程序,根据这些样本点在“实际”使用环境中的使用概率的测试运行时的成功/失效率,推断软件的使用可靠性。
  • 执行路径分析方法模型
    分析方法与上面的模型相似,先计算程序各逻辑路径的执行概率和程序中错误路径的执行概率,再综合出该软件的使用可靠性。
  • 非齐次泊松过程模型
    是以软件测试过程中单位时间的失效次数为独立泊松随机变量,来预测在今后软件的某使用时间点的累计失效数。
  • 马尔可夫过程模型
  • 贝叶斯模型
    是利用失效率的试验前分布和当前的测试失效信息,来评估软件的可靠性。

三、软件可靠性管理★

软件可靠性管理的各个阶段,如图:
在这里插入图片描述

图3_1 软件可靠性管理阶段

四、软件可靠性分析★★★

4.1 可靠性指标

  • 平均无故障时间,MTTF = 1 / λ,λ为失效率
  • 平均故障修复时间,MTTR = 1 / μ,μ为修复率
  • 平均故障间隔时间,MTBF = MTTR + MTTF
  • 系统可用性,MTTF / MTBF = MTTF / (MTTR + MTTF) × 100%
    在这里插入图片描述
图4_1 可靠性指标

4.2 串联系统(可靠性)

在这里插入图片描述

图4_2 串联系统(可靠性)

4.3 并联系统(可靠性)

在这里插入图片描述

图4_3 并联系统(可靠性)

4.4 混合系统(可靠性)

在这里插入图片描述

图4_4 混合系统(可靠性)

五、软件可靠性设计★★★★

5.1 影响软件可靠性的主要因素

从技术的角度来看,影响软件的可靠性的因素包括:运行环境、软件规模、软件的内部结构、软件的开发方法和开发环境、软件的可靠性投入

在这里插入图片描述

图5_1 影响软件可靠性的主要因素

5.2 软件的可靠性设计技术

在这里插入图片描述

图5_2 软件的可靠性设计

5.2.1 容错设计技术

5.2.1.1 冗余设计 - 容错设计技术

在一套完整的软件系统之外,设计一种不同路径、不同算法或不同的实现方式方法的模块或系统作为备份,再出现故障时可用冗余部分进行替换。

N版本程序设计和恢复块方法都是基于设计冗余的思想。

5.2.1.2 N版本程序设计 - 容错设计技术

通过设计多个模块或不同的版本,对相同初始条件和相同输入的操作结果,实行多数表决,防止其中某一个模块/版本的故障提供错误的服务。

N版本程序设计是一种静态的故障屏蔽技术,采用前向恢复的策略。
在这里插入图片描述

图5_3 N版本程序设计

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

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

5.2.1.3 恢复块方法 - 容错设计技术

选择一组操作作为容错设计单元,把普通的程序块变成恢复快。

恢复块方法是一种动态的故障屏蔽技术,采用后向恢复策略。

在这里插入图片描述

图5_4 恢复块方法

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

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

N版本程序设计和恢复块方法对比

对比N版本程序设计恢复块方法
硬件运行环境表决单机
错误检测方法多机验证测试程序
恢复策略前向恢复后向恢复
实时性
  • 前向恢复 :使当前的计算继续下去,把系统恢复成连贯的正确状态,弥补当前状态的不连贯情况。
  • 后向恢复 :系统恢复到前一个正确状态,继续执行。

5.2.1.4 防卫式程序设计 - 容错设计技术

N版本程序设计和恢复块方法都是基于设计冗余的思想,这给程序员和处理机都增加了许多工作,而且它们的结构本身又带来了一些问题和困难,例如,多版本程序设计中的相关性错误问题和恢复块方法中的验证测试的设计等。

防卫式程序设计 是一种不采用任何传统的容错技术就能实现软件容错的方法,对于程序中存在的错误和不一致性,防卫式程序设计基本思想通过在程序中包含错误检查代码和错误恢复代码,使得一旦发生错误,程序就能撤消错误状态,恢复到一个已知的正确状态中去

实现策略包括:错误检测、破坏估计和错误恢复三个方面。

5.2.2 检错错设计技术

  • 检错技术 代价低于容错技术和冗余技术,但是不能自动解决故障,需要人工干预

  • 检错技术注重考虑:检测对象、检测延时、实现方式、处理方式四个要素。

5.2.3 降低复杂度设计技术

降低复杂度设计设计思想 :在保证软件功能基础上,简化软件结构、缩短软件结构、缩短程序代码长度、优化软件数据流向、降低软件复杂度、提高软件可靠性

5.2.3 系统配置技术

系统配置技术可分为双机容错技术和服务器集群技术

5.2.3.1 双机容错技术 - 系统配置技术

双机容错技术 是一种软硬件结合的容错应用方案。该方案是由两台服务器和一个外接共享磁盘阵列及相应的双机软件组成在双机容错系统中,两台服务器一般区分为主系统和从系统(备用系统),两台服务器互为主从关系。每台服务器都有自己的系统盘(本地盘),安装操作系统和应用程序。每台服务器至少安装两块网卡,一块连接到网络上,对外提供服务;另一块与另一台服务器连接,用以侦测对方的工作状况。同时,每台服务器都连接在共享磁盘阵列上,用户数据存放在共享磁盘阵列中,当一台服务器出现故障时,另一台服务器主动替代工作,保证网络服务不间断。整个网络系统的数据通过磁盘阵列集中管理,极大地保护了数据的安全性和保密性。

双机容错系统根据两台服务器的工作方式不同,可以有三种不同的工作模式,分别是双机热备模式、双机互备模式和双机双工模式

采用心跳的方法保证主系统与备用系统的联系

  • 双机热备模式 - (一台工作,一台后备)
    正常情况下,一台服务器处于工作状态(主系统),另一台服务器处于监控准备状态(备用系统)。如果没有采用共享磁盘阵列,则用户数据同时往两台服务器中写入,以保证数据的即时同步。当主系统出现故障时,通过双机软件将备用系统激活,保证应用在短时间内完全恢复正常使用。当主系统修复后,可重新接入系统要回自己的应用。
    双机热备模式是目前采用较多的一种模式,典型应用有证券资金服务器或行情服务器等。
    双机热备模式的主要缺点在于,备用系统长期处于后备的状态,存在一定的计算资源浪费。

  • 双机互备模式 - (两台运行相对独立应用,互为后备)
    两台服务器均处于工作状态,为前端客户机提供各自不同的应用服务,并互相检测对方的运行情况。也就是说,两台服务器同时运行,但彼此均设为备用系统。当某一台服务器出现故障时,另一台服务器可以在短时间内将故障服务器的应用接管过来,从而保证了应用的持续性。双机互备模式的主要缺点是对服务器的性能要求比较高。

  • 双机双工模式 - (两台同时运行相同的应用,互为后备)
    双机双工模式是集群(cluster)技术的一种形式,两台服务器均处于工作状态,同时为前端客户机提供相同的应用服务,以保证整体系统的性能,实现负载均衡和互为备份。

5.2.3.2 服务器集群技术 - 系统配置技术

集群技术就是将多台计算机组织起来进行协同工作,它是提高系统可用性和可靠性的一种技术。在集群系统中,每台计算机均承担部分计算任务和容错任务,当其中一台计算机出现故障时,系统使用集群软件将这台计算机从系统中隔离出去,通过各计算机之间的负载转嫁机制完成新的负载分担,同时向系统管理人员发出警报。集群系统通过功能整合和故障过渡,实现了系统的高可用性和可靠性。

集群内个节点服务器通过内部局域网相互通信,若某节点服务器发生故障,这台服务器运行的应用被另一个节点服务器自动接管。

  • 高性能计算集群
    指以提高科学计算能力为目的计算机集群技术,它是一种并行计算集群的实现方法。并行计算是指将一个应用程序分割成多块可以并行执行的部分,并指定到多个处理器上执行的方法。

  • 负载均衡集群
    负载均衡集群在多节点之间按照一定的策略(算法)分发负载。负载均衡建立在现有网络结构之上,它提供了一种廉价有效的方法来扩展服务器带宽,增加吞吐量,提高数据处理能力。负载均衡是一种动态均衡,它通过一些工具实时地分析数据包,掌握网络中的数据流量状况,把任务合理分配出去。
    比较常用的负载均衡实现技术主要有以下几种:
    1)基于特定软件的负载均衡(应用层):很多网络协议都支持重定向功能,例如,基于HTTP重定向服务,其主要原理是服务器使用HTTP重定向指令,将一个客户端重新定位到另一个位置。服务器返回一个重定向响应,而不是返回请求的对象。客户端确认新地址然后重发请求,从而达到负载均衡的目的。
    2)基于DNS的负载均衡属于传输层负载均衡技术:其主要原理是在DNS服务器中为同一个主机名配置多个地址,在应答DNS查询时,DNS服务器对每个查询将以DNS文件中主机记录的IP地址按顺序返回不同的解析结果,将客户端的访问引导到不同的节点上去,使得不同的客户端访问不同的节点,从而达到负载均衡的目的。
    3)基于NAT的负载均衡:将一个外部IP地址映射为多个内部IP地址,对每次连接需求动态地转换为一个内部节点的地址,将外部连接请求引到转换得到地址的那个节点,上从而达到负载均衡的目的。
    4)反向代理负载均衡:将来自Internet上的连接请求以反向代理的方式动态地转发给内部网络上的多个节点进行处理,从而达到负载均衡的目的。
    5)混合型负载均衡

  • 高可用性集群
    在高可用性集群系统中,多台计算机一起工作,各自运行一个或几个服务,各为服务定义一个或多台备用计算机。当某台计算机出现故障时,备用计算机便立即接管该故障计算机的应用,继续为前端的用户提供服务。

六、软件可靠性测试★

  • 软件可靠性测试包括:
    可靠性目标的确定、运行剖面的开发、测试用例的设计、测试实施、测试结果的分析等。

  • 测试步骤:
    定义软件运行剖面(为软件的使用行为建模)一个 => 设计可靠性测试用例 => 实施可靠性测试。

七、软件可靠性评价★

  • 软件可靠性评价3个过程:
    选择可靠性模型、收集可靠性数据、可靠性评估和预测。

  • 选择可靠性模型考虑因素:
    模型假设的适用性、预测的能力与质量、模型输出值能否满足可靠性评价需求、模型使用的简便性。

  • 可靠性数据的收集:
    可靠性数据主要是指软件失效数据,是软件可靠性评价的基础,主要是在软件测试、实施阶段收集的。应采用的解决方法:及早确定所采用的的可靠性模型、制订可实施性较强的可靠性数据收集计划、重视软件测试数据的整理和分析、充分利用数据库来完成可靠性数据的存储和统计分析。

  • 可靠性评估和预测:
    判断是否达到了可靠性目标;如未能达到要再投入多少;在软件系统投入实际运行一年或若干时间后,经过维护、升级和修改,软件能否达到交付或部分交付用户使用的可靠性水平。辅助方法:失效数据的图形分析法、试探性数据分析技术。

相关文章:

系统架构设计高级技能 · 软件可靠性分析与设计(三)【系统架构设计师】

系列文章目录 系统架构设计高级技能 软件架构概念、架构风格、ABSD、架构复用、DSSA(一)【系统架构设计师】 系统架构设计高级技能 系统质量属性与架构评估(二)【系统架构设计师】 系统架构设计高级技能 软件可靠性分析与设计…...

界面控件DevExpress WPF Chart组件——拥有超快的数据可视化库!

DevExpress WPF Chart组件拥有超大的可视化数据集,并提供交互式仪表板与高性能WPF图表库。DevExpress Charts提供了全面的2D / 3D图形集合,包括数十个UI定制和数据分析/数据挖掘选项。 PS:DevExpress WPF拥有120个控件和库,将帮助…...

【网络安全】等保测评安全物理环境

【网络安全】等保测评&安全物理环境 前言第1章 安全物理环境1.1 物理位置选择1.2 物理访问控制(高风险项)1.3 防盗窃1.4 防雷击1.5 防火1.6 防水防潮1.7 防静电1.8 温湿度控制1.9 电力供应1.10 电磁防护 前言 等级保护对象是由计算机或其他信息终端…...

Intellij IDEA 导入 eclipse web 项目详细操作

Eclipse当中的web项目都会有这两个文件。但是idea当中应该是没有的,所以导入会出现兼容问题。但是本篇文章会教大家如何导入,并且导入过后还能使用tomcat运行。文章尽可能以图片的形式进行演示。我的idea使用的版本是2022.3.3版本。当然按正常来说版本之…...

安卓java A应用切换到B应用,来回切换不执行OnCreate

需求:安卓java如何做到A应用切换到B应用,如果B应用没启动就启动,如果B应用已经启动就仅仅切换到B应用。B应用再切换回A应用,不要重复执行OnCreate! 在 A 应用中的: 在 A 应用中,如果你希望在切换回 B 应用…...

【Linux】批量恢复文件权限

批量恢复文件权限 Linux 中,如果意外误操作将根目录目录权限批量设置,比如 chmod -R 777 / ,系统中的大部分服务以及命令将无法使用,这时候可以通过系统自带的 getfacl 命令来拷贝和还原系统权限,若是其他系统目录被误…...

数据可视化(八)堆叠图,双y轴,热力图

1.双y轴绘制 #双Y轴可视化数据分析图表 #add_subplot() dfpd.read_excel(mrbook.xlsx) x[i for i in range(1,7)] y1df[销量] y2df[rate] #用来正常显示负号 plt.rcParams[axes.unicode_minus]False figplt.figure() ax1fig.add_subplot(1,1,1)#一行一列,第一个区域…...

前台自动化测试:基于敏捷测试驱动开发(TDD)的自动化测试原理

一、自动化测试概述 自动化测试主要应用到查询结果的自动化比较,把借助自动化把相同的数据库数据的相同查询条件查询到的结果同理想的数据进行自动化比较或者同已经保障的数据进行不同版本的自动化比较,减轻人为的重复验证测试。多用户并发操作需要自动…...

基于SLAM的规划算法仿真复现|SLAM|智能规划

图片来自百度百科 前言 那么这里博主先安利一些干货满满的专栏了! 首先是博主的高质量博客的汇总,这个专栏里面的博客,都是博主最最用心写的一部分,干货满满,希望对大家有帮助。 高质量博客汇总https://blog.csdn.n…...

sqlite3多线程操作问题

在项目中使用sqlite3,有时会报database is locked 两种方式 1、多线程读,多线程写,只使用共同一个数据库连接,即使用同一个SQLiteHelper连接,调用sqlite3_busy_timeout 2、多线程读,单线程写,每…...

ACCESS数据库增删改查

[添加COM组件] A: Microsoft ADO Ext. 2.8 for DDL and Security B: Microsoft ActiveX Data Objects 2.8 Library [添加头文件]using System.Data.OleDb; using System.Data; using ADOX; using System.IO; using System; using System.Collections.Generic; using System.L…...

动捕系统mockup_optitrack替换为VRPN传递信息

motive:启动→载入已有→layout选择capture→view选择data streming→复选marker右键create刚体→rename刚体→修改local interface为本机ip→勾选vrpn ROS端:roslaunch vrpn_client_ros vrpn_efy.launch 记得修改server地址为motiveip地址 关掉motive…...

【服务平台】Rancher运行和管理Docker和Kubernetes,提供管理生产中的容器所需的整个软件堆栈

Rancher是一个开源软件平台,使组织能够在生产中运行和管理Docker和Kubernetes。使用Rancher,组织不再需要使用一套独特的开源技术从头开始构建容器服务平台。Rancher提供了管理生产中的容器所需的整个软件堆栈。  完整软件堆栈 Rancher是供采用容器的团…...

二叉树的完全性检验

给定一个二叉树的 root ,确定它是否是一个 完全二叉树 。 在一个 完全二叉树 中,除了最后一个关卡外,所有关卡都是完全被填满的,并且最后一个关卡中的所有节点都是尽可能靠左的。它可以包含 1 到 2h 节点之间的最后一级 h 。 示…...

激活函数总结(六):ReLU系列激活函数补充(RReLU、CELU、ReLU6)

激活函数总结(六):ReLU系列激活函数补充 1 引言2 激活函数2.1 RReLU激活函数2.2 CELU激活函数2.3 ReLU6 激活函数 3. 总结 1 引言 在前面的文章中已经介绍了介绍了一系列激活函数 (Sigmoid、Tanh、ReLU、Leaky ReLU、PReLU、Swish、ELU、SEL…...

tp5中的事务处理

使用事务首先要数据库支持事务; 如下MySQL数据库user表开启事务支持,即设计表->引擎设置为InnoDB->保存 事务处理 1. 数据库的表引擎需要是 InnoDB 才可以使用,如果不是调整即可; 2. 事务处理,需要执行多个 SQ…...

论文总结《Towards Evaluating the Robustness of Neural Networks(CW)》

原文链接 C&W 这篇论文更像是在讲一个优化问题,后面讲述如何针对生成对抗样本的不可解问题近似为一个可解的问题,很有启发。本文后面将总结论文各个部分的内容。 Motivation 文章提出了一个通用的设计生成对抗样本的方法,根据该论文提…...

2024重庆邮电大学软件工程809题库(带答案)

1.下列选项中,不属于质量管理的主要任务的是( C )。 A)制定软件质量保证计划 B)按照质量评价体系控制软件质量要素 C)增加软件产品的功能 D)对最终软件产品进行确认 2.下…...

三种目标检测方法(基于传统数字图像处理的识别方法、基于传统机器学习的识别方法和基于深度学习的识别方法)的区别

问题描述:图像检测分为了基于传统数字图像处理的识别方法、基于传统机器学习的识别方法和基于深度学习的识别方法,但是有时迷惑三者的区别是什么呢? 问题解答: 第一,基于传统数字图像处理的识别方法和其他两者的区分…...

制造业为什么要建设数字化供应链

数字化让越来越多的人走向了线上的世界,让那些拥有线上产品或提供线上服务的企业提供了更多流量。 但与此同时,传统制造业遭受了沉重的打击,考虑到防疫要求,很多工厂长期处于人手不足的状态,生产制造效率大幅降低&…...

HTML 语义化

目录 HTML 语义化HTML5 新特性HTML 语义化的好处语义化标签的使用场景最佳实践 HTML 语义化 HTML5 新特性 标准答案&#xff1a; 语义化标签&#xff1a; <header>&#xff1a;页头<nav>&#xff1a;导航<main>&#xff1a;主要内容<article>&#x…...

K8S认证|CKS题库+答案| 11. AppArmor

目录 11. AppArmor 免费获取并激活 CKA_v1.31_模拟系统 题目 开始操作&#xff1a; 1&#xff09;、切换集群 2&#xff09;、切换节点 3&#xff09;、切换到 apparmor 的目录 4&#xff09;、执行 apparmor 策略模块 5&#xff09;、修改 pod 文件 6&#xff09;、…...

linux 下常用变更-8

1、删除普通用户 查询用户初始UID和GIDls -l /home/ ###家目录中查看UID cat /etc/group ###此文件查看GID删除用户1.编辑文件 /etc/passwd 找到对应的行&#xff0c;YW343:x:0:0::/home/YW343:/bin/bash 2.将标红的位置修改为用户对应初始UID和GID&#xff1a; YW3…...

自然语言处理——Transformer

自然语言处理——Transformer 自注意力机制多头注意力机制Transformer 虽然循环神经网络可以对具有序列特性的数据非常有效&#xff0c;它能挖掘数据中的时序信息以及语义信息&#xff0c;但是它有一个很大的缺陷——很难并行化。 我们可以考虑用CNN来替代RNN&#xff0c;但是…...

laravel8+vue3.0+element-plus搭建方法

创建 laravel8 项目 composer create-project --prefer-dist laravel/laravel laravel8 8.* 安装 laravel/ui composer require laravel/ui 修改 package.json 文件 "devDependencies": {"vue/compiler-sfc": "^3.0.7","axios": …...

Android第十三次面试总结(四大 组件基础)

Activity生命周期和四大启动模式详解 一、Activity 生命周期 Activity 的生命周期由一系列回调方法组成&#xff0c;用于管理其创建、可见性、焦点和销毁过程。以下是核心方法及其调用时机&#xff1a; ​onCreate()​​ ​调用时机​&#xff1a;Activity 首次创建时调用。​…...

SiFli 52把Imagie图片,Font字体资源放在指定位置,编译成指定img.bin和font.bin的问题

分区配置 (ptab.json) img 属性介绍&#xff1a; img 属性指定分区存放的 image 名称&#xff0c;指定的 image 名称必须是当前工程生成的 binary 。 如果 binary 有多个文件&#xff0c;则以 proj_name:binary_name 格式指定文件名&#xff0c; proj_name 为工程 名&…...

Java编程之桥接模式

定义 桥接模式&#xff08;Bridge Pattern&#xff09;属于结构型设计模式&#xff0c;它的核心意图是将抽象部分与实现部分分离&#xff0c;使它们可以独立地变化。这种模式通过组合关系来替代继承关系&#xff0c;从而降低了抽象和实现这两个可变维度之间的耦合度。 用例子…...

MySQL JOIN 表过多的优化思路

当 MySQL 查询涉及大量表 JOIN 时&#xff0c;性能会显著下降。以下是优化思路和简易实现方法&#xff1a; 一、核心优化思路 减少 JOIN 数量 数据冗余&#xff1a;添加必要的冗余字段&#xff08;如订单表直接存储用户名&#xff09;合并表&#xff1a;将频繁关联的小表合并成…...

【JVM】Java虚拟机(二)——垃圾回收

目录 一、如何判断对象可以回收 &#xff08;一&#xff09;引用计数法 &#xff08;二&#xff09;可达性分析算法 二、垃圾回收算法 &#xff08;一&#xff09;标记清除 &#xff08;二&#xff09;标记整理 &#xff08;三&#xff09;复制 &#xff08;四&#xff…...