免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1059 | 回复: 0
打印 上一主题 下一主题

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

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-03-23 05: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
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP