UC/OS基础知识之任务

UC/OS基础知识之任务

1.任务的组成
UC/OS操作系统内核的主要工作就是对任务进行管理和调度,任务由3部分组成:任务控制块,任务堆栈和任务程序代码。任务控制块就是关联了任务代码的程序控制块,记录了任务的各个属性;任务堆栈则用来保存任务的工作环境;任务程序代码就是任务的执行部分。其结构示意图如下图所示:

2.任务的种类
UC/OS有两种任务:用户任务和系统任务。有应用程序设计者编写的任务叫做用户任务,由系统提供的任务叫做系统任务,UC/OS-2中,最多可以含有64个任务(包含用户任务和系统任务)。操作系统有两个系统任务,空闲任务和统计任务,其中空闲任务是每个应用程序必须要使用的,而统计任务则是可以根据实际需要选择使用。统计任务每秒计算一次CPU在单位时间内被使用的时间,并把计算结果以百分比的形式存放在变量OSCPUsage中,以便其他应用程序来了解CPU的使用率。
3.任务的状态
在UC/OS系统中,一个具体时刻只会有一个任务占用CPU处于运行状态,而其他任务只能处于其他状态。UC/OS操作系统中任务共有五种状态:睡眠,运行,就绪,中断和等待。
睡眠状态:任务只是以代码的形式驻留在程序空间,还没有交还给操作系统管理时的情况叫做睡眠状态。简单的说任务在没有被配备任务控制块或者被剥夺了任务控制块的状态叫做睡眠状态
就绪状态:如果系统为任务分配了任务控制块并且任务在任务就绪表中进行登记,则任务就具备了运行的充分天剑,这是的状态就叫做就绪状态
运行状态:处于就绪状态的任务,如果经调度器判断获得了CPU的使用权,则任务就进入了运行状态。任何时刻只能有一个任务处于运行状态,就绪的任务只有当所有优先级高于本任务的任务都转为等待状态时,才能进入运行状态。
等待状态:正在运行的任务需要等待一段时间或者需要等待一个事件发生在运行时,该任务就会把CPU的使用权让给其他任务而使任务处于等待状态
中断服务状态:一个正在运行的任务一旦响应中断而去执行中断服务程序,这时任务的状态就叫中断服务状态
5种状态的切换如下图所示

4.任务的优先权及优先级别
UC/OS采用优先级抢占式原则,即系统中的每个任务都按其任务的重要性分配唯一的 优先级别,一个任务对应唯一的优先级别,优先级别高的任务先运行,优先级别低的任务后运行。由于大多数应用程序的任务数都小于64,为了方便用户定义任务数,UC/OS在配置文件OS_CFG.H中定义了一个用来表示最低优先级别的常数OS_LOWEST_PRIO,如果用户为其赋值,就意味着系统中可供使用的优先级别为0,1,2,……….OS_LOWEST_PRIO,对应的任务的总数不超过OS_LOWEST_PRIO+1个。另外系统总是把最低优先级别OS_LOWEST_PRIO自动赋值给空闲任务,如果还使用了统计任务,系统会把优先级别OS_LOWEST_PRIO-1自动赋值给统计任务。
因此,用户任务可使用的优先级别为0,1,2………OS_LOWEST_PRIO-2,即用户任务总数为OS_LOWEST_PRIO-1个。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值