一种适用于受限资源的双任务调度系统及方法技术方案

技术编号:36544991 阅读:15 留言:0更新日期:2023-02-04 16:56
本发明专利技术提供了一种适用于受限资源的双任务调度系统及方法,其中双任务调度系统包括前台线程,用于调度存储的可调度任务,所述可调度任务包括长周期可调度任务和短周期可调度任务;后台线程,用于辅助前台线程完成部分短周期可调度任务,在前台线程执行长周期可调度任务时,通过定时器中断抢占CPU控制权。该方法将任务作为一个整体,从线程抢占的角度出发,实现双任务调度,可以避免增加额外的资源以及设计难度,比较适用于资源受限的情况。比较适用于资源受限的情况。比较适用于资源受限的情况。

【技术实现步骤摘要】
一种适用于受限资源的双任务调度系统及方法


[0001]本专利技术涉及嵌入式系统任务调度领域,尤其涉及一种适用于受限资源的双任务调度系统及方法。

技术介绍

[0002]嵌入式系统是以应用为中心、软硬件可剪裁的应用系统,该系统对功能、可靠性、成本、体积、功耗等综合性能有严格的要求。目前,各式各样的嵌入式系统已经广泛应用于家电、通信、仪表等控制领域。因为应用需求不一,不同的嵌入式系统在设计时采用的调度方法有很大的区别,调度机制是衡量系统实时性一个关键因素。
[0003]传统的嵌入式系统,分为合作式调度、抢占式调度。其中,合作式调度,多采用while循环模式,提供一种单任务串行执行结构,存在长周期任务阻塞问题,导致系统实时性降低。抢占式调度,多采用“多任务”执行结构,存在临界资源安全问题,并且会导致设备功耗、资源增大。
[0004]物联网前端设备,尤其是用于地质灾害监测领域的设备,多以传感器采集和数据处理传输为主,其嵌入式系统主要完成少量多任务工作,多数任务具有一定的阻塞特性,即执行时间受环境影响较大。
[0005]采用传统的合作式调度,当任务出现阻塞容易导致其他任务无法执行,影响用户使用,例如,当4G信号不佳时,设备进行4G数据通信时间较长,此时如果使用蓝牙与设备进行指令控制,必须等到4G数据通信完成后(通信成功或者超时退出),使用十分不便。采用传统的抢占式调度,需要牺牲一部分系统所需的额外资源,同时为了保护临界区安全,需要额外设计保护规则,增加设计难度。

技术实现思路

[0006]针对现有技术中存在的技术问题,本专利技术提供了一种适用于受限资源的双任务调度系统及方法,通过设计一种单抢占式的混合调度方法,在基本不增加额外资源和设计难度的前提下,实现一种资源受限的双任务合理调度。
[0007]本专利技术解决上述技术问题采用的技术方案如下:
[0008]本专利技术提供了一种适用于受限资源的双任务调度系统,包括
[0009]前台线程,用于调度存储的可调度任务,所述可调度任务包括长周期可调度任务和短周期可调度任务;
[0010]后台线程,用于辅助前台线程完成部分短周期可调度任务,在前台线程执行长周期可调度任务时,通过定时器中断抢占CPU控制权。
[0011]进一步地,所述双任务调度系统还包括
[0012]非调度任务,
[0013]调度器,用于根据中断源产生的可调度任务标记刷新可调度任务标记,将执行态的可调度任务放入调度池中,供前台线程调度;
[0014]RTC线程,用于根据中断源触发完成设备不同状态下均存在的非调度任务;
[0015]专用线程,用于根据中断源触发完成中断后需要处理的非调度任务;
[0016]中断源,用于产生各种可调度任务标记,提供系统所需的中断功能。
[0017]进一步地,所述调度器还用于完成系统基准时间计数、LED指示任务、串口超时控制中的至少一种非调度任务。
[0018]进一步地,所述RTC线程完成的非调度任务为喂狗任务、低功耗模式下的相关非调度任务中的至少一种;所述专用线程完成的非调度任务为IO防抖、数据接收中的至少一种。
[0019]进一步地,所述调度器的入口为定时器中断;所述RTC线程的入口为RTC中断;所述专用线程的入口为串口中断和/或IO中断;所述中断源提供定时器中断、RTC中断、串口中断和/或IO中断。
[0020]进一步地,所述非调度任务为独立的周期任务,无阻塞特性,定期执行,不与其他任务交互,不参与调度;所述可调度任务需要与其他任务结合完成设备工作,具有阻塞特性,参与调度。
[0021]本专利技术还提供了一种适用于受限资源的双任务调度方法,包括如下步骤向任务池添加可调度任务,启动前台线程、后台线程;
[0022]当任务池中有可调度任务需要被执行时,刷新可调度任务标记为执行态,并进入调度池;
[0023]前台线程检测调度池中的可调度任务,开始执行任务,任务执行完成后,进行下一次检测;
[0024]后台线程检测调度池中的可调度任务,判断该可调度任务是否是短周期可调度任务,同时检查前台线程执行任务是否是长周期可调度任务,如果是则开始执行任务,任务执行完成后,进行下一次检测,如果不是,等待下一次检测。
[0025]进一步地,所述双任务调度方法还包括如下步骤
[0026]系统启动前台线程、后台线程的同时,还启动调度器、RTC线程、专用线程和中断源;
[0027]RTC线程按照设定的周期执行非调度任务;
[0028]专用线程接收串口中断和/或IO中断响应执行非调度任务;
[0029]调度器按照设定的周期执行非调度任务,循环监测任务池中的可调度任务是否需要执行,如果需要执行,进行标记更新,进入调度池。
[0030]进一步地,所述后台线程的定时器中断周期时间为1~10s。
[0031]进一步地,所述串口中断为蓝牙串口中断、调试串口中断、4G串口中断、传感器串口中断中的至少一种,所述IO中断为传感器IO中断、开机IO中断、蓝牙IO中断中的至少一种。
[0032]本专利技术的有益效果:
[0033]本专利技术提供的一种适用于受限资源的双任务调度系统及方法,该方法在前台线程执行长周期可调度任务时,利用后台线程抢占CPU完成短周期可调度任务,同时,线程内任务采用合作式调度,实现混合调度。该方法将任务作为一个整体,从线程抢占的角度出发,实现双任务调度,可以避免增加额外的资源以及设计难度,比较适用于资源受限的情况。
附图说明
[0034]图1示出了根据本专利技术的具体实施例提供的一种适用于受限资源的双任务调度系统组成示意图;
[0035]图2示出了根据本专利技术的具体实施例提供的一种适用于受限资源的双任务调度方法流程示意图;
[0036]图3示出了根据本专利技术的具体实施例提供的一种适用于受限资源的双任务调度方法调度示例示意图。
[0037]其中,上述附图包括以下附图标记:
[0038]10、中断源;20、可调度任务;21、非调度任务;30、调度器;40、前台线程;50、后台线程;60、专用线程;70、RTC线程。
具体实施方式
[0039]需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本专利技术及其应用或使用的任何限制。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。
[0040]需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本申请的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种适用于受限资源的双任务调度系统,其特征在于,包括前台线程,用于调度存储的可调度任务,所述可调度任务包括长周期可调度任务和短周期可调度任务;后台线程,用于辅助前台线程完成部分短周期可调度任务,在前台线程执行长周期可调度任务时,通过定时器中断抢占CPU控制权。2.如权利要求1所述的双任务调度系统,其特征在于,所述双任务调度系统还包括非调度任务,调度器,用于根据中断源产生的可调度任务标记刷新可调度任务标记,将执行态的可调度任务放入调度池中,供前台线程调度;RTC线程,用于根据中断源触发完成设备不同状态下均存在的非调度任务;专用线程,用于根据中断源触发完成中断后需要处理的非调度任务;中断源,用于产生各种可调度任务标记,提供系统所需的中断功能。3.如权利要求2所述的双任务调度系统,其特征在于,所述调度器还用于完成系统基准时间计数、LED指示任务、串口超时控制中的至少一种非调度任务。4.如权利要求2所述的双任务调度系统,其特征在于,所述RTC线程完成的非调度任务为喂狗任务、低功耗模式下的相关非调度任务中的至少一种;所述专用线程完成的非调度任务为IO防抖、数据接收中的至少一种。5.如权利要求2所述的双任务调度系统,其特征在于,所述调度器的入口为定时器中断;所述RTC线程的入口为RTC中断;所述专用线程的入口为串口中断和/或IO中断;所述中断源提供定时器中断、RTC中断、串口中断和/或IO中断。6.如权利要求2所述的双任务调度系统,其特征在于,所述非调度任务为独立的周期任务,无阻...

【专利技术属性】
技术研发人员:孙贵鑫张廷廷刘建平魏新平赵多慧
申请(专利权)人:航天科工惯性技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1