学习UCOSIII笔记3(任务管理3)——2021.11.2

这篇笔记详细介绍了UCOSIII的实时操作系统中的任务调度、任务切换、调度器的上锁解锁、时间片轮转调度以及系统初始化。内容涵盖任务调度器的使用、任务调度点的定义、调度器在特定场景下的锁定机制,以及时间片轮转调度的工作原理。此外,还讨论了任务切换的两个层次:任务级和中断级,以及系统启动前的必要初始化步骤。
摘要由CSDN通过智能技术生成

        这篇笔记记录了任务调度,任务切换,UCOSIII系统初始化和启动三个内容。

一、任务调度

        任务调度就是中止当前正在运行的任务转而去执行其他的任务。

        UCOSIII的内核是可剥夺的,也就是说,当高优先级的任务准备就绪时,此时发生了任务调度,那么CPU就会去执行这个高优先级的任务,感觉这个也和中断差不多。

        UCOSIII中的任务调度需要使用到任务调度器,任务调度器其实就是函数,当你使用这个函数时就会发生任务调度,有两个:任务级调度器和中断级调度器。

        任务级调度器:OSSched();

        中断级调度器:OSIntExit();当推出外部中断服务函数时,需要使用中断级调度器。

二、任务调度点

        任务调度点就是使用任务调度器的节点,也可以说任务切换的节点。

三、调度器的上锁和解锁

        有时候我们并不希望发生任务调度,因为始终有一些代码的执行过程是不能被打断的。比如在任务初始化的时候,会用到timedelay,就会发生任务调度,但是我们初始化任务的时候并不希望发生任务调度,此时我们就可以使用函数OSSchedLock()对调度器加锁,当我们想要恢复任务调度的时候就可以使用函数OSSchedUnlock()给已经上锁的任务调度器解锁。

四、时间片轮转调度

        时间片轮转调度也是任务调度的一种。

        UCOSIII允许一个优先

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值