0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

保持任务关键的确定性DBMS准时

星星科技指导员 来源:嵌入式计算设计 作者:Andrei Gorine 2022-07-04 09:49 次阅读

开源和商业数据库管理系统 (DBMS) 已在嵌入式系统中使用了 20 多年。在大多数情况下,开发人员甚至不会争论是否为嵌入式系统购买或构建自己的 DBMS。该组件几乎总是被购买。

然而,嵌入式系统空间的一个子集仍然禁止商业供应商使用,包括某些医疗系统、辐射监测、飞机导航、航空电子设备、飞行员辅助,以及最近的自动驾驶。总而言之,它们可以被称为具有硬实时约束的任务关键型或安全关键型系统,其中系统故障可能会造成伤害。

许多任务关键型软件团队正在寻找商业现货 (COTS) 软件以加快开发速度。嵌入式 DBMS 可以提供帮助,但前提是它具有确定性、可预测性和可控性。用于关键任务系统的确定性 DBMS 架构应提供具有时间有效性的 ACID(原子性、一致性、隔离性、持久性)合规性。

不是每个 DBMS 都强制执行 ACID 属性吗?符合 ACID 的数据库很常见,但其架构是针对事务吞吐量而非确定性的。一致性是最重要的属性;事务应该只将数据库从一种有效状态更改为另一种有效状态。在实时系统中,事务中的一组原子语句应该成功提交,或者应该全部中止,但不应在截止日期之后进行。“迟到”会带来不一致的状态,带来暂时无效的数据和可能的可怕后果。

一致性的关键时间断言

确保所有条件下的内部数据库一致性对于时间有效性至关重要。嵌入式数据库在执行效率方面提供了一些改进,但确定性 DBMS 需要更多的架构步骤才能保持准时。

首先,应该使用悲观并发控制。它在授予一项任务访问权限之前锁定全部或部分数据库,从而减少了乐观模型中复制的不确定开销。只读 (RO) 事务可以并行发生,而读写 (RW) 事务具有独占访问权限,从而减少了用于锁仲裁和死锁预防的资源。

接下来,一个关键的时间断言说明了工作量和在截止日期前回滚:

无论事务复杂性如何,将任何修改撤销到事务中的任何点的时间都不能超过应用这些修改的时间。

pYYBAGLCR0OAVQSEAAB0Uf8qCsM873.png

RO事务有索引查找和游标移动操作;回滚以相等的间隔撤消内部计数器的任何递增或递减。

更简单的 RW 事务很容易回滚。创建对象会根据对象大小从空闲内存池中分配页面;反转只是将这些页面返回到池中。其他交易根本不需要冲销。删除一个对象会将其标记为在原子操作中将其删除,因此如果事务中止,则不会发生提交时的删除。在索引中添加或删除对象具有树重新平衡或哈希重新分配,它们仅在提交时生效并且不需要反转。

更新对象看起来更复杂,但结果证明是一种有效的操作。事务第一次更新对象时,分配一个临时对象,然后将原始对象复制到临时对象。使用已经创建的副本,后续更新会更快。回滚以相反的顺序从副本中重新创建原始对象,然后释放分配的内存页,对象的回滚时间与对该对象的更新次数无关。

根据实时截止日期验证交易

确保每个事务都安全地提交或中止后,接下来要安排事务流。回忆悲观并发;RW 事务必须按顺序执行,而 RO 事务可以并行执行。例如,McObject 的 eXtremeDB/rt 中的动态、时间感知的最早期限优先 (EDF) 调度根据绝对期限为事务分配优先级。

事务管理器代码中的验证点指示事务语句的进展程度。如果事务在提交之前到达控制点(不再保证数据库回滚的时间),那么“事务中断”错误状态将返回给应用程序。事务管理器将数据库恢复到事务开始之前存在的一致状态。

在 eXtremeDB/rt 中,应用程序可以使用两种验证方法:传递给数据库运行时的应用程序回调,或异步事件处理程序。以下示例将控制点设置为截止时间间隔的一半,可以调整。

回调方法伪代码

如果系统定时器硬件看门狗定时器等异步原语不可用,则可以使用回调方法。操作系统在获取系统时间方面存在细微差别,但代码流程如以下伪代码。首先注册一个回调函数:

poYBAGLCR0yAHCLMAABWZczgpxA596.png

接下来,创建回调,轮询返回“OK”或“interrupted”状态。

pYYBAGLCR1OAEiS6AAD8eTjjdvM875.png

然后,启动实时事务,数据库运行时在原子操作中定期验证“中断”标志。

poYBAGLCR1qAFUqIAABwFMaHePg652.png

C 中的计时器方法代码片段

大多数关键任务系统都有硬件计时器;使用它们可以提供更高的精度。C 语言中的三个常用代码片段设置了计时器变量、实时事务和初始化例程。一、定时器变量:

poYBAGLCR3eAApYuAADFXWzOFrk533.png

接下来是实时交易:

pYYBAGLCR32AOlT0AAGJy4mmrJg379.png

还有一个简单的初始化程序:

pYYBAGLCR4aAZuQ1AAAwQpfH7yY311.png

硬件计时器设施因操作系统而异。例如,在 VxWorks 中,任何任务都可以创建一个看门狗定时器,并在指定的延迟后使用它在系统时钟 ISR 的上下文中运行指定的例程。

poYBAGLCR4yAIayXAADUJL3hFZI590.png

展望更多可控性

替代传统的并发控制和调度方法有助于 eXtremeDB/rt 实现关键任务系统所需的确定性、可预测的行为。未来的研究旨在提高 EDF 调度程序的可控性。例如,事务上的显式优先级参数将有助于排序和抢占。单个事务也可以带有回滚时间参数,而不是默认的deadline/2。

实现从嵌入式数据库到确定性 DBMS 的飞跃,确保数据在时间上有效,从而扩展了潜在的用例。掌握这种新的 COTS 确定性 DBMS 技术的任务关键型软件团队可以在开发计划、风险降低和应用程序灵活性方面获得优势。

审核编辑:郭婷

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式
    +关注

    关注

    4981

    文章

    18266

    浏览量

    288227
  • 定时器
    +关注

    关注

    23

    文章

    3146

    浏览量

    112023
  • 计时器
    +关注

    关注

    1

    文章

    395

    浏览量

    32149
收藏 人收藏

    评论

    相关推荐

    什么是嵌入式实时系统的确定性?简析EDMS中的确定性

    ETAS Deterministic Middleware Solution点击跳转(EDMS,前身为AOS) 确定性中间件解决方案,是一个中间件框架,旨在面向汽车领域内应用程序的独特挑战和需求
    的头像 发表于 04-15 11:22 300次阅读
    什么是嵌入式实时系统<b class='flag-5'>的确定性</b>?简析EDMS中<b class='flag-5'>的确定性</b>

    海信马晓龙:坚定长期主义的战略定力,激发“确定性”增长的内生动力

    近年来,在内外因叠加影响下,智慧交通行业充满了变数。当不确定性成为常态,如何驱散迷雾走向增长?这是每一个智慧交通企业必须解决的难题。 选择用什么答案来面对这个难题,决定了企业迎战风浪的命运,海信智慧
    的头像 发表于 03-21 11:38 77次阅读
    海信马晓龙:坚定长期主义的战略定力,激发“<b class='flag-5'>确定性</b>”增长的内生动力

    华玉通软宣布“海鸥”确定性调度中间件(SEAGULL DS)正式商用

    今天,华玉通软(下称“华玉”)宣布“海鸥”确定性调度中间件(SEAGULL DS)正式商用。
    的头像 发表于 03-17 11:01 243次阅读
    华玉通软宣布“海鸥”<b class='flag-5'>确定性</b>调度中间件(SEAGULL DS)正式商用

    确定性网络技术如何提高网络的可靠性?

    确定性网络技术通过采用时钟同步、流同步和时序一致性、带宽保障和流量控制、数据包复制与排除等机制,提高网络的可靠性,适用于工业自动化、车辆网络等对通信质量有严格要求的领域。TSN技术的引入为确定性网络应用的发展注入了强大推动力,为各个领域的智能化和自动化提供了坚实的网络基础
    的头像 发表于 01-12 16:50 569次阅读
    <b class='flag-5'>确定性</b>网络技术如何提高网络的可靠性?

    三星电子急签WOLED订单:为应对LCD供应不确定性

     尽管去年三星电子从LG Display购买的W-OLED电视面板数量有限,但随着市场不确定性的上升和供应链问题的加剧,三星电子正在调整策略,寻求更多元化的供应来源。
    的头像 发表于 01-03 15:10 566次阅读

    消除热电偶温度测量中的不确定性(使用AD594/AD595)

    电子发烧友网站提供《消除热电偶温度测量中的不确定性(使用AD594/AD595).pdf》资料免费下载
    发表于 11-23 11:34 0次下载
    消除热电偶温度测量中的不<b class='flag-5'>确定性</b>(使用AD594/AD595)

    乌卡时代确定性稀缺,企业多云战略最需看中什么?

    双十一刚过,云服务商宕机导致大面积故障的新闻就引爆全网,再一次引发全网关于云计算安全可靠的大讨论。 在一个充满着复杂性、不稳定性和不确定性的乌卡时代,云故障频发似乎已发展成一种“常态”,让企业对于
    的头像 发表于 11-23 10:28 120次阅读

    步进电机驱动器电压和电流的确定

    1.步进电机驱动器电压的确定 混合式步进电机驱动器的供电电源电压一般是一个较宽的范围(比如IM483的供电电压为12~48VDC),电源电压通常根据电机的工作转速和响应要求来选择。如果电机工作转速
    发表于 11-09 07:50

    大规模确定性网络技术分析与展望

    确定性网络可以分为不同的技术路线,不同的技术路线往往从不同的层次切入来构建确定性网络,借助分层技术图谱可以清晰、快速地理清各个技术路线相关技术间的关系,其中不同技术工作或适应在不同的网络层次和网络
    的头像 发表于 11-06 16:26 834次阅读
    大规模<b class='flag-5'>确定性</b>网络技术分析与展望

    行业高速成长确定性较高,欧莱新材冲刺科创板IPO把握机遇

    电子产品生产国、出口国和消费国,也是全球最大的集成电路半导体消费国和进口国,在最终下游众多生产及消费领域的需求驱动了我国高性能溅射靶材行业快速增长。因此,未来高性能溅射靶材行业高速成长的确定性较高。基于行业广阔的发
    的头像 发表于 10-26 12:07 232次阅读

    如何实施时间敏感型网络以确保确定性通信

    作者:Jeff Shepard 确定性通信在各种应用中至关重要,如自主机器人和其他工业 4.0 系统、5G 通信、汽车高级驾驶辅助系统 (ADAS) 以及实时流服务。IEEE 802以太网标准(即时
    的头像 发表于 10-03 14:51 630次阅读
    如何实施时间敏感型网络以确保<b class='flag-5'>确定性</b>通信

    简化超高速数字系统中确定性延迟的设计

    电子发烧友网站提供《简化超高速数字系统中确定性延迟的设计.pdf》资料免费下载
    发表于 09-14 09:27 0次下载
    简化超高速数字系统中<b class='flag-5'>确定性</b>延迟的设计

    Cortex-M0技术参考手册分享

    增加休眠模式时间·硬件倍增器·针对时间关键型应用的确定性、高性能中断处理·串行线调试减少了调试所需的引脚数。
    发表于 08-17 06:02

    确定性时代下的新投资范式

    对此,广发证券在研报中指出,全球新投资范式的表象是拥抱“确定性资产”,这种确定性一方面体现为低估低波稳定分红永续经营的确定性,另一方面是新科技创新周期的远景确定性,本质都是对
    的头像 发表于 07-10 10:51 473次阅读
    不<b class='flag-5'>确定性</b>时代下的新投资范式

    芯片Signoff是通过什么机制去控制偏差带来的不确定性风险的?

    在芯片设计、制造、应用等各个环节都不可避免地会引入偏差,其直接造成的影响是晶体管、电阻电容以及绕线等电特性的不确定性
    的头像 发表于 06-28 16:35 1564次阅读
    芯片Signoff是通过什么机制去控制偏差带来的不<b class='flag-5'>确定性</b>风险的?