用户中心

资讯 > 嵌入式系统

嵌入式实时操作系统PetOS设计与实现

2008.04.02阅读 3853

  摘要:PetOS一个自行设计的嵌入式实时操作系统。本文介绍了PetOS的技术背景控制工程网版权所有,并详细阐述PetOS系统中的任务调度机制、任务管理机制以及中断管理机制的实现原理,指出PetOS在应用中的优缺点。

  关键词: PetOS,嵌入式操作系统,任务调度、中断管理

  1 引言

  在嵌入式领域中,嵌入式实时操作系统正得到越来越广泛的应用。采用嵌入式实时操作系统(RTOS)可以更合理、更有效地利用CPU 的资源,简化应用软件的设计,缩短系统开发时间,更好地保证系统的实时性和可靠性。由于RTOS需占用一定的系统资源(尤其是RAM 资源),只有μC/OS II、PalOS等少数实时操作系统能在小RAM 系统上运行。相对于μC/OS II[2]等商业操作系统,PalOS[1]操作系统是完全免费的操作系统,具有源码公开、内核简单等的特点。但该系统不支持任务优先级、中断等相对复杂的功能,不能很好的满足嵌入式电子设备的需要。

  2 PetOS简介

  PalOS是UCLA(加州大学洛山机分校)为传感器网络而设计微型操系统。系统轮询每个任务的消息队列,如果存在消息则调用任务相应的消息

处理函数。但是种简单的轮询机制和系统结构无法满足更为复杂的应用需求。在任务管理、系统时钟管理和中断管理等功能上,PalOS的功能都有待加强。

  PetOS以PalOS为原型,改进了任务调度算法,引入优先级的概念。每个任务可根据重要程度的不同被赋予一定的优先级, CPU总是让处于就绪态的、优先级最高的任务先运行,从而实现任务的优先级管理。PetOS还提供了严格优先级调度模式和非严格优先级调度模式控制工程网版权所有,用于缓解高优先级任务持续被调度时,低优先级任务出现'饿死'的现象。

嵌入式实时操作系统PetOS设计与实现如图

  图1 PetOS内核框架

  简单轮询或者优先级调度都无法保证系统的实时性。这两种调度都基于事件驱动,任务必须完成事件响应才会执行下一轮调度,因此系统的实时性会受到事件响应函数的粒度的影响,为了增加系统的实时性,PetOS加入了中断管理及系统时钟管理,用于提高系统的实时性。中断可以由硬件产生,也可以由应用程序产生。中断产生后,系统会及时进入中断模式进行处理,从而保证实时性要求很高的事务能得到及时的处理。

  PetOS内核框架如图1。

  3 PetOS的实现

  3.1 PETOS任务维护/调度模块

  任务维护/调度模块是PetOS的核心模块 负责任务的管理和调度。

  ·TASK(任务):

  TASK是PetOS应用程序的逻辑实体,拥有独立的输入响应、消息响应和输出控制,是PetOS的调度实体。

  PetOS任务具有如下5个状态:

  ·UNREGISTER   :由于Task列表采用静态数组,此状态表示该数组项无效

  ·UNINIT:任务已经注册,但是尚未初始化,不可执行

  ·STOP:任务停止状态。不接受消息,不可执行。无数据

嵌入式实时操作系统PetOS设计与实现如图

  图2 PetOS 任务状态转换图

  ·RUN:任务运行状态。能接受消息,可以执行

  ·PAUSE:任务挂起状态:不能接受消息,不可执行。但保持数据。

  任务在PetOS启动时被注册控制工程网版权所有,并常驻在操作系统中。即操作系统初始化完毕并启动之后,操作系统调度的任务列表是固定的。操作系统启动后,任务只会在运行、暂停、挂起状态之前切换。

  任务状态图如图2:

  为了方便任务的管理与控制,每个TASK都会绑定TCB(task control block)。TCB类似于现代操作系统中进程的PCB,它记录了task的各种状态变量、控制变量以及标准接口的函数指针,便于PetOS和应用程序维护。

  Event(事件消息):

  Event是PetOS进程调度的粒度单位。

  由于PetOS的每个任务不具备独立的代码/数据段/堆栈指针,我们无法在任意的位置暂停一个task而启动另一个。PetOS的解决策略是:将task拆分成为一个个独立的由事件驱动的逻辑模块,每个task都有各自独立的事件队列。Task的每个逻辑功能都会被映射成一个事件,操作系统通过赋予某个task响应事件的权利来完成一次调度。而操作系统的多任务调度可以Task轮流响应事件来实现。

  任务的调度:

嵌入式实时操作系统PetOS设计与实现如图

  图3调度算法流程图

  在嵌入式系统中CONTROL ENGINEERING China版权所有,很多应用要求执行的优先级绝对优先控制工程网版权所有,比如USB文件传输的处理。为此,PetOS采用了多级任务机制,并赋予高优先级的任务更高的执行权限。调度时,PetOs将优先调度优先级高的任务。这种调度方式保证了高优先级任务的实时响应,但可能导致低优先级的任务永远无法被执行。为了缓解这种'饿死'现象,PetOS提供了两种可选的配置:

  ·严格优先级调度模式:即,若高优先级的任务队列中

标签:嵌入式,
版权声明:版权归控制工程网所有,转载请注明出处!

频道推荐

关于我们

控制工程网 & CONTROL ENGINEERING China 全球工业控制、自动化和仪器仪表领域的先锋媒体

CE全球

联系我们

商务及广告合作
任小姐(北京)                 夏小姐(上海)
电话:010-82053688      电话:18616877918
rendongxue@cechina.cn      xiashuxian@cechina.cn
新闻投稿:王小姐

关注我们的微信

关于我们 | 网站地图 | 联系我们
© 2003-2020    经营许可编号:京ICP证120335号
公安机关备案号:110102002318  服务热线:010-82053688