当前位置: 首页 > 工具软件 > Tasklet > 使用案例 >

tasklet的实现(原理篇)

贝杜吟
2023-12-01

1.概述

在前面的使用篇已经清晰的描述了tasklet的实现目的与使用方法。本节将重点描述tasklet的实现原理和方法。

2.tasklet的实现

在嵌入式系统中系统逻辑都比较简单,正常情况下一个应用系统中的任务数量是比较少的。系统大多数情况下都是在等待数据,所以系统大多数时间实际上是在空闲任务中执行的。所以,为了给bcos中增加更多有用的功能,bcos在空闲任务中实现了tasket的功能。tasklet的目标是处理那些系统中需要定时执行的耗时任务,同时这些任务又对实时性要求不高。这样,bcos可以保证先执行那些优先级较高的任务,然后等到系统空闲的时候在回过头来处理这些对实时性要求不高但又非常耗时的操作。有了这个功能后,用户在系统设计之初就省略了这方面的担心,直接将耗时操作交给tasklet处理即可。

tasklet的任务管理也是使用的双向循环链表,系统在每次调度到空闲任务时都会检查tasklet队列中是否有超时的任务需要执行,如果有则执行tasklet回调函数否则系统空转。

空闲任务的执行逻辑:

Created with Raphaël 2.3.0
 类似资料: