VxWorks学习笔记(一)——实时多任务&多任务编程

本文是VxWorks学习笔记的第一部分,主要介绍实时多任务的概念,包括任务的状态、调度方式以及任务编程。VxWorks是一种嵌入式实时操作系统,支持256个优先级的抢占式调度算法和时间片轮转算法。任务状态包括挂起、准备、阻塞、延迟和运行,任务创建涉及各种标志,如VX_FP_TASK。系统任务包括根任务、日志任务等,可以通过Shell命令如tt、ts、tr和td进行观察和控制。
摘要由CSDN通过智能技术生成

最近在做嵌入式开发相关的事情,接触到一种新的操作系统,叫VxWorks。VxWorks不仅是一种嵌入式实时操作系统,又是可以运行的最小基本程序。其内部有BSP(Board Support Package,板级支持包),便于进行驱动程序的编写。此外,VxWorks具有强实时性、微内核设计、可裁剪性、可移植性和可靠性等特点,能较好地满足嵌入式开发的需求。

实时多任务

非实时应用系统可以利用单进程或多进程结构按照事件发生的顺序一次处理,而实时系统则要求按照发生事件的轻重缓急(优先级)来安排处理顺序。对于某些任务,强实时系统甚至要求在给定时间内处理完成。这一点从根本上决定了实时多任务机制的基本功能。

任务的状态

任务被创建后,其状态可以在有限的范围内迁移,从而构成一个简单的有限状态机。任何任务在某一时刻只能处于一种状态,基本状态包括:挂起状态(Suspend)、准备状态(Ready)、阻塞状态(Pend)、延迟状态(Delay)和运行状态(Running)。各种状态的含义及转移状态图与非实时系统类似,此处不做赘述。

任务的调度方式

任务调度最主要的因素是任务的优先级(Priority)。VxWorks支持256个优先级(0~255),数字越小优先级越高。任务调度的另一个因素是调度算法。VxWorks支持两种调度算法,第一种是基于优先级的抢占式调度算法,另一种是同一优先级任务之间所采用的时间片轮转算法,系统默认为第一种算法。

  • 基于优先级的抢占式调度算法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值