基于ReWorks操作系统的实时多任务程序设计

时间:2022-08-05 05:23:04

基于ReWorks操作系统的实时多任务程序设计

摘 要:实时多任务程序设计是嵌入式系统软件设计的基础。随着嵌入式系统性能的提高和功能的复杂,实时多任务程序设计会越来越复杂。简要介绍ReWorks下实时多任务程序设计机制,通过一个利用实时多任务来实现的模型,重点介绍ReWorks下实时多任务程序设计的关键技术。

关键词:ReWorks;多任务;RTOS

中图分类号:TP31 文献标识码:A

由于信息科技和网络科技的发展速率非常快,此时群我们正不断的朝着后PC领域发展。而这个阶段的一大显著的体现就是存在于各个区域的嵌入式的体系。这个体系目前正不断的朝着工业生产和我们平时的各项活动的一些细微层次之中发展。这个体系是当前发展速率最为迅猛的体系其中的一个,与之相关的软件设计是人们非常关注的事项。要想获取性能优秀,稳定性好的设计,就规定工作者不仅仅具有优秀的能力,同时还要在开发平台之中运行嵌入式的体系,开展交叉性的活动。该项实时操作体系和相关的软件的研发氛围,对于探索性能优秀,稳定性高的软件有着非常关键的意义。

目前,国内外知名的嵌入式实时操作系统主要有:LynxOS操作系统,功能强大、价格昂贵;RT-Linux操作系统,开发工具少、资源开销大;VxWorks操作系统, 功能强大、价格昂贵;pSOS操作系统,技术服务资源匮乏;QNX操作系统,开发工具少,应用不普及;ReWorks操作系统,国产操作系统,它有着非常优秀的功效。

ReWorks是一个运行在目标机上的高性能和可裁减的嵌入式实时操作系统(RTOS),自从面世至今,它凭借着自身的优势,比如稳定性好,安全性高等等的一些优点,被大范围的运用到很多的行业之中,比如通信以及医疗装置等等,在我们国家有着数量非常庞大的使用者。

1 关于ReWorks

它是一项嵌入式的实时的操作体系,有着非常多的优势,比如裁剪性非常优秀,而且稳定性好,同时因为它具有非常优秀的安全性和实时特征,所以被大范围的应用到很多的领域里面,比如我国的通信行业以及医疗装置等等。

ReWorks的主要性能特点有:(1)支持CPU环境:x86、ARM7、ARM9、SPARC v8、PowerPC82XX/74XX/8540、龙芯2F、ADI Blackfin;(2)支持硬件环境:冗余网络、双屏显示、USB、AFDX、FLASH、CAN、1553B;(3)支持分布式处理:支持OMG RT-CORBA、SCA核心框架;(4)标准化与兼容性:POSIX 1003-2003、VxWorks 5.x;(5)裁剪性能:最小配置小于20K,支持ROM化;(6)扩展能力:支持eXtremeDB数据库、图形处理;(7)安全能力:基于MMU的空间保护能力,任务迁移能力;

2 多任务程序设计

该项软件相关的设计工作在开展的时候,最为关注的是它的实时特征。其中包括如何按照功能进行任务划分、任务优先级的设置、任务间通信机制的选择、中断处理程序的编写、如何在多个处理器之间进行任务的分配和采取什么样的任务调度策略等关键技术。对于多项任务的划分以及分配和调度这三个要素来讲,它们本身是一个不可分割的综合体,其中最为关键的要素是划分。其中的任意要素设计不当的话都会干扰到整个体系的发展。

2.1 多任务划分

在ReWorks操作系统中,最小的程序运行单位称为任务。每个任务包含一段固定的代码和数据空间。操作系统内核通过任务控制块对它的执行、通信、资源等情况进行控制。多任务划分涉及如何将整个系统功能设计为不同的任务来实现,任务之间采取怎样的耦合关系,划分的粒度如何等。在根据数据流划分任务时,影响划分的要素包括数据之间的并行和串行关系;根据控制流划分任务时,考虑的要素是控制的因果关系。

2.2 多任务调度

它的设计意义是确保重要的任务能够获取回应,而且全部任务的设计要素都可以在规定的时间之中开展好。它涵盖体系调度方法的选取,优先的明确和任务间的一些联系和竞争等等。在进行划分的时候,分析了各个要素要担负的活动的重要性,该项调度就要结合各个任务的重要性等对其设置优先权。任务调度还必须是不同优先级的协作任务有效地同步。ReWorks支持两种调度方式:基于优先级的抢占调度和时间片轮转调度。

2.3 任务间通讯

ReWorks提供了一套丰富的任务间通信与同步的机制。这些通信功能使一个应用中各个独立的任务协调它们的活动。任务间通信与同步的机制包括:信号量、消息队列、管道、信号、套接字。信号量主要用于对临界资源访问的同步和互斥;消息队列多用于消息驱动机制;管道是基于文件系统实现的任务间按先进先出方式传送数据的通信方式;信号相当于软中断;套接字主要用于网络通信。

3 基于ReWorks的多任务实现

一个嵌入式系统典型模型的任务可划分为:初始化任务、数据接收任务、数据处理任务、中断处理程序、数据发送任务,各任务的功能可描述如下:

3.1 初始化任务:对设备的初始化设置、连接设备中断到中断服务程序。同时,发起数据接收任务、数据处理任务、数据发送任务,完成后退出。

3.2 中断服务程序:外在信息的到来并不是同步活动,使用中断来设置是目前使用最多的一个措施。中断服务程序在产生外部中断时调用,其功能包括接收数据到接收缓冲区,并通知数据接收任务读取数据。

3.3 数据接收任务:等待中断服务程序的通知,从设备端口接受来自外部的数据并处理。

3.4 数据处理任务:取出需要处理的数据,进行一定算法的数据处理。

3.5 数据发送任务:取出需要发送的数据打包,然后通过打开的设备文件标识符发送到设备端口。

由于不一样的任务对于时间的规定不是一样的,可以结合它们的特征对其设置一定的优先权,进而便于调度工作的开展。并选择一个或多个任务间通信方式来实现多任务间通信。各任务之间的关系如图1所示。

结语

通过上文的分析,我们得知了该操作体系在很多的行业之中都获取了非常显著的意义,比如通信以及工业和医疗装置等等。由于它具有实时的特征,所以它的软件会受到环境以及空间等等的多项要素的干扰,对于稳定性的规定很是严苛,对于其软件的探索来讲有一定的难度。了解设计机制对于开展体系的设计工作来讲,有着非常多的优势。

参考文献

[1]王才善,陈光武,旷文珍,范多旺,魏宗寿.基于VxWorks的实时多任务程序设计机制分析[J].铁路计算机应用,2009 18(5):12-15.

[2]刘尉悦,张万生,邢涛,王砚方.VxWorks操作系统及实时多任务程序设计[J].单片机与嵌入式系统应用,2001(5):12-21.

上一篇:浅谈数据挖掘技术在移动通信中的应用 下一篇:我和路遥的一面之缘