《VxWorks7编程指南》笔记(二)——多任务

本文全面介绍了VxWorks实时操作系统中的任务管理概念,包括多任务环境、任务状态转换、任务调度策略、任务创建与控制、任务栈管理、任务信息获取等核心内容。深入探讨了任务调度控制、任务删除保护、任务错误处理机制,以及如何实现任务栈保护和任务扩展。

目录

 

1.任务与多任务

2.VxWorks系统任务

3.任务拥有权与继承属性

4.任务状态和转换

5.任务调度

6.任务创建与激活

7.任务名称与ID

8.任务选项

9.任务栈

10.任务信息

11.任务执行控制

12.任务调度控制

13.任务删除及删除保护

14.任务扩展:使用钩子函数

15.任务错误状态:errno

16.任务异常处理

17.共享代码与重入

18.内核任务环境变量


1.任务与多任务

多任务环境允许实时应用程序由一系列独立的任务构成,这些任务拥有自己的执行与系统资源。

2.VxWorks系统任务

根据具体的配置,VxWorks在启动时将运行各种系统任务,其中有些任务会一直运行。

VxWorks基础任务如下:

 

可选组件任务如下:

3.任务拥有权与继承属性

根用户是所有任务和RTP的默认拥有者。可以使用如下函数了解任务拥有权与继承属性:

  • getuid()
  • getgid()
  • setuid()
  • setgid()
  • taskShow()
  • ps -l (用于RTP)

4.任务状态和转换

下表描述了在开发工具中课件的任务状态和状态符号。需要注意的是,任务状态是可以累加的,同一时刻一个任务可能处于多个状态下。

 

Shell命令行中的任务状态示例

 

基本的任务状态转换图示

下图展示了基本的任务状态转换关系。为了简化关系,图中没有展示上述的叠加状态,也没有展示STOP状态。

注意:taskSpawn()函数将创建一个任务,并使之进入Ready状态;taskCreate()函数将创建一个任务,并使之进入suspend状态。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

weekman93

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值