软件架构之时间片轮询

软件架构之时间片轮询

时间片轮询法是一种比较简单易用的系统架构之一,它对于系统中的任务调度算法是分时处理。核心思路是把 CPU 的时间分时给各个任务使用。我们常用的定时方法是定时器,把调度器放在定时中,可以简单的实现时间片轮询法。
废话不多,直接上代码。

程序某次的运行结果如下。可以看到,每次运行时,程序是先将run_flag置1,然后再执行任务,这没什么问题;但是,程序并不是刷新一个run_flag之后就执行相对应的任务,而是将所有run_flag全部刷新之后,再依次执行相对应的任务。

另一方面,仔细看下面的结果,我们很容易发现,程序并不是每次都按照任务1,任务2,任务3这样的顺序全部执行的,有时候一个周期内只执行任务2,或者任务3,或者执行两个任务,并不是每次都3个任务顺序执行。这是因为每个任务的执行时间不同,我们由在定义任务结构体时设置的参数决定的,是可以根据任务的需要自行设定的。

需要注意的是,时间片轮询里的任务应该尽可能短小精悍,若执行任务时间太长,会导致任务还没执行完系统就已经刷到下一个任务去了。

文章知识点与官方知识档案匹配,可进一步学习相关知识C技能树首页概览113118 人正在系统学习中

来源:ZAIXIAGAOGAO

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年6月14日
下一篇 2021年6月14日

相关推荐