操作系统论文导读(八):Schedulability analysis of sporadic tasks with multiple criticality specifications——具有多个

Schedulability analysis of sporadic tasks with multiple criticality specifications——具有多个关键性规范的零星任务的可调度性分析

目录

一、论文核心思想

二、基本定义

2.1 关键性指标

2.2 任务及相关参数定义

 2.3 几个基础定义

三、可调度性分析

3.1 调度算法分类

3.2 DP算法分析

3.3 FJP与FTP算法分析(分析相对于DP的劣势)

3.4  FTP 和 EDF对比

四、混合优先调度

4.1 算法详情

 4.2 算法评价

五、结论


一、论文核心思想

本文主要论证了在混合关键系统中各种调度协议不能像在其他没有关键性参数的RTOS系统中存在简单的相互支配(如EDF算法支配所有的FTP算法),并基于Audsley算法与Vestal算法提出了一种新的算法改良,在具有多重关键性要求的系统中不同的任务需要以不同的置信度确保在截止日期前完成,本文利用 WCET 的这种多重规范来获得更好的处理器利用率并证明了这种算法在混合关键系统的任务调度中支配EDF算法与Vestal算法,但依旧不能支配FJP算法(后续会做解释)

二、基本定义

2.1 关键性指标

从A到E,关键级别依次降低,A失败的结果是灾难性的,B是非常危险,以此类推。

尽管 RTCA DO-178B 标准仅指定了五个关键级别 A-E,但没有特别理由要求系统最多具有五个级别。 因此,文章在这里考虑一个系统模型,其中有任意多个不同的关键级别,用正整数表示,整数越大表示关键程度越高。 (因此,RTCA DO-178B 关键级别 A 将映射到 5,级别 E 映射到 1。)

多关键性零星任务模型:假设每个任务都有一对应用于不同关键水平的WCET估计量,系统可以根据实际执行行为在运行时切换不同的关键模式。

2.2 任务及相关参数定义

考虑多关键性零星任务系统的抢占式单处理器调度。 这样一个多关键性零星任务系统 τ 由 n 个多关键性零星任务 τ1,...,τn 组成。 每个任务 τi 由以下参数表征

WCET 函数 Ci : N+ → R+,指定不同关键级别的 WCET:关键级别l的 WCET 等于 Ci(l)。 在不失一般性的情况下,我们假设 , Ci(l) ≤ Ci(l+1) 。

相对期限参数 Di。

最小到达间隔或周期参数 Ti。

关键水平 Li,Li ∈ N+。

 2.3 几个基础定义

 定义 1(可行性和可调度性)如果算法 A 始终满足 τ 的所有截止日期并达到所需的保证水平,则称多临界零星任务系统 τ 可由调度算法 A 调度。 如果存在某种调度算法 A 使得 τ 可由 A 调度,则称 τ 是可行的。

定义 2(同步到达序列 (SAS))零星任务 τi 的作业同步到达序列包括 τi 的第一个作业到达时刻零,后续作业恰好到达 Ti 时间单位。 任务集合的同步到达序列由任务集合中每个单独任务的同步到达序列的并集组成。

定义二解释:个人理解实际上就是到达时间为n*Ti,其中n为整数

 定义 3 对于任意多临界零星任务系统 τ ,我们定义对应的传统零星任务系统为

在这里,每个传统的零星任务系统都由 3 元组(WCET,相对截止日期,期间)表示。 

定理 1 多临界性零星任务系统 τ 是可行的当且仅当相应的传统零星任务系统是可行的。

证明:考虑一种调度算法,该算法能够在不同作业之间实施时间隔离,允许每个作业仅执行预定的时间量。 可以使这样的算法在最多 Ci(Li) 时间单位内执行 τi 的每个作业,从而基本上忽略 WCET 的多个规范,并将每个多临界零星任务视为传统零星任务。

三、可调度性分析

从可行性分析的角度来看,多临界零星任务系统与传统的零星任务系统是相同的。 尽管如此,关于多临界性零星任务系统的调度还有许多有趣的未解决问题; 当限制可能使用的调度算法种类时,多关键性零星任务系统与传统零星任务系统有很大不同。

3.1 调度算法分类

根据对作业分配优先级的方式的限制,将分为三类用于调度零星任务系统的算法:

1. 固定任务优先级 (FTP) 调度:给定任务生成的所有作业都分配相同的优先级。

2. 固定作业优先级(FJP)调度:同一任务的不同作业可能有不同的优先级。 然而,每个作业的优先级在其到达时间和完成时间之间可能不会改变。

3. 动态优先级(DP)调度:作业的优先级可能会在发布时间和完成时间之间发生变化。

从定义上可以看出,FJP调度是FTP调度的推广,DP调度是FJP调度的推广。 在传统(即非多关键性)任务系统的单处理器调度中,FJP 调度算法最早期限优先(EDF)被认为是最优的,因为 EDF 总是满足所有可行的传统零星任务系统的所有期限;而DP 调度算法(通常会产生更大的运行时实现开销)并不常用于调度此类任务系统。

在这项研究中,我们考虑更通用的 FJP 和 DP 算法。

3.2 DP算法分析

 由于 DP 算法类包括所有调度算法,因此根据定义,所有可行的多临界零星任务系统都可以通过某种 DP 调度算法进行调度。 因此,当且仅当对应的传统零星任务系统(见定义 3)可行时,多临界零星任务系统 τ 是 DP 可调度的。

3.3 FJP与FTP算法分析(分析相对于DP的劣势)

一些调度程序能够在运行时强制执行不同作业之间的时间隔离。 也就是说,每个作业都分配了最大执行量,并且调度程序能够确保没有作业超过分配给它的执行量。 在这样的系统中,没有作业依赖于另一个作业的调度,因此作业的完成不受其他作业执行时间估计准确性的影响。 

现在,任何在作业之间实现时间隔离的算法都可以在 DP 优先级驱动调度算法的框架内实现,只需在适当的时刻简单地提高和降低作业的优先级。 然而,这不能在 FJP 和 FTP 调度算法中完成:FJP 和 FTP 算法本身不能保证作业之间的时间隔离

在传统的零星任务系统中,所有可行的任务系统也可以使用某种 FJP 调度算法(特别是 EDF)进行调度。以下示例说明多关键性零星任务系统并非如此:

示例 1 考虑由两个任务 τ1 和 τ2 组成的任务系统,具有以下参数:

通过考虑这两种可能性——(i) τ1 具有更高的优先级,以及 (ii) τ2 具有更高的优先级——可以验证该系统不是 FTP 可调度的。 它也不是 FJP 可调度的,如下面的论证所示。 让我们在调度 SAS 时考虑每个任务的第一个作业,并考虑两种可能性:τ1 的第一个作业比 τ2 的第一个作业具有更高的优先级,反之亦然。 

1. 当 τ1 的第一个作业比 τ2 的第一个作业具有更高的优先级时:在这种情况下,τ2 的第一个作业不能保证在保证级别 1 的截止日期前完成:因为 C1(2) = 5,τ1 的第一个作业将在间隔 [ 0, 5), 从而允许 τ2 的作业完全不执行。

2. 当 τ2 的第一个作业比 τ1 的第一个作业具有更高的优先级时:在这种情况下,τ1 的第一个作业不能保证在保证级别 2 的截止日期前完成:因为 C2(2) = 5,所以 τ2 的第一个作业将在区间 [0 , 5), 并在截止日期前只为 τ1 的工作留下一个执行单元。

然而,由于 C1(L1)/T1 + C2(L2)/T2 =5/6+0.5/5 < 1,根据定理 1 的结果,该系统是可行的,因此是 DP 可调度的。

C1/T1 + C2/T2+....  < 1是DP算法中计算是否可调度的公式

也就是存在可使用 DP 调度算法进行调度的多临界零星任务系统,这些系统不能使用任何 FTP 或 FJP 调度算法进行调度。

3.4  FTP 和 EDF对比

对于传统的零星任务系统,从可调度性的角度可知EDF主导FTP调度——所有可通过FTP调度调度的任务系统也可通过EDF调度,而有些可通过EDF调度的任务系统不存在FTP调度。 (这是 EDF 最优性的直接结果,事实上没有 FTP 算法在能够调度所有可行的零星任务系统的意义上是最优的。)但是,这种优势不会延续到多关键零星任务系统,如以下简单示例所示。

示例 2 考虑由两个任务 τ1 和 τ2 组成的任务系统,具有以下参数:

τ1 是一个更高关键性的任务。 通过为 τ1 分配比 τ2 更高的优先级,可以验证这两个任务都在所需的关键级别上满足了它们的截止日期; 因此,该系统是 FTP 可调度的。

现在考虑 EDF,让我们关注 SAS 中 τ1 的第二项工作。 回想一下,多关键性任务模型的语义要求用于确保任务满足其截止日期的所有 WCET 值与任务所需的保证级别相同。 比 τ1 的第二个工作具有更高优先级的工作是 τ2 的第一个工作,并且通过传递性,是 τ1 的第一个工作。 WCET 的 C1(2) 和 C2(2) 必须用于确定 τ1 是否满足其截止日期。 但是在使用这些 WCET 估计在 SAS 上模拟 EDF 时,很容易看出 τ1 的第二个作业在时间点 8 错过了它的截止日期(因为 τ1 的第一个作业在 [0, 2] 上执行,而 τ2 的作业在 [2, 7] 上执行) ,从而只留下一个执行单元,而不是 τ1 在截止日期前的第二个作业所需的两个单元)。

其实我觉得这个例子存在一定的问题,如果要细究的话,FTP调度中的第一轮t在0-2时任务1执行t在2-4时任务2执行,t在4-6时任务1抢占执行,则任务二依旧可能会错过D2(因为为文章给出的EDF调度中任务2的最坏执行时间是按5计算的)。只是任务2的关键性低于任务1,但系统不一定是FTP可调度的。

 定理3 FTP和EDF在多临界零星任务系统的调度中是不可比拟的调度策略。

四、混合优先调度

4.1 算法详情

正如上面定理 1 中所讨论的,Vestal 算法(产生最佳 FTP 优先级分配)和 EDF 在涉及多临界零星任务系统时是无法比拟的。 我们在本节中的目标是获得一种调度算法,该算法泛化了 EDF 和 Vestal 算法,并且在多关键性零星任务系统的调度中证明优于两者。 它结合了 FTP 调度和 EDF 的特点。 为了使用这种混合调度策略来调度多关键性零星任务系统 τ,我们必须为 τ 中的每个任务分配一个(不一定是唯一的)优先级。 根据定义,这些优先级是完全相互排序的:只要一个优先级中的作业在运行时等待执行,就不会执行较低优先级的作业。 在每个优先级内,将使用 EDF 安排任务。

同步到达序列 (SAS) 代表最坏情况下的到达序列——如果针对给定的优先级分配使用混合优先级调度来安排零星任务系统的 SAS 以满足所有截止日期,则零星任务 系统将始终满足具有相同优先级分配的混合优先级调度下的所有截止日期。后续将使用这个 观察作为设计多关键零星任务系统的混合优先级调度的优先级分配算法的基础。

优先级分配算法 ASSIGNPRIORITIES(τ ) 是 Audsley 算法的推广,用于在 FTP 调度系统中分配优先级。 过程 AUGMENTEDAUDSLEY(τcur,p) 接受一组任务 τcur ⊆ τ 和优先级 p 作为输入,并确定 τcur 中的哪些任务可以分配优先级 p,哪些必须分配更高的优先级。

在考虑当前优先级 p 的 AUGMENTEDAUDSLEY 中的每个步骤中,τcur 保留尚未排除分配优先级 p 的任务集,τhi 包含已确定需要分配更高优先级的任务集 。开始对 AUGMENTEDAUDSLEY 的初始调用具有最低优先级和所有任务(即 p ← 1 和 τcur ← τ )。

在 AUGMENTEDAUDSLEY 的执行期间,任何被识别为不能保证在当前优先级满足其时序约束的任务必须分配更高的优先级——这样的任务从 τcur 中删除并添加到 τhi。 为了识别在当前优先级无法满足其时序约束的任务,模拟了 (τcur ⋃ τhi) SAS 的混合优先级调度,已经分配了优先级的任务 <p 不需要考虑,因为它们不影响优先级为 p 或更高的任务的调度。

归结的流程如下:

1. 首先让 π1,π2,...,π 表示 τcur 中任务的不同关键级别,按降序排列。用使用 Ci(π1) 作为任务的 WCET; 如果 τcur 中具有临界级别 π1 的任务的所有作业截止日期都得到满足,则它使用 Ci(π2) 作为任务的 WCET 来模拟 (τcur ⋃ τhi) 的 SAS 的混合优先级调度; 如果 τcur 中具有临界级别 π2 的任务的所有作业截止日期都得到满足,它接下来使用 Ci(π3) 作为任务的 WCET 来模拟 (τcur ⋃ τhi) 的 SAS 的混合优先级调度。如果用最低关键级别Ci(πl)用作WCET时满足 τcur 中所有最低关键级别的截止日期,那么就可以完成 τcur 中所有任务都被分配了优先级p时的调度保障

2. 当某个任务在关键级别πj关键级别实验失败时,令 τk 表示具有关键性 πj 的任务生成第一个错过其截止日期的此类作业。 为了让这个作业满足它的截止日期,它有必要比 SAS 中 τcur 分配的优先级 p 中某个任务的某个更早截止日期的作业具有更高的优先级。 

3. 以这种方式为 τk 分配了更高的优先级后, 必须再次重新检查整个系统(第 3-5 行中的 while 循环)。 也就是说,它重新模拟 SAS 在每个关键级别 π1、π2、... 的调度,除了现在为 τk 分配的优先级高于 τcur 中剩余的任务。 这样做时,可以确定一些其他任务 τ ′ k 是否也需要提升到更高的优先级。

4. 与Audsley 方法 一样,AUGMENTEDAUDSLEY 本质上是识别要分配当前优先级 p 的任务,后续会继续在τhi中进行递归,逐渐生成更多优先级为p+1,p+2等等各类任务。但若τcur在执行后变空,即所有任务都需要升级优先级(则算法本质上没啥意义了),返回调度失败。

后续的具体执行如下图所示:

算法是为了解决Vestal提出的任务模型在动态优先级调度下的可调度性问题。算法的目标是给每个任务分配一个虚拟截止时间,使得在不同的关键性模式下,任务的虚拟截止时间都不会超过它们的真实截止时间,并且任务集能够被EDF调度。伪代码如下:输入:一个具有多重关键性规范的任务集 T = {T1, T2, ..., Tn}
输出:一个虚拟截止时间分配方案,如果存在的话,或者“不可调度”
开始对于 T 中的每个任务 Ti,计算它的关键性等级 Li = max{L | Ci(L) > 0}按照关键性等级从高到低对 T 中的任务进行排序让 Lmax 为 T 中任何任务的最高关键性等级对于 L = Lmax 到 1,执行以下操作:让 TL 为 T 中关键性等级至少为 L 的任务子集让 CL 为 TL 在 L 等级下的总利用率如果 CL > 1,那么返回“不可调度”让 DL 为 TL 中任务相对截止时间的不同值集合按照相对截止时间从小到大对 DL 进行排序让 D0 = 0 和 Dk+1 = infinity,其中 k >= |DL|对于 j = 1 到 k,执行以下操作:让 Uj 为 TL 中相对截止时间不超过 Dj 的任务的总利用率让 Wj 为 TL 中相对截止时间不超过 Dj 的任务在 [Dj-1, Dj] 内的总工作量如果 Wj > Uj * (Dj - Dj-1),那么返回“不可调度”让 Vj 为 TL 中相对截止时间等于 Dj 的任务集合对于 Vj 中的每个任务 Ti,按照以下方式分配虚拟截止时间 Di(L):Di(L) = min{Di(L+1), Dj - (Wj - Uj * (Dj - Dj-1)) / Ui(L)}如果 Di(L) < Di,那么返回“不可调度”结束循环结束循环返回虚拟截止时间分配方案
结束这种算法的核心思想是从最高的关键性等级开始,逐步给每个任务分配一个虚拟截止时间,使得每个关键性等级下的任务集都能满足EDF调度的充分条件。

 4.2 算法评价

算法用于为多关键性零星任务系统中的任务分配优先级,以便使用混合优先级调度算法调度生成的系统以满足其各自所需保证级别的所有时序约束 . 我们现在将这种方法与其他可能的多关键零星任务系统调度方法进行比较。

首先,该算法支配 EDF 调度:任何可被 EDF 调度的 τ 将被该算法确定为可调度,并且 τ 中的所有任务都被分配相同的最低优先级。 也就是说,第一次调用 AUGMENTEDAUDSLEY(τ, 1) 通过执行第 8 行的返回语句来声明成功,并且不再对 AUGMENTEDAUDSLEY 进行递归调用。

该算法也支配了 Vestal 算法。 Vestal 算法在每个优先级必须恰好分配给它一个任务的意义上更具限制性; 不难证明,Vestal 算法找到这种优先级分配的任何 τ 也将具有我们的算法找到的优先级分配。

如定理 2所示,存在可行的多临界零星任务系统,这些系统可以使用动态优先级算法进行调度,但不能使用任何 FJP 或 FTP 算法进行调度。 而对于该算法也是如此,即有些任务系统是 FJP 可调度的,但不能使用算法进行调度。

(举例略,文章中例子很好理解)

五、结论

Vestal 提出的多关键性任务模型代表了安全关键型实时系统的建模和分析方面潜在的非常重要的进步。 在本文中,我们试图更好地理解多关键性零星任务系统的抢占式单处理器调度。 我们已经研究了基本的调度理论问题——表现力; 可行性; 特定类别的调度算法的可调度性; 等等——必须理解这些才能完全理解新的任务模型。 我们从这项研究中学到了很多与我们之前使用传统零星任务系统的经验相反的东西:例如,我们了解到 EDF 不是调度多临界零星任务系统的最佳算法,而且 EDF 和固定优先级调度是无法比较的 . 我们还推导出并评估了一种新方案,用于在抢占式单处理器上调度此类多关键性零星任务系统,并表明该新方案优于先前提出的方案。

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

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

相关文章

【LeetCode】2506、统计相似字符串对的数目

【LeetCode】2506、统计相似字符串对的数目 文章目录 一、哈希表位运算1.1 哈希表位运算 二、多语言解法 一、哈希表位运算 1.1 哈希表位运算 每个字符串, 可用一个 int 表示. (每个字符 是 int 的一个位) 哈希表记录各 字符组合 出现的次数 步骤: 遇到一个字符串, 得到 ma…

uniapp使用ucharts组件

1.ucharts准备 有两种使用方式&#xff1a;一种是在uni的插件市场下载&#xff08;组件化开发&#xff09;。一种是手动引入ucharts包。官方都封装好组件了&#xff0c;我们不用岂不是浪费。 直接去dcloud插件市场&#xff08;DCloud 插件市场&#xff09;找&#xff0c;第一…

YOLOv11模型改进-模块-引入多尺度大核注意力Multi-scale Large Kernel Attention

MLKA 的提出源于图像超分辨率任务的挑战性&#xff0c;该任务需重建低质量图像缺失的高频信息&#xff0c;但因 LR 与 HR 图像对应关系复杂&#xff0c;寻找像素相关性困难。此前模型扩展容量的方法增加了训练负担和数据收集成本&#xff0c;而采用的注意力机制无法同时获取局部…

《战神:诸神黄昏》游戏运行时提示找不到emp.dll怎么办?emp.dll丢失如何修复?

《战神&#xff1a;诸神黄昏》游戏运行时提示找不到emp.dll怎么办&#xff1f;emp.dll丢失的修复方法 在畅游《战神&#xff1a;诸神黄昏》这款史诗级游戏的过程中&#xff0c;如果突然遭遇“找不到emp.dll”的错误提示&#xff0c;无疑会打断你的冒险之旅。作为一名深耕软件开…

RabbitMQ基础篇之快速入门

文章目录 一、目标需求二、RabbitMQ 控制台操作步骤1.创建队列2.交换机概述3.向交换机发送消息4.结果分析5.消息丢失原因 三、绑定交换机与队列四、测试消息发送五、消息查看六、结论 一、目标需求 新建队列&#xff1a;创建 hello.queue1 和 hello.queue2 两个队列。消息发送…

非数学专业小白第一次学习Mathematica心得和体会

文章目录 1.软件界面说明2.我为什么要学习Mathematica软件3.如何进行学习4.一些具体使用4.1正余弦函数4.2一个图里面两个函数4.3 3D图形的绘制4.4密度图4.5三维向量图4.6坐标轴说明4.7图像说明4.8绘图的图例4.9指定范围4.10指定绘图样式4.11极限方程求和4.12基本图4.13邻接矩阵…

C#实现图像骨架化(ZhangSuen细化算法)

原始图像: 骨架化后图像: 需要安装一个NuGet包:System.Drawing.Common 代码如下: using System.Drawing; using System.Drawing.Imaging;public class Image {public int Width { get; }public int Height { get; }private bool[,] pixels;// 构造函数,初始化图像的宽度…

【论文阅读笔记】IC-Light

SCALING IN-THE-WILD TRAINING FOR DIFFUSION-BASED ILLUMINATION HARMONIZATION AND EDITING BY IMPOSING CONSISTENT LIGHT TRANSPORT 通过施加一致的光线传输来扩展基于扩散模型的真实场景光照协调与编辑训练 前言摘要引言相关工作基于学习的基于扩散模型的外观和光照操纵光…

论文阅读 - 《Large Language Models Are Zero-Shot Time Series Forecasters》

Abstract 通过将时间序列编码为数字组成的字符串&#xff0c;我们可以将时间序列预测当做文本中下一个 token预测的框架。通过开发这种方法&#xff0c;我们发现像GPT-3和LLaMA-2这样的大语言模型在下游任务上可以有零样本时间序列外推能力上持平或者超过专门设计的时间序列训…

《机器学习》——线性回归模型

文章目录 线性回归模型简介一元线性回归模型多元线性回归模型误差项分析一元线性模型实例完整代码 多元线性模型实例完整代码 线性回归模型简介 线性回归是利用数理统计中回归分析&#xff0c;来确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法。 相关关系&…

redis cluster集群

华子目录 什么是redis集群redis cluster的体系架构什么是数据sharding&#xff1f;什么是hash tag集群中删除或新增节点&#xff0c;数据如何迁移&#xff1f;redis集群如何使用gossip通信?定义meet信息ping消息pong消息fail消息&#xff08;不是用gossip协议实现的&#xff0…

Excel批量设置行高,Excel表格设置自动换行后打印显示不全,Excel表格设置最合适的行高后打印显示不全,完美解决方案!!!

文章目录 说个问题&#xff08;很严重&#xff01;&#xff01;&#xff01;&#xff09;写个方案会Python看这里Python环境搭建不存在多行合并存在多行合并 不会Python看这里 说个问题&#xff08;很严重&#xff01;&#xff01;&#xff01;&#xff09; 平时处理Excel表格…

安全合规遇 AI 强援:深度驱动行业发展新引擎 | 倍孜网络CEO聂子尧出席ICT深度观察报告会!

12月24日&#xff0c;2025中国信通院深度观察报告会科技伦理与合规发展分论坛在北京举办。本次分论坛主题为“伦理先行&#xff0c;合规致远”&#xff0c;聚焦互联网广告合规治理、移动终端应用生态治理、短视频平台责任限度等前沿话题进行分享与探讨。工业和信息化部领导&…

教育行业 UI 设计基础篇:简洁直观的风格打造

在当今数字化时代&#xff0c;教育行业的线上平台如雨后春笋般涌现&#xff0c;而 UI 设计作为用户与教育产品交互的重要桥梁&#xff0c;其重要性不言而喻。对于教育行业而言&#xff0c;简洁直观的 UI 风格能够极大地提升用户体验&#xff0c;帮助学习者更高效地获取知识。 …

KaiOS 4.0 | DataCall and setupData implemention

相关文档 1、KaiOS 3.1 系统介绍 KaiOS 系统框架和应用结构(APP界面逻辑)文章浏览阅读842次,点赞17次,收藏5次。对于Java开发者而言,理解JS的逻辑调用是有点困难的。而KaiOS webapp开发又不同于现代的web开发,更像chrome浏览器内嵌模式。在这里梳理一下kaios平台web应用…

【星海随笔】删除ceph

cephadm shell ceph osd set noout ceph osd set norecover ceph osd set norebalance ceph osd set nobackfill ceph osd set nodown ceph osd set pause参考文献&#xff1a; https://blog.csdn.net/lyf0327/article/details/90294011 systemctl stop ceph-osd.targetyum re…

MySQL敏感数据进行加密的几种方法

使用MySQL内置的加密函数 AES_ENCRYPT和AES_DECRYPT函数 方法介绍&#xff1a; AES&#xff08;Advanced Encryption Standard&#xff09;是一种对称加密算法。在MySQL中&#xff0c;可以使用AES_ENCRYPT函数对数据进行加密&#xff0c;使用AES_DECRYPT函数进行解密。这种加密…

「Mac畅玩鸿蒙与硬件48」UI互动应用篇25 - 简易购物车功能实现

本篇教程将带你实现一个简易购物车功能。通过使用接口定义商品结构&#xff0c;我们将创建一个动态购物车&#xff0c;支持商品的添加、移除以及实时总价计算。 关键词 UI互动应用接口定义购物车功能动态计算商品管理列表操作 一、功能说明 简易购物车功能包含以下交互&#…

快速下载pytorch_geometric

注意&#xff1a;千万不要一上去就使用pip去安装&#xff01;&#xff01;&#xff01; 1.找到GitHub手动下载所需依赖: https://github.com/pyg-team/pytorch_geometric 进入网址后点击此处&#xff1a; 2.点击here进去后寻找自己的torch版本&#xff08;我的是torch2.1.2的…

微服务-1 认识微服务

目录​​​​​​​ 1 认识微服务 1.1 单体架构 1.2 微服务 1.3 SpringCloud 2 服务拆分原则 2.1 什么时候拆 2.2 怎么拆 2.3 服务调用 3. 服务注册与发现 3.1 注册中心原理 3.2 Nacos注册中心 3.3 服务注册 3.3.1 添加依赖 3.3.2 配置Nacos 3.3.3 启动服务实例 …