<< 点击显示目录 >> 主页 exOS使用助手 > exOS Automation Help > Development > Programming > Data communication > Process synchronization |
exOS允许运行在不同系统上的软件模块相互同步。同步的"质量"主要取决于所选的拓扑结构。
在 Hypervisor 系统上 exOS目标与可配置的自动化运行任务类同步。尽管exOS无法保证给定Linux系统内的优先级和延迟,但它允许Linux进程在AR任务类的上下文中执行。
在 模拟环境中,AR数据集消息路由器与其Linux对应程序同步,但与AR任务类系统异步运行。
与所选拓扑无关,Linux数据集消息路由器会在每次执行结束时向所有Linux应用程序发送NETTIME同步消息。Linux应用程序可通过阻塞调用exos_datamodel_process(),与该消息同步。有了这种机制,Linux上的所有应用程序都会更新最后的"良好"NETTIME,以便同步执行,并通过exos_datamodel_get_nettime()函数为所有应用程序提供外推的NETTIME值。该函数还提供了一个in_sync位,用于检查应用程序的同步状态。
exOS allows software modules running on different system to be synchronized with each other. The "quality" of the synchronization mainly depends on the selected topology.
On a Hypervisor system, the exOS target is synchronized with a configurable Automation Runtime task class. Even though the prioritization and latency within the given Linux system cannot be guaranteed from exOS, it allows Linux processes to be executed in the context of an AR task class.
In a simulation environment, the AR Dataset Message Router synchronizes with its Linux counterpart, however it runs asynchronously to the AR task class system.
Independent of the selected topology, the Linux Dataset Message Router sends out a NETTIME synchronization message to all Linux applications at the end of every execution. The Linux applications can synchronize to this message via the blocking call to exos_datamodel_process(). With this mechanism, all applications on Linux are updated with the last "good" NETTIME in order to synchronize the execution and have an extrapolated NETTIME value available for all applications via the exos_datamodel_get_nettime() function. This function also provides an in_sync bit to check the synchronization state from the application.