掌桥专利:专业的专利平台
掌桥专利
首页

一种嵌入式系统中调整APP线程优先级的方法

文献发布时间:2024-04-18 20:02:40


一种嵌入式系统中调整APP线程优先级的方法

技术领域

本发明涉及一种嵌入式系统中调整APP线程优先级的方法。

背景技术

在嵌入式操作系统中,使用动态链接应用的方式将内核和APP分离开,使得在同一个操作系统下可以同时运行多个APP,每个APP内的线程的优先级都是在创建的时候固定下来不能被改变,可能会出现多个APP共同创建了相同优先级的线程,但是在系统内每个APP的重要程度是不相同的,可能导致重要的APP得不到调度,影响对应的功能实现,所以要根据APP不同的重要程度,调整每个APP下的线程的绝对优先级,在调整的同时,也要保证每个APP内线程的相对优先级正确。

在以往的嵌入式操作系统当中,不能通过添加APP拓展字段来规定APP内的线程在系统当中的优先级范围,同时,在嵌入式操作系统当中,线程的优先级在创建的时候就固定了下来,不会改变,这样就会导致在不同人员开发的不同APP当中,不重要的APP的优先级比重要的APP的优先级高,重要的APP得不到调度,影响系统功能。

发明内容

为解决上述技术问题,本发明提供了一种嵌入式系统中调整APP线程优先级的方法。

本发明通过以下技术方案得以实现。

本发明提供的一种嵌入式系统中调整APP线程优先级的方法,在嵌入式系统中使用动态链接应用的方式隔离内核与APP,包括在APP头部追加拓展字段、APP内线程相对优先级排序方法、绝对优先级排序方法,其中APP内线程相对优先级排序方法包括:

操作系统创建APP内线程优先级数组、线程结构体地址数组;

操作系统运行,初始化线程数量为0;

创建第一线程,系统将第一线程优先级存放在APP内线程优先级数组中第一个位置;

遍历APP内线程优先级数组,把第一线程优先级与之前存放的若干优先级依次比较,如果第一线程优先级小于当前对比的优先级,则把第一线程优先级插入当前优先级所在APP内线程优先级数组中的位置,如果第一线程优先级大于当前对比的优先级,则当前优先级存放在APP内线程优先级数组中的位置不变,重新遍历APP内线程优先级数组,再与下一个存放的优先级进行比较,直到所有优先级全部对比结束,APP内线程优先级数组中的优先级完成从小到大的排序;

将线程结构体地址的数组的顺序与APP内线程优先级数组的位置同步,APP内线程优先级数组中的线程优先级与线程结构体地址一一对应;

其中绝对优先级排序方法包括:

操作系统解析APP拓展字段中设置的线程优先级范围,所述优先级范围是基础参数base到最大范围参数range;

根据APP内线程优先级数组中的优先级最大值与最小值,计算差值,如果差值在线程优先级范围内,把第一个线程的绝对优先级修改为基础参数base,第二个线程的绝对优先级修改为第二个线程的相对优先级减去第一个线程的相对优先级加上第一个线程的绝对优先级,第三个线程的绝对优先级开始依次类推,直到第N个线程的绝对优先级超出APP拓展字段中设置的线程优先级范围,则把第N个线程绝对优先级设置为最大范围参数range;

如果差值超出线程优先级范围,把线程结构体地址数组中的第一线程的绝对优先级修改为基础参数base,第二个线程的绝对优先级修改为第一个线程的绝对优先级加一,第三个线程的绝对优先级往后依次类推,直到第N个线程的绝对优先级超出APP拓展字段中设置的线程优先级范围,则把第N个线程的绝对优先级为最大范围参数range;

进一步的,将线程结构体地址的数组的顺序与优先级数组的位置同步,APP内线程优先级数组中的线程优先级与线程结构体地址一一对应包括以下步骤:

进一步的,线程结构体地址数组包括线程在操作系统中的绝对优先级。

进一步的,创建线程后,线程数量计数加一。

进一步的,绝对优先级排序方法包括删除线程方法,所述删除线程方法包括:

根据线程数量遍历线程结构体地址数组,找出所要删除的线程,将后续元素向前移动一位,覆盖之前数组中的内容。

进一步的,操作系统解析APP拓展字段中设置的线程优先级范围的方法是:

创建一个APP拓展字段的结构体指针;

将APP拓展字段的结构体指针,指向APP中存放的拓展字段地址。

本发明的有益效果在于:在创建线程时,可以通过APP拓展字段当中设定的线程绝对优先级范围,来动态的修改线程的绝对优先级,保证APP内的线程绝对优先级处在设定的范围当中,同时可以根据APP中线程优先级的范围是否超出APP拓展字段中设置的线程绝对优先级范围,来采取两种不同的动态调整优先级策略,保证了APP内线程的相对优先级与之前保持一致,确保不会修改原有的APP内线程调度的顺序。

附图说明

图1是本发明的方法流程图;

图2是本发明的APP内线程相对优先级排序方法流程图;

图3是本发明的线程绝对优先级排序方法流程提;

图4是本发明实施例1的未创建新进程的状态;

图5是本发明实施例1创建a线程后的优先级状态;

图6是本发明实施例1创建b线程后的优先级状态。

具体实施方式

下面进一步描述本发明的技术方案,但要求保护的范围并不局限于所述。

为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。

实施例1:

本实施例中在智能电表系统中实现本发明所要保护的技术内容,智能电表搭载RT-Thread嵌入式实时操作系统,设置智能电表中加载的第一APP拓展字段中优先级范围为10到15(base为10,range为15),第一APP内已有a线程,设置a线程在APP内优先级为7,则调整a线程在操作系统当中绝对优先级为10,新创建线程b,设置b线程在APP内优先级为4,则调整a线程在系统内绝对优先级为13,b线程在系统内绝对优先级为10,创建线程c,设置c线程优先级为18,则调整a线程在系统内绝对优先级为11,b线程在系统内绝对优先级为10,c线程在系统内绝对优先级为12,以此达到动态调整各APP在系统中的绝对优先级顺序。

上述实施例为本发明实现的优选方案,需要说明的是,在不脱离本发明构思前提下,任何显而易见的替换和微小变化均在本发明的保护范围之内。

技术分类

06120116587926