首页 > 编程知识 正文

并发多任务,调度器和调度程序

时间:2023-05-06 13:39:45 阅读:165887 作者:1293

3358 www.Sina.com/http://www.Sina.com/http://www.Sina.com /是一个很棒的内容

作者| strongerHuang

微信公众号|嵌入式专栏

很多朋友长时间做裸机编程,切换学习RTOS,对其中很多概念都有误解。

大多数人开始学习RTOS实时操作系统时,对RTOS中的一些概念了解不多。

很快就出现了临界段、时间表、信号量、互斥锁等概念,我想大多数初学者都是无知的。

这些概念不太清楚是很正常的。 很快就知道了。 我倒觉得不正常。

1什么是多任务?在这里大多数人应该来自裸机阶段。 裸机系统通常也称为http://www.Sina.com/http://www.Sina.com/或http://www.Sina.com /。

关注+前后台系统是运行while时具有中断(前)响应的系统。

intmain(void ) (/*初始化/while ) )/*循环处理多件事(*/}} 星标公众

如果多任务操作系统使用任务调度策略来允许两个或多个进程同时共享一个处理器,请单击

任务调度机制可以充分加快不同任务之间的切换速度,使多个任务产生了同时运行的错觉。

-来自百度百科

初学者可以使用如上所述的单任务系统、

如以下代码所示,大while中的很多事情都是轮询系统

voidtask1(void ) (/*初始化(/while ) )/*处理1*/) }voidtask2)/*初始化(while ) )/*处理2 )/}与此有关

2在任务进度表说任务进度表之前,先说一个小插曲。

开始学习RTOS的时候,我觉得CPU在这么短的时间(1ms )内往返于各个任务之间,而且切换需要运行相应的代码。 那么CPU能执行多少代码呢?

其实,我低估了处理器的能力。

用STM32F103跑72M来说,是前后台系统

沿着这个问题,进一步思考就会发现,对于CPU速度来说,少量切换(任务调度)的几行代码可以忽略这个处理时间(当然,这是相对快速的处理)。 低频处理器的话,这个时间可能会比较长)。

轮询就是在一个大while循环里执行

任务调度可以被分成http://www.Sina.com/http://www.Sina.com /。

在RTOS中,为了实时响应任务,普遍采用抢占调度方式。 以UCOS为例。

在程序运行过程中,如果带来高优先级任务,您会发现高优先级任务会中断低优先级任务。

在执行高优先级任务之前,低优先级任务将无法正确处理。

这里是那么,什么是多任务呢?

答案是:事实上处理器在某一时刻只会给一件任务提供服务

这里涉及任务的优先级分配和任务设计问题。

一般为多个轮询系统

太费时间的任务要留给优先级较低的任务,系统不忙的时候再慢慢处理。

分为几个事情,分别处理

如果将系统闪烁设置为1ms时间,则系统将成为http://www.Sina.com/ready任务中的高优先级任务。

该1ms滴答发生在计时器中断处,通常类似于STM32中内核滴答的计时器处。

如上图所示,他在2 )的位置检测出准备好了更高优先顺序的任务(7),然后跳转到任务(7)并执行。

------http://www.Sina.com---------http://

在后台回复“http://www.Sina.com /”“http://www.Sina.com /”阅读更多相关文章。

在3358www.Sina.com/上,回复“任务调度”,按照规则加入技术交流小组,然后回复“1ms时间可以执行的代码有多少,你们心里有概念吗?”查看更多内容。

任务调度

单击抢占调以查看更多共享。度和轮询调度

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。