返回首页

ZVM特性:客户OS间时间同步

01 问题发现

在嵌入式实时虚拟化场景中,ZVM支持多客户OS并发部署,而多节点间的时间一致性是保障实时通信与协同任务可靠执行的核心前提。时间同步的本质是通过技术手段使分布式节点的时钟基准达成一致,消除时间偏差对数据交互与任务调度的干扰,这一机制在工业控制、数据采集等实时系统中具有不可替代的作用。

在ZVM的实际部署中,多客户OS间存在显著的系统时间偏差(可达数秒级),该偏差会引发一系列业务风险,具体表现为:

  • 数据接收异常:若客户OS A时钟快于客户OS B,A发送的数据到达B时,会被判定为“超前预期时间”,可能触发数据暂存队列溢出,极端情况下会被直接标记为无效数据丢弃。
  • 数据接收异常
  • 任务调度失序:若客户OS A时钟慢于客户OS B,当B按预设时间等待A的关键数据时,会因A的发送延迟导致“数据迟到”,进而错过任务处理窗口期。
  • 任务调度失序

因此,解决ZVM环境下客户OS间的时间同步问题,是保障虚拟化系统稳定性与实时性的关键技术诉求。而这种偏差并非偶然,其根源与虚拟化架构特性直接相关。

根源分析:一是客户OS依赖ZVM启动存在的“计时起点”差异,二是时钟请求经虚拟化层转发引入的误差累积。

02 技术方案

针对虚拟化场景下的时间偏差问题,团队基于精准时间协议(PTP,Precision Time Protocol)核心思想,设计了时间同步方案,最终达成“无网络依赖、高精度、低时延”的目标。

2.1 同步机制

针对这个问题,我们团队基于精准时间协议PTP,为ZVM设计了一套专门的时间同步方案。核心是采用主从同步模式:ZVM承担主时钟的角色,所有客户OS都是从时钟。整个同步过程靠四次消息转发来完成,精确计算出主从时钟之间的时间误差。主从消息转发基于自研的共享内存通信框架 Zshm 实现。这意味着,无论客户OS是否联网,这套方案都能适配运行,完全不受网络环境的限制,适用性极广。

同步机制

2.2 稳定停止

高精度时间同步需通过迭代优化实现,为此设计稳定停止机制,通过反复同步迭代缩小时间误差。每次同步完成后自动校验误差值,若未达到预设的纳秒级标准则触发下一轮同步。直至误差稳定在规定范围后停止。同步触发时机聚焦客户 OS 运行关键节点,在客户 OS 启动初始化或从暂停状态恢复时自动执行,无需人工干预即可保障全程时间准确性,避免因状态切换导致的时间漂移。该机制充分适配虚拟化场景下的时钟特性,解决了单次同步难以满足高精度要求的行业痛点。

机制

03 性能验证与试用说明

采用ZVM 主时钟 + 客户 OS 从时钟的架构设计,所有客户 OS 通过 ZVM 自研的共享内存通信框架 Zshm 建立同步连接,依托 Zshm 低时延(平均端到端时延小于 4 微秒)的特性,确保同步消息高效传输。方案具备广泛的 OS 适配能力,无论是功能复杂的 Linux,还是对实时性要求严苛的 Zephyr、FreeRTOS 等 RTOS,均能实现稳定适配。

测试指标 Linux Zephyr FreeRTOS
同步误差 稳定控制在 30 纳秒
同步耗时 161 微秒 36 微秒 29 微秒

高同步精度与低时延开销的结合,完全满足智能汽车、工业控制等各类嵌入式实时场景的应用需求。

🚀 立即试用

我们的时间同步在 RK3588、D2000、D3000、E2000 这些发行版上都有体现,也欢迎大家试用。

扫码查看视频介绍

小红书二维码

小红书视频

微信二维码

微信视频号/公众号