论文部分内容阅读
该课题通过对实时系统的研究,对Linux操作系统的实时性和实时通信系统进行了分析和论述,由此提出一种基于Linux的软实时通信模型,并对其应用和关键技术进行了探讨与实现.实时系统与其他普通的系统之间的最大的不同之处就是要满足处理与时间的关系.在实时计算中,系统的正确性不仅仅依赖于计算的逻辑结果而且依赖于结果产生的时间.实时通信在实时系统中十分重要.由于以太网的高性价比、高带宽和开放性,以太网成为最广泛的局域网技术,并延伸到控制领域中,但是它缺乏对实时网络的支持.局域网的ETHERNET协议——CSMA/CD——本身是一个随机的协议,在协议中,待发送数据的节点可能与网络上的其他机器发生冲突,一旦发生,就放弃发送,随机等待一段时间后再次发送.因此,该协议不可能给出在网络最坏情况的上下限,就造成了发送数据的时间的不确定性问题.Linux是一个通用的操作系统,如果把Linux应用于实时系统中,就要解决其核心的实时性问题,诸如时钟中断的颗粒度问题,进程的调度问题,核心代码的不可抢占性问题等.当前有许多研究机构对linux的实时问题进行了解决.通过对现代控制网络与数据网络的一体化研究发现,在一个网络节点上实时数据和非实时数据并存.因此,如何分辩和优先处理实时数据、防止突发的非实时数据传输独占网络带宽,该文对此进行了探讨和实践,提出一种带限制性的优先级分类的实时通信模型.该模型把实时系统中的数据包分为实时和非实时两种优先级,同时为了防止非实时数据的在网络中长时间占据网络带宽,对每个站点的非实时数据通过令牌桶算法加以限制,其值可以根据实际情况,预先设定.针对该模型,基于Linux的开放源代码,对Linux中的网络系统加以改造,把IP中的TOS(Type of service)中priority字段作为实时非实时的分类标志,通过对linux网络子系统的实现进行分析改造,采用动态模块机制,在TCP/IP层和Mac层之间增加了一个分类流控模块,使Linux在一定程度上支持软实时通讯,并通过实验证明,获得了良好的效果.