操作系统

基于RTAI的分布式控制系统同步接口层的实现
作者 justin8086 2006年03月22日 21:31

    分布式控制系统(Distributed Control System)中,各个节点硬件(如晶振)的差异或多或少使得一个节点的本地时钟(local clock)与其他节点的本地时钟存在偏差,而且随着运行时间的增加,这个偏差会越来越大,最终导致系统崩溃。一般的控制器,可以理解为或大或小的一个循环(loop),在RTAI中用周期任务(periodic task)就可以简单的实现这样的控制器。

    

    为实现基于RTAI的分布式控制系统同步,我们可以先了解一下RTAI周期任务的基本流程。

    

    RTAI中开启全局时钟(start_rt_timer)后,通过设置周期任务(rt_task_make_periodic)并在任务中调用rt_task_wait_period(),就基本实现了一个周期运行的任务(task)。周期任务的设置实即修改该实时任务结构(RT_TASK)的相关标志,再将该任务从就绪队列(READY QUEUE)移至一个由RTAI时钟调度器(RT_TIMER_HANDLER,与RT_SCHEDULER实现相似)管理的时限队列中(TIMED QUEUE)。全局时钟开启后,这个时钟调度器实际上就是一个时钟中断处理,在其中对各个实时任务进行调度。

    

    在这样的机制下,系统中所有节点的同步就可以通过调整各个任务的调度时间来实现。用户态下有许多进程需要系统范围内的同步时钟,内核态及硬件中的网络实现时钟同步信息的传送。于是我们在用户态进程和这样的一个网络中插入一个时钟同步层。在这一层中,系统内核通过与其相接的网络进行通讯,传递同步相关数据,调整所在本地时钟并通过干涉周期任务的执行周期实现整个系统的时钟同步。而时钟同步算法的具体实现,我们没有在这一层中直接定义,而是留出了相应的接口,用户可以自行定义算法以适应不同的系统需求。

    

    于是,这一时钟同步层介于用户态进程、底层网络通讯机制和同步算法之间,并为三者提供统一的可扩展的接口,为迅速高效的实现分布式系统时钟同步提供了可能。

    

    本文仅对这一接口层作出简单的描述,详细论述请见笔者论文。

    

    论文链接

    

    文件:

    RTLW2006_13.pdf

    大小:

    126KB

    下载:

    下载

    

    

    本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/11160/showart_89474.html

打开APP阅读更多精彩内容

基于RTAI的分布式控制系统同步接口层的实现

基于RTAI的分布式控制系统同步接口层的实现

长按识别二维码 进入IT168查看全文

请长按保存图片

相关文章

加载中...

分享到

请使用浏览器的分享功能
分享到微信等