第三章 μC/OS-Ⅱ中的任务

第三章  μC/OS-Ⅱ中的任务

    μC/OS-Ⅱ操作系统内核的主要工作就是对任务的调度和管理

3.1 任务的基本概念

3.1.1 任务及其内存结构

将大任务分解为多个小任务,可以使系统并发地运行多个任务,提高处理器的利用率,加快程序的执行速度,现代操作系统大多是多任务操作系统

在μC/OS-Ⅱ中,小任务对应的程序实体为“任务”,μC/OS-Ⅱ是能对小任务进行管理和调度的多任务操作系统

从代码上来看,μC/OS-Ⅱ的任务是一个函数

从存储结构上看,μC/OS-Ⅱ由三部分组成:

任务程序代码(函数): 任务的执行部分

任务堆栈:保存任务的工作变量

任务控制块:记录任务的各个操作


进程:具有私有空间的任务

线程:没有私有空间的任务

μC/OS-Ⅱ中的任务属于线程


μC/OS-Ⅱ中的任务(最多64):用户任务和系统任务

 用户任务:由应用程序设计者编写

 系统任务:由系统提供

 

3.1.2 任务的状态

μC/OS-Ⅱ任务的5钟状态:睡眠、就绪、运行、等待和中断服务

睡眠:以代码的形式留在ROM或RAM中,没有被配置任务控制块或被剥夺了任务控制块。

就绪:配备了任务控制块并在任务就绪表中就绪登记,具备运行的充分条件。

运行:处于就绪状态,经调制器判断获得了CPU的使用权。

等待:正在运行的任务,等待一段时间或等待一个事件发生后再运行。

中断服务:正在运行的任务响应中断申请中止去执行中断服务程序。


3.1.3 用户任务代码的一般结构

    1.  用户任务代码的一般结构

void MyTask(void *pdata)
{
    for(;;)
    {
        可以被中断的用户代码;
        OS_ENTER_CRITICAL();//进入临界段(关中断)
        不可以被中断的用户代码;
        OS_EXIT_CRITICAL();//退出临界段(开中断)
        可以被中断的用户代码;
    }
}

2.  用户应用程序的一般结构

用户任务不是由主函数调用的函数,在系统中它与主函数处于平等地位,主函数负责创建任务并将它们交给系统,由系统决定何时被运行和被中止。

OS_TASKCreate()是创建任务的函数,OSStart()是启动μC/OS-Ⅱ的函数。

3.

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值